[
  {
    "path": ".gitattributes",
    "content": "# Make sure baseline files have consistent line endings\n*.txt text eol=lf\n\n# Override classification\n*.YAML-tmLanguage linguist-language=YAML\n*.YAML-tmTheme linguist-language=YAML\n*.YAML-tmPreferences linguist-language=YAML\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "content": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**[JavaScript and TypeScript Nightly](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-next) version:**  \n\n**Code**\n\n```ts\n// Please include a code snippet that demonstrates the issue\n\n```\n"
  },
  {
    "path": ".github/workflows/CI.yml",
    "content": "name: CI\non:\n  push:\n    branches:\n      - main\n      - master\n  pull_request:\n    branches:\n      - main\n      - master\n\njobs:\n  tests:\n    runs-on: ${{ matrix.os }}\n    strategy:\n      matrix:\n        os: [ubuntu-latest, windows-latest, macos-latest]\n        # Test the latest version of Node.js plus the last two LTS versions.\n        node-version:\n          - \"*\"\n          - lts/*\n          - lts/-1\n\n    steps:\n      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0\n      - name: Use node version ${{ matrix.node-version }}\n        uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0\n        with:\n          node-version: ${{ matrix.node-version }}\n          check-latest: true\n      - run: npm i\n      - run: npm test\n      \n"
  },
  {
    "path": ".github/workflows/accept-baselines.yml",
    "content": "name: Accept Baselines\n\non:\n  workflow_dispatch: {}\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n\n    steps:\n    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0\n    - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0\n\n    - name: Configure Git, Run Tests, Update Baselines\n      run: |\n        git config user.email \"typescriptbot@microsoft.com\"\n        git config user.name \"TypeScript Bot\"\n        npm install\n        git rm -r --quiet tests/baselines\n        npm test\n        npm run accept\n        git add ./tests/baselines\n        git diff --cached\n        git commit -m \"Update Baselines\"\n        git push\n"
  },
  {
    "path": ".gitignore",
    "content": "node_modules\nbuild/*.js\ntests/*.js\ntests/generated/*\nxunit.xml\n*.tsbuildinfo\n"
  },
  {
    "path": ".vscode/settings.json",
    "content": "// Place your settings in this file to overwrite default and user settings.\n{\n    \"editor.insertSpaces\": true,\n    \"files.associations\": {\n        \"*.YAML-tmLanguage\": \"yaml\",\n        \"*.YAML-tmPreferences\": \"yaml\",\n        \"*.YAML-tmTheme\": \"yaml\"\n    }\n}"
  },
  {
    "path": "Comments.tmPreferences",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>name</key>\n\t<string>Comments</string>\n\t<key>scope</key>\n\t<string>source.ts, source.tsx</string>\n\t<key>settings</key>\n\t<dict>\n\t\t<key>shellVariables</key>\n\t\t<array>\n\t\t\t<dict>\n\t\t\t\t<key>name</key>\n\t\t\t\t<string>TM_COMMENT_START</string>\n\t\t\t\t<key>value</key>\n\t\t\t\t<string>// </string>\n\t\t\t</dict>\n\t\t\t<dict>\n\t\t\t\t<key>name</key>\n\t\t\t\t<string>TM_COMMENT_START_2</string>\n\t\t\t\t<key>value</key>\n\t\t\t\t<string>/*</string>\n\t\t\t</dict>\n\t\t\t<dict>\n\t\t\t\t<key>name</key>\n\t\t\t\t<string>TM_COMMENT_END_2</string>\n\t\t\t\t<key>value</key>\n\t\t\t\t<string>*/</string>\n\t\t\t</dict>\n\t\t</array>\n\t</dict>\n\t<key>uuid</key>\n\t<string>FF9A09B1-D1C3-4AF0-9A11-2EC300F03184</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "ErrorList.YAML-tmLanguage",
    "content": "# [PackageDev] target_format: plist, ext: tmLanguage\n---\nname: Error List\nscopeName: text.error-list\nuuid: 52410ea6-4de5-4b0e-9be7-12842e39a3a6\n\npatterns:\n  - include: '#error-count'\n  - include: '#filename'\n  - include: '#message'\n\nrepository:\n  filename:\n    match: ^([^ ].*:)$\n    captures:\n      '1': {name: entity.name.filename.error-list}\n\n  error-count:\n    match: (?<=\\[)(\\d+\\s*errors)(?=\\])\n    captures:\n      '1': {name: keyword.other.error-list}\n\n  message:\n    begin: \\(\n    end: \\n\n    patterns:\n    - include: '#location'\n\n  location:\n    match: (?<=\\()(\\d+),\\s*(\\d+)(?=\\))\n    captures:\n      '1': {name: constant.numeric.location.error-list}\n      '2': {name: constant.numeric.location.error-list}\n...\n"
  },
  {
    "path": "FindRefs.YAML-tmLanguage",
    "content": "# [PackageDev] target_format: plist, ext: hidden-tmLanguage\nname: Find Refs\nscopeName: text.find-refs\nuuid: de594c8b-2688-48c1-bc73-b5c935e408b8\n\npatterns:\n  - include: '#filename'\n  - include: '#header'\n  - include: '#footer'\n  - include: '#reference'\n  - include: '#line-with-match'\n\nrepository:\n  filename:\n    match: ^([^ ].*:)$\n    captures:\n      '1': {name: entity.name.filename.find-refs}\n  footer:\n    name: text.find-refs\n    match: '^[0-9]+ matches in [0-9+] files\\s*$'\n  header:\n    name: text.find-refs\n    match: ^References to .*$\n\n  line-with-match:\n    begin: '^ +([0-9]+):'\n    end: $\n    beginCaptures:\n      '1': {name: constant.numeric.line-number.match.find-refs }\n    patterns:\n    - include: '#single-line-ts'\n  single-line-ts:\n    name: meta.ts.find-refs\n    patterns:\n    - include: '#expression'\n  # The remainder of this file is a copy of the TypeScript\n  # grammar, but with end patterns augmented so that they\n  # always stay within a single line (since this grammar\n  # is for single-line referenes into TypeScript files)\n  var-expr:\n    name: meta.var.expr.ts\n    begin: (?<!\\()\\s*\\b(var|let|const(?!\\s+enum))\\s+([a-zA-Z_$][\\w$]*)\n    beginCaptures:\n      '1': { name: storage.type.ts }\n      '2': { name: variable.ts }\n    end: '$|(?=[;=\\}\\{])|(?<=\\})'\n    patterns:\n    - include: '#type-annotation'\n\n  control-statement:\n    name: keyword.control.ts\n    match: \\b(break|catch|continue|declare|do|else|finally|for|if|return|switch|throw|try|while)\\b\n\n  switch-case:\n    name: case.expr.ts\n    begin: '\\b(case|default)\\b'\n    beginCaptures:\n      '1': { name: keyword.control.ts }\n    end: ':'\n    patterns:\n    - include: '#expression'\n\n  declaration:\n    name: meta.declaration.ts\n    patterns:\n     - include: '#function-declaration'\n     - include: '#object-declaration'\n     - include: '#type-declaration'\n     - include: '#enum-declaration'\n\n  type-declaration:\n    name: meta.type.declaration.ts\n    begin: \\b(type)\\b\\s+([a-zA-Z_$][\\w$]*)\\s*=\\s*\n    beginCaptures:\n      '1': { name: keyword.other.ts }\n      '2': { name: storage.type.ts }\n    end: $|(?=[,);>]|var|type|function|class|interface)\n    patterns:\n      - include: '#type'\n\n  enum-declaration:\n    name: meta.enum.declaration.ts\n    match: (?:\\b(const)\\s+)?\\b(enum)\\s+([a-zA-Z_$][\\w$]*)\n    captures:\n      '1': { name: storage.modifier.ts}\n      '2': { name: storage.type.ts }\n      '3': { name: entity.name.class.ts }\n\n  object-declaration:\n    name: meta.declaration.object.ts\n    begin: '\\b(?:(export)\\s+)?\\b(class|interface)\\b(?:\\s+([a-zA-Z_$][\\w$]*))'\n    beginCaptures:\n      '1': { name: storage.modifier.ts }\n      '2': { name: storage.type.ts }\n      '3': { name: entity.name.class.ts }\n    end: $|(?=\\})\n    endCaptures:\n      '1': { name: brace.curly.ts }\n    patterns:\n    - include: '#type-parameters'\n    - include: '#object-heritage'\n    - include: '#object-body'\n    - include: '#comment'\n\n  object-heritage:\n    name: meta.object.heritage.ts\n    match: (?:\\b(extends|implements)\\b|,)(?:\\s+([a-zA-Z_$][.\\w$]*))\n    captures:\n       '1': { name: storage.modifier.ts }\n       '2': { name: storage.type.ts }\n\n  object-body:\n    name: meta.object.body.ts\n    begin: \\{\n    end: $|(?=\\})\n    patterns:\n    - include: '#comment'\n    - include: '#field-declaration'\n    - include: '#method-declaration'\n    - include: '#indexer-declaration'\n    - include: '#type-annotation'\n    - include: '#variable-initializer'\n    - include: '#access-modifier'\n    - include: '#static-modifier'\n    - include: '#property-accessor'\n\n  object-type:\n    name: meta.object.type.ts\n    begin: \\{\n    end: $|\\}\n    patterns:\n    - include: '#comment'\n    - include: '#field-declaration'\n    - include: '#method-declaration-no-body'\n    - include: '#indexer-declaration'\n    - include: '#type-annotation'\n\n  field-declaration:\n    name: meta.field.declaration.ts\n    match: '\\b([a-zA-Z_$][\\w$]*)\\s*(\\?\\s*)?(?=(=|:))'\n    captures:\n      '1': { name: variable.ts }\n      '2': { name: keyword.operator.ts }\n\n  method-declaration:\n    name: meta.method.declaration.ts\n    begin: '\\b(?:(get|set)\\s+)?\\[?([a-zA-Z_$][\\.\\w$]*)\\s*\\]?\\s*(\\??)\\s*(?=\\()'\n    beginCaptures:\n      '1': { name: storage.type.property.ts }\n      '2': { name: entity.name.function.ts }\n      '3': { name: keyword.operator.ts }\n    end: '$|\\}|[;,]'\n    patterns:\n    - include: '#comment'\n    - include: '#function-parameters'\n    - include: '#type-annotation'\n    - include: '#decl-block'\n\n  method-declaration-no-body:\n    name: meta.method.declaration.ts\n    begin: '\\b(?:(get|set)\\s+)?\\[?([a-zA-Z_$][\\.\\w$]*)\\s*\\]?\\s*(\\??)\\s*(?=\\()'\n    beginCaptures:\n      '1': { name: storage.type.property.ts }\n      '2': { name: entity.name.function.ts }\n      '3': { name: keyword.operator.ts }\n    end: '$|(?=\\})|[;,]'\n    patterns:\n    - include: '#comment'\n    - include: '#function-parameters'\n    - include: '#type-annotation'\n    - include: '#decl-block'\n\n  indexer-declaration:\n    name: meta.indexer.declaration.ts\n    begin: \\[\n    end: \\]\\s*(\\?\\s*)?|$\n    endCaptures:\n      '1': { name: keyword.operator.ts }\n    patterns:\n    - include: '#type-annotation'\n    - include: '#indexer-parameter'\n    - include: '#expression'\n\n  indexer-parameter:\n    name: meta.indexer.parameter.ts\n    match: ([a-zA-Z_$][\\w$]*)(?=\\:)\n    captures:\n      '1': { name: variable.parameter.ts}\n\n  function-declaration:\n    name: meta.function.ts\n    begin: \\b(function)\\b(?:\\s+([a-zA-Z_$][\\w$]*))?\\s*\n    beginCaptures:\n      '1': { name: storage.type.function.ts }\n      '2': { name: entity.name.function.ts }\n    end: $|(?=\\}|;)\n    patterns:\n    - include: '#comment'\n    - include: '#type-parameters'\n    - include: '#function-parameters'\n    - include: '#return-type'\n    - include: '#decl-block'\n\n  block:\n    name: meta.block.ts\n    begin: \\{\n    end: $|\\}\n    patterns:\n    - include: '#expression'\n    - include: '#object-member'\n\n  decl-block:\n    name: meta.decl.block.ts\n    begin: \\{\n    end: $|(?=\\})\n    patterns:\n    - include: '#expression'\n\n  function-parameters:\n    name: meta.function-parameters.ts\n    begin: \\(\n    end: $|\\)\n    patterns:\n      - include: '#comment'\n      - include: '#parameter-name'\n      - include: '#type-annotation'\n      - include: '#variable-initializer'\n\n  function-type-parameters:\n    name: meta.function.type.ts\n    begin: \\(\n    end: $|\\)\n    patterns:\n    - include: '#comment'\n    - include: '#parameter-name'\n    - include: '#type-annotation'\n    - include: '#variable-initializer'\n\n  parameter-name:\n    name: parameter.name.ts\n    match: '(?:\\s*\\b(public|private)\\b\\s+)?(\\.\\.\\.)?\\s*([a-zA-Z_$][\\w$]*)\\s*(\\??)'\n    captures:\n      '1': { name: storage.modifier.ts }\n      '2': { name: keyword.operator.ts }\n      '3': { name: variable.parameter.ts }\n      '4': { name: keyword.operator.ts }\n\n  return-type:\n    name: meta.return.type.ts\n    begin: '(?<=\\)):'\n    end: $|(?=\\{|;|//)\n    patterns:\n    - include: '#type'\n\n  type-annotation:\n    name: meta.type.annotation.ts\n    begin: \":\"\n    end: (?=[,);}\\[\\]])|(?==[^>])|(?<=[a-z]|>)\\s*(?=\\{|$|//)\n    patterns:\n      - include: '#type'\n      - include: '#comment'\n\n  type:\n    name: meta.type.ts\n    patterns:\n    - include: '#type-name'\n    - include: '#type-parameters'\n    - include: '#type-union'\n    - include: '#object-type'\n    - include: '#function-type-parameters'\n    - include: '#function-type-return-type'\n\n  function-type-return-type:\n    name: meta.function.type.return.ts\n    begin: '=>'\n    end: $|(?=[,\\){]|//)\n    patterns:\n    - include: '#type'\n\n  type-union:\n    name: meta.type.union.ts\n    begin: '(\\|)'\n    beginCaptures:\n      '1': { name: keyword.operator.ts }\n    end: '$|([a-zA-Z_$][.\\w$]*)'\n    endCaptures:\n      '1': { name: storage.type.ts }\n    patterns:\n    - include: '#comment'\n\n  type-name:\n    name: storage.type.ts\n    match: '[a-zA-Z_$][.\\w$]*'\n\n  type-parameters:\n    name: meta.type.parameters.ts\n    begin: '<'\n    end: '$|(?=var|type|function|class|interface)|>'\n    patterns:\n    - name: keyword.other.ts\n      match: '\\b(extends)\\b'\n    - include: '#comment'\n    - include: '#type'\n\n  variable-initializer:\n    begin: (=)\n    beginCaptures:\n      '1': { name: keyword.operator.ts }\n    end: $|(?=[,);=])\n    patterns:\n      - include: '#expression'\n\n  expression:\n    name: meta.expression.ts\n    patterns:\n    - include: '#string'\n    - include: '#regex'\n    - include: '#template'\n    - include: '#comment'\n    - include: '#literal'\n    - include: '#paren-expression'\n    - include: '#var-expr'\n    - include: '#declaration'\n    - include: '#cast'\n    - include: '#new-expr'\n    - include: '#block'\n    - include: '#expression-operator'\n    - include: '#relational-operator'\n    - include: '#arithmetic-operator'\n    - include: '#logic-operator'\n    - include: '#assignment-operator'\n    - include: '#storage-keyword'\n    - include: '#control-statement'\n    - include: '#switch-case'\n    - include: '#for-in-simple'\n\n  for-in-simple:\n    name: forin.expr.ts\n    match: (?<=\\()\\s*\\b(var|let)\\s+([a-zA-Z_$][\\w$]*)\\s+(in)\\b\n    captures:\n      '1': { name: storage.type.ts }\n      '3': { name: keyword.operator.ts }\n\n  cast:\n    name: cast.expr.ts\n    match: '<\\s*([a-zA-Z_$][.\\w$]*)\\s*(?:<([a-zA-Z_$][.\\w$]*)>)?\\s*(\\[\\])*\\s*>'\n    captures:\n       '1': { name: storage.type.ts }\n       '2': { name: storage.type.ts }\n\n  new-expr:\n    name: new.expr.ts\n    match: '\\b(new)\\b\\s*([a-zA-Z_$][.\\w$]*)'\n    captures:\n       '1': { name: keyword.operator.ts }\n       '2': { name: storage.type.ts }\n\n  # TODO: object members with quoted or numric lhs\n  object-member:\n    name: meta.object.member.ts\n    begin: '[a-zA-Z_$][\\w$]*\\s*:'\n    end: $|(?=,|\\})\n    patterns:\n    - include: '#expression'\n\n  expression-operator:\n    name: keyword.operator.ts\n    match: =>|\\b(delete|export|import|in|instanceof|module|new|typeof|void)\\b\n\n  arithmetic-operator:\n    name: keyword.operator.ts\n    match: \\*|/|\\-\\-|\\-|\\+\\+|\\+|%\n\n  relational-operator:\n    name: keyword.operator.ts\n    match: ===|!==|==|!=|<=|>=|<>|=|<|>\n\n  assignment-operator:\n    name: keyword.operator.ts\n    match: <<=|>>>=|>>=|\\*=|(?<!\\()/=|%=|\\+=|\\-=|&=|\\^=\n\n  logic-operator:\n    name: keyword.operator.ts\n    match: \\!|&&|&|~|\\|\\||\\|\n\n  storage-keyword:\n    name: storage.type.ts\n    match: \\b(number|boolean|string)\\b\n\n  paren-expression:\n    begin: \\(\n    beginCaptures:\n      '0': {name: brace.paren.ts }\n    end: $|\\)\n    endCaptures:\n      '0': {name: brace.paren.ts }\n    patterns:\n    - include: '#expression'\n\n  qstring-double:\n    name: string.double.ts\n    begin: '\"'\n    end: '\"|(?=$)'\n    patterns:\n    - include: '#string-character-escape'\n\n  qstring-single:\n    name: string.single.ts\n    begin: \"'\"\n    end: \"'|(?=$)\"\n    patterns:\n    - include: '#string-character-escape'\n\n  regex:\n    name: string.regex.ts\n    begin: (?<=[=(:,\\[]|^|return|&&|\\|\\||!)\\s*(/)(?![/*+{}?])\n    end: $|(/)[igm]*\n    patterns:\n    - name: constant.character.escape.ts\n      match: \\\\.\n    - name: constant.character.class.ts\n      match: \\[(\\\\\\]|[^\\]])*\\]\n\n  string:\n    name: string.ts\n    patterns:\n    - include: '#qstring-single'\n    - include: '#qstring-double'\n\n  template:\n    name: meta.template.ts\n    begin: '`'\n    beginCaptures:\n      '0': { name: string.template.ts}\n    end: '$|`'\n    endCaptures:\n      '0': { name: string.template.ts}\n    patterns:\n     - include: '#template-substitution-element'\n     - include: '#template-string-contents'\n\n  template-string-contents:\n    name: string.template.ts\n    begin: '.*?'\n    end: $|(?=(\\$\\{|`))\n    patterns:\n    - include: '#string-character-escape'\n\n  string-character-escape:\n    name: constant.character.escape\n    match: \\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)\n\n  template-substitution-element:\n    name: template.element.ts\n    begin: \\$\\{\n    beginCaptures:\n      '0': {name: keyword.operator.ts}\n    end: $|\\}\n    endCaptures:\n      '0': {name: keyword.operator.ts}\n    patterns:\n      - include: '#expression'\n\n  comment:\n    name: comment.ts\n    patterns:\n    - include: '#comment-block-doc'\n    - include: '#comment-block'\n    - include: '#comment-line'\n\n  comment-block-doc:\n    name: comment.block.documentation.ts\n    begin: /\\*\\*(?!/)\n    end: $|\\*/\n\n  comment-block:\n    name: comment.block.ts\n    begin: /\\*\n    end: $|\\*/\n\n  comment-line:\n    name: comment.line.ts\n    match: (//).*$\\n?\n\n  literal:\n    name: literal.ts\n    patterns:\n    - include: '#numeric-literal'\n    - include: '#boolean-literal'\n    - include: '#null-literal'\n    - include: '#undefined-literal'\n    - include: '#array-literal'\n\n  array-literal:\n    name: meta.array.literal.ts\n    begin: \\[\n    beginCaptures:\n      '0': { name: brace.square.ts }\n    end: $|\\]\n    endCaptures:\n      '0': { name: brace.square.ts }\n    patterns:\n    - include: '#expression'\n\n  numeric-literal:\n    name: constant.numeric.ts\n    match: \\b((0(x|X)[0-9a-fA-F]+)|([0-9]+(\\.[0-9]+)?))\\b\n\n  boolean-literal:\n    name: constant.language.boolean.ts\n    match: \\b(false|true)\\b\n\n  null-literal:\n    name: constant.language.null.ts\n    match: \\b(null)\\b\n\n  undefined-literal:\n    name: constant.language.ts\n    match: \\b(undefined)\\b\n\n  access-modifier:\n    name: storage.modifier.ts\n    match: \\b(public|protected|private)\\b\n\n  static-modifier:\n    name: keyword.other.ts\n    match: \\b(static)\\b\n\n  property-accessor:\n    name: storage.type.property.ts\n    match: \\b(get|set)\\b\n"
  },
  {
    "path": "LICENSE.txt",
    "content": "Copyright (c) Microsoft Corporation\nAll rights reserved.\n\nMIT License\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE."
  },
  {
    "path": "README.md",
    "content": "# TypeScript-TmLanguage\n[![GitHub Actions CI](https://github.com/microsoft/TypeScript-TmLanguage/workflows/CI/badge.svg)](https://github.com/microsoft/TypeScript-TmLanguage/actions?query=workflow%3ACI)\n\nThis repository contains TmLanguage files that are consumed by TypeScript editors and plugins such as [Visual Studio Code](https://github.com/Microsoft/vscode), [The TypeScript Sublime Plugin](https://github.com/Microsoft/TypeScript-Sublime-Plugin), [Atom TypeScript](https://github.com/TypeStrong/atom-typescript), and possibly others.\n\nLatest version of the grammar can be also found as a [VSCode extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-next).\n\n# Contributing\n\nThe XML files are generated from the YAML files, so contributors should hand-modify the YAML files, and XML files should only be generated by running build script.\n\n## Install dependencies\n``` sh\nnpm install\n```\n\n## Build\n\nCompile the yaml file into the tmLanguage and tmTheme files\n\n``` sh\nnpm run build:grammar\n```\n\n## Tests\n\n``` sh\nnpm test            # Compiles & runs tests\n\nnpm run diff        # Diffs the test baselines with generated one using tool set in environment variable DIFF\nnpm run accept      # Accepts the test baselines\n```\n"
  },
  {
    "path": "SECURITY.md",
    "content": "<!-- BEGIN MICROSOFT SECURITY.MD V0.0.7 BLOCK -->\n\n## Security\n\nMicrosoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/).\n\nIf you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below.\n\n## Reporting Security Issues\n\n**Please do not report security vulnerabilities through public GitHub issues.**\n\nInstead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report).\n\nIf you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com).  If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey).\n\nYou should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc). \n\nPlease include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:\n\n  * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)\n  * Full paths of source file(s) related to the manifestation of the issue\n  * The location of the affected source code (tag/branch/commit or direct URL)\n  * Any special configuration required to reproduce the issue\n  * Step-by-step instructions to reproduce the issue\n  * Proof-of-concept or exploit code (if possible)\n  * Impact of the issue, including how an attacker might exploit the issue\n\nThis information will help us triage your report more quickly.\n\nIf you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs.\n\n## Preferred Languages\n\nWe prefer all communications to be in English.\n\n## Policy\n\nMicrosoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd).\n\n<!-- END MICROSOFT SECURITY.MD BLOCK -->\n"
  },
  {
    "path": "ThirdPartyNotices.txt",
    "content": "\nTHIRD-PARTY SOFTWARE NOTICES AND INFORMATION\nDo Not Translate or Localize\n\nLatest TypeScript and Javascript Grammar incorporates third party material from the projects listed below. The original copyright notice and the license under which Microsoft received such third party material are set forth below. Microsoft reserves all other rights not expressly granted, whether by implication, estoppel or otherwise.\n\n1.\tbabel-sublime (https://github.com/babel/babel-sublime)\n2.\tlanguage-javascript (https://github.com/atom/language-javascript)\n\n\n%% babel-sublime NOTICES, INFORMATION, AND LICENSE BEGIN HERE\n=========================================\nCopyright (c) 2015 Andres Suarez\n\nMIT License\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n=========================================\nEND OF babel-sublime NOTICES, INFORMATION, AND LICENSE\n\n%% language-javascript NOTICES, INFORMATION, AND LICENSE BEGIN HERE\n=========================================\nCopyright (c) 2015 GitHub Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nThis package was derived from a TextMate bundle located at https://github.com/textmate/javascript.tmbundle and distributed under the following license, located in README.mdown:\n\nPermission to copy, use, modify, sell and distribute this software is granted. This software is provided \"as is\" without express or implied warranty, and with no claim as to its suitability for any purpose.\n=========================================\nEND OF language-javascript NOTICES, INFORMATION, AND LICENSE\n\n\n"
  },
  {
    "path": "TypeScript Indent.YAML-tmPreferences",
    "content": "# [PackageDev] target_format: plist, ext: tmPreferences\n---\nname: TypeScript Indent\nuuid: 77966fa8-af34-4f1e-8535-e556d5063853\nscope: source.ts, source.tsx\nsettings:\n  bracketIndentNextLinePattern: \n  >\n    (?x)\n      ^ \\s* \\b(if|while|else)\\b [^;]* $\n      | ^ \\s* \\b(for)\\b .* $\n  decreaseIndentPattern: ^(.*\\*/)?\\s*\\}.*$\n  increaseIndentPattern: ^.*\\{[^}\"']*$"
  },
  {
    "path": "TypeScript Indent.tmPreferences",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>name</key>\n\t<string>TypeScript Indent</string>\n\t<key>scope</key>\n\t<string>source.ts, source.tsx</string>\n\t<key>settings</key>\n\t<dict>\n\t\t<key>bracketIndentNextLinePattern</key>\n\t\t<string>(?x)\n  ^ \\s* \\b(if|while|else)\\b [^;]* $\n  | ^ \\s* \\b(for)\\b .* $\n</string>\n\t\t<key>decreaseIndentPattern</key>\n\t\t<string>^(.*\\*/)?\\s*\\}.*$</string>\n\t\t<key>increaseIndentPattern</key>\n\t\t<string>^.*\\{[^}\"']*$</string>\n\t</dict>\n\t<key>uuid</key>\n\t<string>77966fa8-af34-4f1e-8535-e556d5063853</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "TypeScript.YAML-tmLanguage",
    "content": "# [PackageDev] target_format: plist, ext: tmLanguage\n---\nname: TypeScript\nscopeName: source.ts\nfileTypes: [ts]\nuuid: ef98eb90-bf9b-11e4-bb52-0800200c9a66\n\nvariables:\n  startOfIdentifier: (?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\n  endOfIdentifier: (?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\n  propertyAccess: (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\n  propertyAccessPreIdentifier: \\??\\.\\s*\n  identifier: '[_$[:alpha:]][_$[:alnum:]]*'\n  constantIdentifier: '[[:upper:]][_$[:digit:][:upper:]]*'\n  propertyIdentifier: '\\#?{{identifier}}'\n  constantPropertyIdentifier: '\\#?{{constantIdentifier}}'\n  quotedStrings: (\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)\n  nonIdentifierPropertyName: '{{quotedStrings}}|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])'\n  label: ({{identifier}})\\s*(:)\n  hexNumber: \\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)\n  binaryNumber: \\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)\n  octalNumber: \\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)\n  decimalNumber: |-\n    (?<!\\$)(?:\n      (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n      (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n      (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n      (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n      (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n      (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n      (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n      (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n    )(?!\\$)\n  anyNumber: ({{hexNumber}})|({{binaryNumber}})|({{octalNumber}})|({{decimalNumber}})\n  # any use of property name needs to ignore line breaks in regular expression because of decimal number regex (maintained for readability)\n  propertyName: ({{anyNumber}}|({{identifier}})|{{nonIdentifierPropertyName}})\n  propertyNameWithPrivate: ({{anyNumber}}|({{propertyIdentifier}})|{{nonIdentifierPropertyName}})\n  constantVar: ({{constantIdentifier}})(?![_$[:alnum:]])\n  usingKeyword: '(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)'\n  awaitUsingKeyword: '(?:\\bawait\\s+{{usingKeyword}}\\b)'\n  constructsAndModifiers: '(?:abstract|async|{{awaitUsingKeyword}}|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|{{usingKeyword}}|var|while)\\b'\n  endOfStatement: ';|^\\s*$|(?:^\\s*{{constructsAndModifiers}})'\n  varExprStart: '{{startOfDeclaration}}\\b(var|let){{endOfIdentifier}}'\n  constExprStart: '{{startOfDeclaration}}\\b(const(?!\\s+enum\\b)){{endOfIdentifier}}'\n  usingExprStart: '{{startOfDeclaration}}\\b({{usingKeyword}}|{{awaitUsingKeyword}}){{endOfIdentifier}}'\n  nonPropertyLookBehind: '[^\\._$[:alnum:]]'\n  lookBehindReturn: '^return|{{nonPropertyLookBehind}}return'\n  lookBehindThrow: '^throw|{{nonPropertyLookBehind}}throw'\n  lookBehindYield: '^yield|{{nonPropertyLookBehind}}yield'\n  lookBehindAwait: '^await|{{nonPropertyLookBehind}}await'\n  lookBehindDefault: '^default|{{nonPropertyLookBehind}}default'\n  lookBehindConst: '^const|{{nonPropertyLookBehind}}const'\n  lookBehindLet: '^let|{{nonPropertyLookBehind}}let'\n  lookBehindUsing: '^using|{{nonPropertyLookBehind}}using'\n  lookBehindAwaitUsing: '^await\\s+using|{{nonPropertyLookBehind}}await\\s+using'\n  lookBehindVar: '^var|{{nonPropertyLookBehind}}var'\n  lookBehindIn: '^in|{{nonPropertyLookBehind}}in'\n  lookBehindOf: '^of|{{nonPropertyLookBehind}}of'\n  lookBehindTypeof: '^typeof|{{nonPropertyLookBehind}}typeof'\n  lookBehindCase: '^case|{{nonPropertyLookBehind}}case'\n  lookBehindImport: '^import|{{nonPropertyLookBehind}}import'\n  lookAheadEndOfType: '[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$'\n  matchingParenthesis: (\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\n  matchingBraces: (\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\n  matchingBrackets: (\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\n  inlineComment: \\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\n  startOfDeclaration: '{{startOfIdentifier}}(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?'\n  lookBehindOfPossiblyMultilineArrowWithDestructuring: (?<=[(=,])\n  lookBehindOfPossiblyMultilineArrow: (?<=[(=,]|=>|{{lookBehindReturn}})\n  lookBehindOfObjectMemberPossiblyMultilineArrow: (?<=:)\n  # Identifier start | matching braces | matching parenthesis | matching square brackets\n  typeParamersStart: (((const\\s+)?[_$[:alpha:]])|{{matchingBraces}}|{{matchingParenthesis}}|{{matchingBrackets}})\n  typeParameters: (<\\s*{{typeParamersStart}}([^=<>]|=[^<]|\\<\\s*{{typeParamersStart}}([^=<>]|=[^<]|\\<\\s*{{typeParamersStart}}([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\n  # Identifier start | matching braces | matching parenthesis | matching square brackets | matching strings\n  typeArgumentsStart: (((keyof|infer|typeof|readonly)\\s+)|(({{identifier}}|{{matchingBraces}}|{{matchingParenthesis}}|{{matchingBrackets}}|{{quotedStrings}})(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))\n  typeArgumentsInnerExpressionPart: '[^<>\\(]|{{matchingParenthesis}}|(?<==)\\>'\n  typeArguments: '<\\s*{{typeArgumentsStart}}({{typeArgumentsInnerExpressionPart}}|\\<\\s*{{typeArgumentsStart}}(({{typeArgumentsInnerExpressionPart}}|\\<\\s*{{typeArgumentsStart}}({{typeArgumentsInnerExpressionPart}})*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>'\n  possiblyMultilineTypeArgument: (<\\s*[\\{\\[\\(]\\s*$)\n  functionCallLookup: \\s*(?:(\\?\\.\\s*)|(\\!))?(({{typeArguments}}\\s*)?\\()\n  functionCallNamedTarget: (({{identifier}})(\\s*{{propertyAccessPreIdentifier}}({{propertyIdentifier}}))*)|({{propertyAccessPreIdentifier}}{{propertyIdentifier}})\n  functionCallTarget: (({{functionCallNamedTarget}})|(?<=[\\)]))\n  possiblyMultilineCallWithTypeArguments: \\s*(?:(\\?\\.\\s*)|(\\!))?{{possiblyMultilineTypeArgument}}\n  possiblyType: \\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\n  typeparamertStartOfArrow: ''\n  arrowLookup: |-\n    # sure shot arrow functions even if => is on new line\n    (\n      {{typeParameters}}?\n      [(]\\s*({{inlineComment}}\\s*)*\n      (\n        ([)]\\s*:) |                                                                                       # ():\n        ((\\.\\.\\.\\s*)?{{identifier}}\\s*:)                                                                  # [(]param: | [(]...param:\n      )\n    ) |\n    {{typeparamertStartOfArrow}}\n    # arrow function possible to detect only with => on same line\n    (\n      {{typeParameters}}?                                                                                 # typeparameters\n      \\(\\s*({{inlineComment}}\\s*)*(([_$[:alpha:]]|{{matchingBraces}}|{{matchingBrackets}}|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|{{matchingParenthesis}}|{{quotedStrings}})*)?\\)   # parameters\n      (\\s*:{{possiblyType}})?                                                                        # return type\n      \\s*=>                                                                                               # arrow operator\n    )\n  possiblyMultilineArrowExpressionBeforeEndOfLine: ((({{typeParameters}})?\\()|(<)|({{typeParameters}}))\n  possiblyMultilineObjectBindingPattern: '{{matchingBraces}}\\s*((:\\s*\\{?$)|(({{possiblyType}}\\s*)?=\\s*))'\n  possiblyMultilineArrayBindingPattern: '{{matchingBrackets}}\\s*((:\\s*\\[?$)|(({{possiblyType}}\\s*)?=\\s*))'\n  possiblyMultilineArrowWParamters: '((([\\{\\[]\\s*)?$)|({{possiblyMultilineObjectBindingPattern}})|({{possiblyMultilineArrayBindingPattern}}))'\n  possiblyMultilineArrowWithoutTypeParameters: '[\\(]\\s*{{possiblyMultilineArrowWParamters}}'\n  possiblyMultilineArrow: ((<\\s*$)|({{typeParameters}}?{{possiblyMultilineArrowWithoutTypeParameters}}))  # during lookup treat <typeparameters>?( followed by line end as arrow or < followed by new line\n  functionOrArrowLookup: |-\n    \\s*(\n      ((async\\s+)?(\n        (function\\s*[(<*]) |\n        (function\\s+) |\n        ({{identifier}}\\s*=>)\n      )) |\n      ((async\\s*)?(\n        {{possiblyMultilineArrow}} |\n        {{arrowLookup}}\n      ))\n    )\n  functionLikeType: |-\n    (:\\s*(\n      (<) |\n      ([(]\\s*(\n        ([)]) |\n        (\\.\\.\\.) |\n        ([_$[:alnum:]]+\\s*(\n          ([:,?=])|\n          ([)]\\s*=>)\n        ))\n      ))\n    )) |\n    (:\\s*{{startOfIdentifier}}Function{{endOfIdentifier}}) |\n    (:\\s*{{possiblyMultilineArrow}})\n  functionLikeAssignmentOrType: |-\n    \\s*\n    # function assignment |\n    (={{functionOrArrowLookup}}) |\n    # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n    {{functionLikeType}} |\n    (:\\s*(=>|{{matchingParenthesis}}|(<[^<>]*>)|[^<>(),=])+={{functionOrArrowLookup}})\n  arrowFunctionEnd: (?==>|\\{|(^\\s*(export|function|class|interface|let|var|{{usingKeyword}}|{{awaitUsingKeyword}}|const|import|enum|namespace|module|type|abstract|declare)\\s+))\n  regexpTail: ([dgimsuvy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$])\n  completeRegexp: \\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/{{regexpTail}})\n\npatterns:\n- include: '#directives'\n- include: '#statements'\n- include: '#shebang'\n\nrepository:\n  shebang:\n    name: comment.line.shebang.ts\n    match: \\A(#!).*(?=$)\n    captures:\n      '1': { name: punctuation.definition.comment.ts }\n\n  statements:\n    patterns:\n    - include: '#declaration'\n    - include: '#control-statement'\n    - include: '#after-operator-block-as-object-literal'\n    - include: '#decl-block'\n    - include: '#label'\n    - include: '#expression'\n    - include: '#punctuation-semicolon'\n    - include: '#string'\n    - include: '#comment'\n\n  declaration:\n    patterns:\n    - include: '#decorator'\n    - include: '#var-expr'\n    - include: '#function-declaration'\n    - include: '#class-declaration'\n    - include: '#interface-declaration'\n    - include: '#enum-declaration'\n    - include: '#namespace-declaration'\n    - include: '#type-alias-declaration'\n    - include: '#import-equals-declaration'\n    - include: '#import-declaration'\n    - include: '#export-declaration'\n    - name: storage.modifier.ts\n      match: '{{startOfIdentifier}}(declare|export){{endOfIdentifier}}'\n\n  control-statement:\n    patterns:\n    - include: '#switch-statement'\n    - include: '#for-loop'\n    - name: keyword.control.trycatch.ts\n      match: '{{startOfIdentifier}}(catch|finally|throw|try){{endOfIdentifier}}'\n    - match: '{{startOfIdentifier}}(break|continue|goto)\\s+({{identifier}}){{endOfIdentifier}}'\n      captures:\n        '1': { name: keyword.control.loop.ts }\n        '2': { name: entity.name.label.ts }\n    - name: keyword.control.loop.ts\n      match: '{{startOfIdentifier}}(break|continue|do|goto|while){{endOfIdentifier}}'\n    - begin: '{{startOfIdentifier}}(return){{endOfIdentifier}}'\n      beginCaptures:\n        '0': { name: keyword.control.flow.ts }\n      end: (?=[;}]|$|{{endOfStatement}})\n      patterns:\n      - include: '#expression'\n    - name: keyword.control.switch.ts\n      match: '{{startOfIdentifier}}(case|default|switch){{endOfIdentifier}}'\n    - include: '#if-statement'\n    - name: keyword.control.conditional.ts\n      match: '{{startOfIdentifier}}(else|if){{endOfIdentifier}}'\n    - name: keyword.control.with.ts\n      match: '{{startOfIdentifier}}(with){{endOfIdentifier}}'\n    - name: keyword.control.ts\n      match: '{{startOfIdentifier}}(package){{endOfIdentifier}}'\n    - name: keyword.other.debugger.ts\n      match: '{{startOfIdentifier}}(debugger){{endOfIdentifier}}'\n\n  label:\n    patterns:\n    # handle declaration block followed by label so as to not confuse it with { followed by ternary operator which would be object literal\n    - begin: '{{label}}(?=\\s*\\{)'\n      beginCaptures:\n        '1': { name: entity.name.label.ts }\n        '2': { name: punctuation.separator.label.ts }\n      end: (?<=\\})\n      patterns:\n        - include: '#decl-block'\n    - match: '{{label}}'\n      captures:\n        '1': { name: entity.name.label.ts }\n        '2': { name: punctuation.separator.label.ts }\n\n  expression:\n    patterns:\n    - include: '#expressionWithoutIdentifiers'\n    - include: '#identifiers'\n    - include: '#expressionPunctuations'\n\n  expressionWithoutIdentifiers:\n    patterns:\n    - include: '#string'\n    - include: '#regex'\n    - include: '#comment'\n    - include: '#function-expression'\n    - include: '#class-expression'\n    - include: '#arrow-function'\n    - include: '#paren-expression-possibly-arrow'\n    - include: '#cast'\n    - include: '#ternary-expression'\n    - include: '#new-expr'\n    - include: '#instanceof-expr'\n    - include: '#object-literal'\n    - include: '#expression-operators'\n    - include: '#function-call'\n    - include: '#literal'\n    - include: '#support-objects'\n    - include: '#paren-expression'\n\n  expressionPunctuations:\n    patterns:\n    - include: '#punctuation-comma'\n    - include: '#punctuation-accessor'\n\n  decorator:\n    name: meta.decorator.ts\n    begin: '{{startOfIdentifier}}\\@'\n    beginCaptures:\n      '0': { name: punctuation.decorator.ts }\n    end: (?=\\s)\n    patterns:\n    - include: '#expression'\n\n  #variable, parameters, fields\n  var-expr:\n    patterns:\n    # let/var\n    - name: meta.var.expr.ts\n      begin: (?={{varExprStart}})\n      end: (?!{{varExprStart}})((?=^|;|}|({{startOfIdentifier}}(of|in)\\s+)|{{endOfStatement}})|((?<!{{lookBehindLet}}|{{lookBehindVar}})(?=\\s*$)))\n      patterns:\n      - begin: '{{varExprStart}}\\s*'\n        beginCaptures:\n          '1': { name: keyword.control.export.ts }\n          '2': { name: storage.modifier.ts }\n          '3': { name: storage.type.ts }\n        end: (?=\\S)\n      - include: '#destructuring-variable'\n      - include: '#var-single-variable'\n      - include: '#variable-initializer'\n      - include: '#comment'\n      - begin: (,)\\s*(?=$|\\/\\/)\n        beginCaptures:\n          '1': { name: punctuation.separator.comma.ts }\n        end: (?<!,)(((?==|;|}|({{startOfIdentifier}}(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))\n        patterns:\n        - include: '#single-line-comment-consuming-line-ending'\n        - include: '#comment'\n        - include: '#destructuring-variable'\n        - include: '#var-single-variable'\n        - include: '#punctuation-comma'\n      - include: '#punctuation-comma'\n    # const\n    - name: meta.var.expr.ts\n      begin: (?={{constExprStart}})\n      beginCaptures:\n        '1': { name: keyword.control.export.ts }\n        '2': { name: storage.modifier.ts }\n        '3': { name: storage.type.ts }\n      end: (?!{{constExprStart}})((?=^|;|}|({{startOfIdentifier}}(of|in)\\s+)|{{endOfStatement}})|((?<!{{lookBehindConst}})(?=\\s*$)))\n      patterns:\n      - begin: '{{constExprStart}}\\s*'\n        beginCaptures:\n          '1': { name: keyword.control.export.ts }\n          '2': { name: storage.modifier.ts }\n          '3': { name: storage.type.ts }\n        end: (?=\\S)\n      - include: '#destructuring-const'\n      - include: '#var-single-const'\n      - include: '#variable-initializer'\n      - include: '#comment'\n      - begin: (,)\\s*(?=$|\\/\\/)\n        beginCaptures:\n          '1': { name: punctuation.separator.comma.ts }\n        end: (?<!,)(((?==|;|}|({{startOfIdentifier}}(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))\n        patterns:\n        - include: '#single-line-comment-consuming-line-ending'\n        - include: '#comment'\n        - include: '#destructuring-const'\n        - include: '#var-single-const'\n        - include: '#punctuation-comma'\n      - include: '#punctuation-comma'\n    # using/await using\n    - name: meta.var.expr.ts\n      begin: (?={{usingExprStart}})\n      beginCaptures:\n        '1': { name: keyword.control.export.ts }\n        '2': { name: storage.modifier.ts }\n        '3': { name: storage.type.ts }\n      end: (?!{{usingExprStart}})((?=;|}|({{startOfIdentifier}}(of|in)\\s+)|{{endOfStatement}})|((?<!{{lookBehindUsing}}|{{lookBehindAwaitUsing}})(?=\\s*$)))\n      patterns:\n      - begin: '{{usingExprStart}}\\s*'\n        beginCaptures:\n          '1': { name: keyword.control.export.ts }\n          '2': { name: storage.modifier.ts }\n          '3': { name: storage.type.ts }\n        end: (?=\\S)\n      - include: '#var-single-const'\n      - include: '#variable-initializer'\n      - include: '#comment'\n      - begin: (,)\\s*((?!\\S)|(?=\\/\\/))\n        beginCaptures:\n          '1': { name: punctuation.separator.comma.ts }\n        end: (?<!,)(((?==|;|}|({{startOfIdentifier}}(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))\n        patterns:\n        - include: '#single-line-comment-consuming-line-ending'\n        - include: '#comment'\n        - include: '#var-single-const'\n        - include: '#punctuation-comma'\n      - include: '#punctuation-comma'\n\n  var-single-variable:\n    patterns:\n    - name: meta.var-single-variable.expr.ts\n      begin: |-\n        (?x)({{identifier}})(\\!)?(?={{functionLikeAssignmentOrType}})\n      beginCaptures:\n        '1': { name: meta.definition.variable.ts entity.name.function.ts }\n        '2': { name: keyword.operator.definiteassignment.ts }\n      end: (?=$|^|[;,=}]|({{startOfIdentifier}}(of|in)\\s+)|({{endOfStatement}}))\n      patterns:\n      - include: '#var-single-variable-type-annotation'\n    - name: meta.var-single-variable.expr.ts\n      begin: '{{constantVar}}(\\!)?'\n      beginCaptures:\n        '1': { name: meta.definition.variable.ts variable.other.constant.ts }\n        '2': { name: keyword.operator.definiteassignment.ts }\n      end: (?=$|^|[;,=}]|({{startOfIdentifier}}(of|in)\\s+)|({{endOfStatement}}))\n      patterns:\n      - include: '#var-single-variable-type-annotation'\n    - name: meta.var-single-variable.expr.ts\n      begin: ({{identifier}})(\\!)?\n      beginCaptures:\n        '1': { name: meta.definition.variable.ts variable.other.readwrite.ts }\n        '2': { name: keyword.operator.definiteassignment.ts }\n      end: (?=$|^|[;,=}]|({{startOfIdentifier}}(of|in)\\s+)|({{endOfStatement}}))\n      patterns:\n      - include: '#var-single-variable-type-annotation'\n\n  var-single-const:\n    patterns:\n    - name: meta.var-single-variable.expr.ts\n      begin: |-\n        (?x)({{identifier}})(?={{functionLikeAssignmentOrType}})\n      beginCaptures:\n        '1': { name: meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts }\n      end: (?=$|^|[;,=}]|({{startOfIdentifier}}(of|in)\\s+)|({{endOfStatement}}))\n      patterns:\n      - include: '#var-single-variable-type-annotation'\n    - name: meta.var-single-variable.expr.ts\n      begin: ({{identifier}})\n      beginCaptures:\n        '1': { name: meta.definition.variable.ts variable.other.constant.ts }\n      end: (?=$|^|[;,=}]|({{startOfIdentifier}}(of|in)\\s+)|({{endOfStatement}}))\n      patterns:\n      - include: '#var-single-variable-type-annotation'\n\n  var-single-variable-type-annotation:\n    patterns:\n    - include: '#type-annotation'\n    - include: '#string'\n    - include: '#comment'\n\n  destructuring-variable:\n    patterns:\n    - name: meta.object-binding-pattern-variable.ts\n      begin: (?<!=|:|{{lookBehindOf}}|{{lookBehindIn}})\\s*(?=\\{)\n      end: (?=$|^|[;,=}]|({{startOfIdentifier}}(of|in)\\s+))\n      patterns:\n      - include: '#object-binding-pattern'\n      - include: '#type-annotation'\n      - include: '#comment'\n    - name: meta.array-binding-pattern-variable.ts\n      begin: (?<!=|:|{{lookBehindOf}}|{{lookBehindIn}})\\s*(?=\\[)\n      end: (?=$|^|[;,=}]|({{startOfIdentifier}}(of|in)\\s+))\n      patterns:\n      - include: '#array-binding-pattern'\n      - include: '#type-annotation'\n      - include: '#comment'\n\n  destructuring-const:\n    patterns:\n    - name: meta.object-binding-pattern-variable.ts\n      begin: (?<!=|:|{{lookBehindOf}}|{{lookBehindIn}})\\s*(?=\\{)\n      end: (?=$|^|[;,=}]|({{startOfIdentifier}}(of|in)\\s+))\n      patterns:\n      - include: '#object-binding-pattern-const'\n      - include: '#type-annotation'\n      - include: '#comment'\n    - name: meta.array-binding-pattern-variable.ts\n      begin: (?<!=|:|{{lookBehindOf}}|{{lookBehindIn}})\\s*(?=\\[)\n      end: (?=$|^|[;,=}]|({{startOfIdentifier}}(of|in)\\s+))\n      patterns:\n      - include: '#array-binding-pattern-const'\n      - include: '#type-annotation'\n      - include: '#comment'\n\n  object-binding-element:\n    patterns:\n    - include: '#comment'\n    - begin: (?x)(?={{propertyName}}\\s*(:))\n      end: (?=,|\\})\n      patterns:\n      - include: '#object-binding-element-propertyName'\n      - include: '#binding-element'\n    - include: '#object-binding-pattern'\n    - include: '#destructuring-variable-rest'\n    - include: '#variable-initializer'\n    - include: '#punctuation-comma'\n\n  object-binding-element-const:\n    patterns:\n    - include: '#comment'\n    - begin: (?x)(?={{propertyName}}\\s*(:))\n      end: (?=,|\\})\n      patterns:\n      - include: '#object-binding-element-propertyName'\n      - include: '#binding-element-const'\n    - include: '#object-binding-pattern-const'\n    - include: '#destructuring-variable-rest-const'\n    - include: '#variable-initializer'\n    - include: '#punctuation-comma'\n\n  object-binding-element-propertyName:\n    begin: (?x)(?={{propertyName}}\\s*(:))\n    end: (:)\n    endCaptures:\n      '0': { name: punctuation.destructuring.ts }\n    patterns:\n    - include: '#string'\n    - include: '#array-literal'\n    - include: '#numeric-literal'\n    - name: variable.object.property.ts\n      match: ({{identifier}})\n\n  binding-element:\n    patterns:\n    - include: '#comment'\n    - include: '#string'\n    - include: '#numeric-literal'\n    - include: '#regex'\n    - include: '#object-binding-pattern'\n    - include: '#array-binding-pattern'\n    - include: '#destructuring-variable-rest'\n    - include: '#variable-initializer'\n\n  binding-element-const:\n    patterns:\n    - include: '#comment'\n    - include: '#string'\n    - include: '#numeric-literal'\n    - include: '#regex'\n    - include: '#object-binding-pattern-const'\n    - include: '#array-binding-pattern-const'\n    - include: '#destructuring-variable-rest-const'\n    - include: '#variable-initializer'\n\n  destructuring-variable-rest:\n    match: (?:(\\.\\.\\.)\\s*)?({{identifier}})\n    captures:\n      '1': { name: keyword.operator.rest.ts }\n      '2': { name: meta.definition.variable.ts variable.other.readwrite.ts }\n\n  destructuring-variable-rest-const:\n    match: (?:(\\.\\.\\.)\\s*)?({{identifier}})\n    captures:\n      '1': { name: keyword.operator.rest.ts }\n      '2': { name: meta.definition.variable.ts variable.other.constant.ts }\n\n  object-binding-pattern:\n    begin: (?:(\\.\\.\\.)\\s*)?(\\{)\n    beginCaptures:\n      '1': { name: keyword.operator.rest.ts }\n      '2': { name: punctuation.definition.binding-pattern.object.ts }\n    end: \\}\n    endCaptures:\n      '0': { name: punctuation.definition.binding-pattern.object.ts }\n    patterns:\n    - include: '#object-binding-element'\n\n  object-binding-pattern-const:\n    begin: (?:(\\.\\.\\.)\\s*)?(\\{)\n    beginCaptures:\n      '1': { name: keyword.operator.rest.ts }\n      '2': { name: punctuation.definition.binding-pattern.object.ts }\n    end: \\}\n    endCaptures:\n      '0': { name: punctuation.definition.binding-pattern.object.ts }\n    patterns:\n    - include: '#object-binding-element-const'\n\n  array-binding-pattern:\n    begin: (?:(\\.\\.\\.)\\s*)?(\\[)\n    beginCaptures:\n      '1': { name: keyword.operator.rest.ts }\n      '2': { name: punctuation.definition.binding-pattern.array.ts }\n    end: \\]\n    endCaptures:\n      '0': { name: punctuation.definition.binding-pattern.array.ts }\n    patterns:\n    - include: '#binding-element'\n    - include: '#punctuation-comma'\n\n  array-binding-pattern-const:\n    begin: (?:(\\.\\.\\.)\\s*)?(\\[)\n    beginCaptures:\n      '1': { name: keyword.operator.rest.ts }\n      '2': { name: punctuation.definition.binding-pattern.array.ts }\n    end: \\]\n    endCaptures:\n      '0': { name: punctuation.definition.binding-pattern.array.ts }\n    patterns:\n    - include: '#binding-element-const'\n    - include: '#punctuation-comma'\n\n  # When doing modication to parameter name, also modify expression-inside-possibly-arrow-parens where this is inlined so as to make\n  # as optional operator only if it is not followed by assignment or type annotation\n  parameter-name:\n    patterns:\n    - match: '{{startOfIdentifier}}(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)'\n      captures:\n        '1': { name: storage.modifier.ts }\n    - match: |-\n        (?x)(?:{{startOfIdentifier}}(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:){{startOfIdentifier}}(?:(this)|({{identifier}})){{endOfIdentifier}}\\s*(\\??)(?={{functionLikeAssignmentOrType}})\n      captures:\n        '1': { name: storage.modifier.ts }\n        '2': { name: keyword.operator.rest.ts }\n        '3': { name: entity.name.function.ts variable.language.this.ts }\n        '4': { name: entity.name.function.ts }\n        '5': { name: keyword.operator.optional.ts }\n    - match: |-\n        (?x)(?:{{startOfIdentifier}}(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:){{startOfIdentifier}}(?:(this)|({{identifier}})){{endOfIdentifier}}\\s*(\\??)\n      captures:\n        '1': { name: storage.modifier.ts }\n        '2': { name: keyword.operator.rest.ts }\n        '3': { name: variable.parameter.ts variable.language.this.ts }\n        '4': { name: variable.parameter.ts }\n        '5': { name: keyword.operator.optional.ts }\n\n  destructuring-parameter:\n    patterns:\n    - name: meta.parameter.object-binding-pattern.ts\n      begin: (?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)\n      beginCaptures:\n        '1': { name: keyword.operator.rest.ts }\n        '2': { name: punctuation.definition.binding-pattern.object.ts }\n      end: \\}\n      endCaptures:\n        '0': { name: punctuation.definition.binding-pattern.object.ts }\n      patterns:\n      - include: '#parameter-object-binding-element'\n    - name: meta.paramter.array-binding-pattern.ts\n      begin: (?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)\n      beginCaptures:\n        '1': { name: keyword.operator.rest.ts }\n        '2': { name: punctuation.definition.binding-pattern.array.ts }\n      end: \\]\n      endCaptures:\n        '0': { name: punctuation.definition.binding-pattern.array.ts }\n      patterns:\n      - include: '#parameter-binding-element'\n      - include: '#punctuation-comma'\n\n  parameter-object-binding-element:\n    patterns:\n    - include: '#comment'\n    - begin: (?x)(?={{propertyName}}\\s*(:))\n      end: (?=,|\\})\n      patterns:\n      - include: '#object-binding-element-propertyName'\n      - include: '#parameter-binding-element'\n      - include: '#paren-expression' # as fallback when coming through possibly arrow or expression scenario\n    - include: '#parameter-object-binding-pattern'\n    - include: '#destructuring-parameter-rest'\n    - include: '#variable-initializer'\n    - include: '#punctuation-comma'\n\n  parameter-binding-element:\n    patterns:\n    - include: '#comment'\n    - include: '#string'\n    - include: '#numeric-literal'\n    - include: '#regex'\n    - include: '#parameter-object-binding-pattern'\n    - include: '#parameter-array-binding-pattern'\n    - include: '#destructuring-parameter-rest'\n    - include: '#variable-initializer'\n\n  destructuring-parameter-rest:\n    match: (?:(\\.\\.\\.)\\s*)?({{identifier}})\n    captures:\n      '1': { name: keyword.operator.rest.ts }\n      '2': { name: variable.parameter.ts }\n\n  parameter-object-binding-pattern:\n    begin: (?:(\\.\\.\\.)\\s*)?(\\{)\n    beginCaptures:\n      '1': { name: keyword.operator.rest.ts }\n      '2': { name: punctuation.definition.binding-pattern.object.ts }\n    end: \\}\n    endCaptures:\n      '0': { name: punctuation.definition.binding-pattern.object.ts }\n    patterns:\n    - include: '#parameter-object-binding-element'\n\n  parameter-array-binding-pattern:\n    begin: (?:(\\.\\.\\.)\\s*)?(\\[)\n    beginCaptures:\n      '1': { name: keyword.operator.rest.ts }\n      '2': { name: punctuation.definition.binding-pattern.array.ts }\n    end: \\]\n    endCaptures:\n      '0': { name: punctuation.definition.binding-pattern.array.ts }\n    patterns:\n    - include: '#parameter-binding-element'\n    - include: '#punctuation-comma'\n\n  field-declaration:\n    name: meta.field.declaration.ts\n    begin: (?x)(?<!\\()(?:{{startOfIdentifier}}(readonly)\\s+)?(?=\\s*{{propertyNameWithPrivate}}\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))\n    beginCaptures:\n      '1': { name: storage.modifier.ts }\n    end: (?x)(?=\\}|;|,|$|(^(?!\\s*{{propertyNameWithPrivate}}\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})\n    patterns:\n    - include: '#variable-initializer'\n    - include: '#type-annotation'\n    - include: '#string'\n    - include: '#array-literal'\n    - include: '#numeric-literal'\n    - include: '#comment'\n    # function assignment |\n    # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n    - match: |-\n        (?x)({{propertyIdentifier}})(?:(\\?)|(\\!))?(?=\\s*{{functionLikeAssignmentOrType}})\n      captures:\n        '1': { name: meta.definition.property.ts entity.name.function.ts }\n        '2': { name: keyword.operator.optional.ts }\n        '3': { name: keyword.operator.definiteassignment.ts }\n    - name: meta.definition.property.ts variable.object.property.ts\n      match: '{{propertyIdentifier}}'\n    - name: keyword.operator.optional.ts\n      match: \\?\n    - name: keyword.operator.definiteassignment.ts\n      match: \\!\n\n  variable-initializer:\n    patterns:\n    # if it is assignment with expression on same line, use end of line as end of scope\n    - begin: (?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)\n      beginCaptures:\n        '1': { name: keyword.operator.assignment.ts }\n      end: (?=$|^|[,);}\\]]|({{startOfIdentifier}}(of|in)\\s+))\n      patterns:\n      - include: '#expression'\n    # if the expression doesnt start on same line do not use end of line as end of unless the complete line is blank\n    - begin: (?<!=|!)(=)(?!=)\n      beginCaptures:\n        '1': { name: keyword.operator.assignment.ts }\n      end: (?=[,);}\\]]|({{startOfIdentifier}}(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)\n      patterns:\n        - include: '#expression'\n\n  #functions, methods, function expressions, arrows, indexers\n  function-declaration:\n    name: meta.function.ts\n    begin: '{{startOfDeclaration}}(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))({{identifier}}))?\\s*'\n    beginCaptures:\n      '1': { name: keyword.control.export.ts }\n      '2': { name: storage.modifier.ts }\n      '3': { name: storage.modifier.async.ts }\n      '4': { name: storage.type.function.ts }\n      '5': { name: keyword.generator.asterisk.ts }\n      '6': { name: meta.definition.function.ts entity.name.function.ts }\n    end: (?={{endOfStatement}})|(?<=\\})\n    patterns:\n    - include: '#function-name'\n    - include: '#function-body'\n\n  function-expression:\n    name: meta.function.expression.ts\n    begin: '{{startOfIdentifier}}(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))({{identifier}}))?\\s*'\n    beginCaptures:\n      '1': { name: storage.modifier.async.ts }\n      '2': { name: storage.type.function.ts }\n      '3': { name: keyword.generator.asterisk.ts }\n      '4': { name: meta.definition.function.ts entity.name.function.ts }\n    end: (?=;)|(?<=\\})\n    patterns:\n    - include: '#function-name'\n    - include: '#single-line-comment-consuming-line-ending'\n    - include: '#function-body'\n\n  function-name:\n    name: meta.definition.function.ts entity.name.function.ts\n    match: '{{identifier}}'\n\n  function-body:\n    patterns:\n    - include: '#comment'\n    - include: '#type-parameters'\n    - include: '#function-parameters'\n    - include: '#return-type'\n    - include: '#type-function-return-type'\n    - include: '#decl-block'\n    - name: keyword.generator.asterisk.ts\n      match: \\*\n\n  method-declaration:\n    patterns:\n    # constructor signature\n    - name: meta.method.declaration.ts\n      begin: '(?x){{startOfIdentifier}}(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:){{endOfIdentifier}}'\n      beginCaptures:\n        '1': { name: storage.modifier.ts } # captures keyword (override)\n        '2': { name: storage.modifier.ts } # captures keyword (public or private or protected)\n        '3': { name: storage.modifier.ts } # captures keyword (abstract)\n        '4': { name: storage.modifier.async.ts } # captures keyword (async)\n        '5': { name: storage.type.ts } # captures keyword (constructor)\n      end: (?=\\}|;|,|$)|(?<=\\})\n      patterns:\n      - include: '#method-declaration-name'\n      - include: '#function-body'\n    # new or call signature\n    - name: meta.method.declaration.ts\n      begin: '(?x){{startOfIdentifier}}(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:){{endOfIdentifier}})|(?:(\\*)\\s*)?)(?=\\s*({{typeParameters}})?[\\(])'\n      beginCaptures:\n        '1': { name: storage.modifier.ts } # captures keyword (override)\n        '2': { name: storage.modifier.ts } # captures keyword (public or private or protected)\n        '3': { name: storage.modifier.ts } # captures keyword (abstract)\n        '4': { name: storage.modifier.async.ts } # captures keyword (async)\n        '5': { name: keyword.operator.new.ts } # captures keyword (new)\n        '6': { name: keyword.generator.asterisk.ts } # captures keyword (*)\n      end: (?=\\}|;|,|$)|(?<=\\})\n      patterns:\n      - include: '#method-declaration-name'\n      - include: '#function-body'\n    # method, accessor\n    - name: meta.method.declaration.ts\n      begin: '(?x){{startOfIdentifier}}(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*({{propertyName}}\\s*(\\??))\\s*({{typeParameters}})?[\\(])'\n      beginCaptures:\n        '1': { name: storage.modifier.ts } # captures keyword (override)\n        '2': { name: storage.modifier.ts } # captures keyword (public or private or protected)\n        '3': { name: storage.modifier.ts } # captures keyword (abstract)\n        '4': { name: storage.modifier.async.ts } # captures keyword (async)\n        '5': { name: storage.type.property.ts } # captures keyword (get|set)\n        '6': { name: keyword.generator.asterisk.ts } # captures keyword (*)\n      end: (?=\\}|;|,|$)|(?<=\\})\n      patterns:\n      - include: '#method-declaration-name'\n      - include: '#function-body'\n\n  object-literal-method-declaration:\n    name: meta.method.declaration.ts\n    begin: '(?x){{startOfIdentifier}}(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*({{propertyName}}\\s*(\\??))\\s*({{typeParameters}})?[\\(])'\n    beginCaptures:\n      '1': { name: storage.modifier.async.ts } # captures keyword (async)\n      '2': { name: storage.type.property.ts } # captures keyword (get|set)\n      '3': { name: keyword.generator.asterisk.ts } # captures keyword (*)\n    end: '(?=\\}|;|,)|(?<=\\})'\n    patterns:\n    - include: '#method-declaration-name'\n    - include: '#function-body'\n    - begin: '(?x){{startOfIdentifier}}(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*({{propertyName}}\\s*(\\??))\\s*({{typeParameters}})?[\\(])'\n      beginCaptures:\n        '1': { name: storage.modifier.async.ts } # captures keyword (async)\n        '2': { name: storage.type.property.ts } # captures keyword (get|set)\n        '3': { name: keyword.generator.asterisk.ts } # captures keyword (*)\n      end: (?=\\(|\\<)\n      patterns:\n      - include: '#method-declaration-name'\n\n  method-declaration-name:\n    begin: (?x)(?={{propertyName}}\\s*(\\??)\\s*[\\(\\<])\n    end: (?=\\(|\\<)\n    patterns:\n    - include: '#string'\n    - include: '#array-literal'\n    - include: '#numeric-literal'\n    - name: meta.definition.method.ts entity.name.function.ts\n      match: '{{identifier}}'\n    - name: keyword.operator.optional.ts\n      match: \\?\n\n  arrow-function:\n    patterns:\n    # arrow with single parameter without parenthesis\n    - name: meta.arrow.ts\n      match: (?:{{startOfIdentifier}}(\\basync)\\s+)?({{identifier}})\\s*(?==>)\n      captures:\n        '1': { name: storage.modifier.async.ts }\n        '2': { name: variable.parameter.ts }\n    # parenthesized arrow\n    - name: meta.arrow.ts\n      begin: >-\n        (?x)\n        (?:\n          {{startOfIdentifier}}(\\basync)\n        )?\n        ((?<![})!\\]])\\s*\n          (?=\n            {{arrowLookup}}\n          )\n        )\n      beginCaptures:\n        '1': { name: storage.modifier.async.ts }\n      end: '{{arrowFunctionEnd}}'\n      patterns:\n      - include: '#comment'\n      - include: '#type-parameters'\n      - include: '#function-parameters'\n      # return type of the arrow\n      - include: '#arrow-return-type'\n      - include: '#possibly-arrow-return-type'\n    # arrow operator\n    - name: meta.arrow.ts\n      begin: =>\n      beginCaptures:\n        '0': { name: storage.type.function.arrow.ts }\n      end: ((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])\n      patterns:\n      - include: '#single-line-comment-consuming-line-ending'\n      - include: '#decl-block'\n      - include: '#expression'\n\n  indexer-declaration:\n    name: meta.indexer.declaration.ts\n    begin: (?:{{startOfIdentifier}}(readonly)\\s*)?\\s*(\\[)\\s*({{identifier}})\\s*(?=:)\n    beginCaptures:\n      '1': { name: storage.modifier.ts }\n      '2': { name: meta.brace.square.ts }\n      '3': { name: variable.parameter.ts}\n    end: (\\])\\s*(\\?\\s*)?|$\n    endCaptures:\n      '1': { name: meta.brace.square.ts }\n      '2': { name: keyword.operator.optional.ts }\n    patterns:\n    - include: '#type-annotation'\n\n  indexer-mapped-type-declaration:\n    name: meta.indexer.mappedtype.declaration.ts\n    begin: (?:{{startOfIdentifier}}([+-])?(readonly)\\s*)?\\s*(\\[)\\s*({{identifier}})\\s+(in)\\s+\n    beginCaptures:\n      '1': { name: keyword.operator.type.modifier.ts }\n      '2': { name: storage.modifier.ts }\n      '3': { name: meta.brace.square.ts }\n      '4': { name: entity.name.type.ts }\n      '5': { name: keyword.operator.expression.in.ts }\n    end: (\\])([+-])?\\s*(\\?\\s*)?|$\n    endCaptures:\n      '1': { name: meta.brace.square.ts }\n      '2': { name: keyword.operator.type.modifier.ts }\n      '3': { name: keyword.operator.optional.ts }\n    patterns:\n    - match: '{{startOfIdentifier}}(as)\\s+'\n      captures:\n        '1': { name: keyword.control.as.ts }\n    - include: '#type'\n\n  function-parameters:\n    name: meta.parameters.ts\n    begin: \\(\n    beginCaptures:\n      '0': { name: punctuation.definition.parameters.begin.ts }\n    end: \\)\n    endCaptures:\n      '0': { name: punctuation.definition.parameters.end.ts }\n    patterns:\n    - include: '#function-parameters-body'\n\n  # When updating this, also update the expression-inside-possibly-arrow-parens where this is inlined so that parameter-name can also be inlined\n  function-parameters-body:\n    patterns:\n    - include: '#comment'\n    - include: '#string'\n    - include: '#decorator'\n    - include: '#destructuring-parameter'\n    - include: '#parameter-name'\n    - include: '#parameter-type-annotation'\n    - include: '#variable-initializer'\n    - name: punctuation.separator.parameter.ts\n      match: ','\n\n  #class declaration and expression, interface\n  class-declaration:\n    name: meta.class.ts\n    begin: '{{startOfDeclaration}}\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])'\n    beginCaptures:\n      '1': { name: keyword.control.export.ts }\n      '2': { name: storage.modifier.ts }\n      '3': { name: storage.modifier.ts }\n      '4': { name: storage.type.class.ts }\n    end: (?<=\\})\n    patterns:\n    - include: '#class-declaration-or-expression-patterns'\n\n  class-expression:\n    name: meta.class.ts\n    # allows anonymous class\n    begin: '{{startOfIdentifier}}(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])'\n    beginCaptures:\n      '1': { name: storage.modifier.ts }\n      '2': { name: storage.type.class.ts }\n    end: (?<=\\})\n    patterns:\n    - include: '#class-declaration-or-expression-patterns'\n\n  class-declaration-or-expression-patterns:\n    patterns:\n    - include: '#comment'\n    - include: '#class-or-interface-heritage' # Must be before object-name to consume the \"extends\" keyword.\n    - match: '{{identifier}}'\n      captures:\n        '0': { name: 'entity.name.type.class.ts' }\n    - include: '#type-parameters' # Must be applied after object-name e.g. interface KeyValuePair<K, V>\n    - include: '#class-or-interface-body'\n\n  interface-declaration:\n    name: meta.interface.ts\n    begin: '{{startOfDeclaration}}\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])'\n    beginCaptures:\n      '1': { name: keyword.control.export.ts }\n      '2': { name: storage.modifier.ts }\n      '3': { name: storage.modifier.ts }\n      '4': { name: storage.type.interface.ts }\n    end: (?<=\\})\n    patterns:\n    - include: '#comment'\n    - include: '#class-or-interface-heritage' # Must be before object-name to consume the \"extends\" keyword.\n    - match: '{{identifier}}'\n      captures:\n        '0': { name: 'entity.name.type.interface.ts' }\n    - include: '#type-parameters' # Must be applied after object-name e.g. interface KeyValuePair<K, V>\n    - include: '#class-or-interface-body'\n\n  class-or-interface-heritage:\n    begin: '{{startOfIdentifier}}(?:\\b(extends|implements)\\b){{endOfIdentifier}}'\n    beginCaptures:\n      '1': { name: storage.modifier.ts }\n    end: (?=\\{)\n    patterns:\n    - include: '#comment'\n    - include: '#class-or-interface-heritage'\n    - include: '#type-parameters'\n    # match expressions before matching identifiers\n    - include: '#expressionWithoutIdentifiers'\n    # identifiers are treated as inherited class\n    - match: '({{identifier}})\\s*{{propertyAccess}}(?=\\s*{{identifier}}(\\s*{{propertyAccessPreIdentifier}}{{identifier}})*\\s*)'\n      captures:\n        '1': { name: entity.name.type.module.ts }\n        '2': { name: punctuation.accessor.ts }\n        '3': { name: punctuation.accessor.optional.ts }\n    - match: ({{identifier}})\n      captures:\n        '1': { name: entity.other.inherited-class.ts }\n    # match punctuations of the expression\n    - include: '#expressionPunctuations'\n\n  class-or-interface-body:\n    begin: \\{\n    beginCaptures:\n      '0': { name: punctuation.definition.block.ts }\n    end: \\}\n    endCaptures:\n      '0': { name: punctuation.definition.block.ts }\n    patterns:\n    - include: '#comment'\n    - include: '#decorator'\n    # The : could most probably be end of ternary expression so to avoid matching expression following it as field declaration, explicitly match it as expression\n    - begin: (?<=:)\\s*\n      end: (?=\\s|[;),}\\]:\\-\\+]|{{endOfStatement}})\n      patterns:\n      - include: '#expression'\n    - include: '#method-declaration'\n    - include: '#indexer-declaration'\n    - include: '#field-declaration'\n    - include: \"#string\"\n    - include: '#type-annotation'\n    - include: '#variable-initializer'\n    - include: '#access-modifier'\n    - include: '#property-accessor'\n    - include: '#async-modifier'\n    - include: '#after-operator-block-as-object-literal'\n    - include: '#decl-block'\n    - include: '#expression'\n    - include: '#punctuation-comma'\n    - include: '#punctuation-semicolon'\n\n  access-modifier:\n    name: storage.modifier.ts\n    match: '{{startOfIdentifier}}(abstract|declare|override|public|protected|private|readonly|static){{endOfIdentifier}}'\n\n  property-accessor:\n    name: storage.type.property.ts\n    match: '{{startOfIdentifier}}(accessor|get|set){{endOfIdentifier}}'\n\n  async-modifier:\n    name: storage.modifier.async.ts\n    match:  '{{startOfIdentifier}}(async){{endOfIdentifier}}'\n\n  #enum\n  enum-declaration:\n    name: meta.enum.declaration.ts\n    begin: '{{startOfDeclaration}}(?:\\b(const)\\s+)?\\b(enum)\\s+({{identifier}})'\n    beginCaptures:\n      '1': { name: keyword.control.export.ts }\n      '2': { name: storage.modifier.ts}\n      '3': { name: storage.modifier.ts}\n      '4': { name: storage.type.enum.ts }\n      '5': { name: entity.name.type.enum.ts }\n    end: (?<=\\})\n    patterns:\n    - include: '#comment'\n    - begin: \\{\n      beginCaptures:\n        '0': { name: punctuation.definition.block.ts }\n      end: \\}\n      endCaptures:\n        '0': { name: punctuation.definition.block.ts }\n      patterns:\n      - include: '#comment'\n      - begin: ({{identifier}})\n        beginCaptures:\n          '0': { name: variable.other.enummember.ts }\n        end: (?=,|\\}|$)\n        patterns:\n        - include: '#comment'\n        - include: '#variable-initializer'\n      - begin: (?=({{nonIdentifierPropertyName}}))\n        end: (?=,|\\}|$)\n        patterns:\n        - include: '#string'\n        - include: '#array-literal'\n        - include: '#comment'\n        - include: '#variable-initializer'\n      - include: '#punctuation-comma'\n\n  #namespace\n  namespace-declaration:\n    name: meta.namespace.declaration.ts\n    begin: (?:{{startOfDeclaration}}\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))\n    beginCaptures:\n      '1': { name: keyword.control.export.ts }\n      '2': { name: storage.modifier.ts }\n      '3': { name: storage.type.namespace.ts }\n    end: (?<=\\})|(?={{endOfStatement}})\n    patterns:\n    - include: '#comment'\n    - include: '#string'\n    - name: entity.name.type.module.ts\n      match: ({{identifier}})\n    - include: '#punctuation-accessor'\n    - include: '#decl-block'\n\n  #type alias\n  type-alias-declaration:\n    name: meta.type.declaration.ts\n    begin: '{{startOfDeclaration}}\\b(type)\\b\\s+({{identifier}})\\s*'\n    beginCaptures:\n      '1': { name: keyword.control.export.ts }\n      '2': { name: storage.modifier.ts }\n      '3': { name: storage.type.type.ts }\n      '4': { name: entity.name.type.alias.ts }\n    end: (?=\\}|{{endOfStatement}})\n    patterns:\n      - include: '#comment'\n      - include: '#type-parameters'\n      - begin: '(=)\\s*(intrinsic){{endOfIdentifier}}'\n        beginCaptures:\n          '1': { name: keyword.operator.assignment.ts }\n          '2': { name: keyword.control.intrinsic.ts }\n        end: (?=\\}|{{endOfStatement}})\n        patterns:\n        - include: '#type'\n      - begin: '(=)\\s*'\n        beginCaptures:\n          '1': { name: keyword.operator.assignment.ts }\n        end: (?=\\}|{{endOfStatement}})\n        patterns:\n        - include: '#type'\n\n  #import and export\n  import-equals-declaration:\n    patterns:\n    - name: meta.import-equals.external.ts\n      begin: '{{startOfDeclaration}}\\b(import)(?:\\s+(type))?\\s+({{identifier}})\\s*(=)\\s*(require)\\s*(\\()'\n      beginCaptures:\n        '1': { name: keyword.control.export.ts }\n        '2': { name: storage.modifier.ts }\n        '3': { name: keyword.control.import.ts }\n        '4': { name: keyword.control.type.ts }\n        '5': { name: variable.other.readwrite.alias.ts }\n        '6': { name: keyword.operator.assignment.ts }\n        '7': { name: keyword.control.require.ts }\n        '8': { name: meta.brace.round.ts }\n      end: \\)\n      endCaptures:\n        '0': { name: meta.brace.round.ts }\n      patterns:\n        - include: '#comment'\n        - include: '#string'\n    - name: meta.import-equals.internal.ts\n      begin: '{{startOfDeclaration}}\\b(import)(?:\\s+(type))?\\s+({{identifier}})\\s*(=)\\s*(?!require\\b)'\n      beginCaptures:\n        '1': { name: keyword.control.export.ts }\n        '2': { name: storage.modifier.ts }\n        '3': { name: keyword.control.import.ts }\n        '4': { name: keyword.control.type.ts }\n        '5': { name: variable.other.readwrite.alias.ts }\n        '6': { name: keyword.operator.assignment.ts }\n      end: (?=;|$|^)\n      patterns:\n        - include: '#single-line-comment-consuming-line-ending'\n        - include: '#comment'\n        - match: ({{identifier}})\\s*{{propertyAccess}}\n          captures:\n            '1': { name: entity.name.type.module.ts }\n            '2': { name: punctuation.accessor.ts }\n            '3': { name: punctuation.accessor.optional.ts }\n        - name: variable.other.readwrite.ts\n          match: ({{identifier}})\n\n  import-declaration:\n    name: meta.import.ts\n    begin: '{{startOfDeclaration}}\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(]){{endOfIdentifier}}'\n    beginCaptures:\n      '1': { name: keyword.control.export.ts }\n      '2': { name: storage.modifier.ts }\n      '3': { name: keyword.control.import.ts }\n      '4': { name: keyword.control.type.ts }\n    end: (?<!{{lookBehindImport}})(?=;|$|^)\n    patterns:\n    - include: '#single-line-comment-consuming-line-ending'\n    - include: '#comment'\n    - include: '#string'\n    - begin: (?<={{lookBehindImport}})(?!\\s*[\"'])\n      end: \\bfrom\\b\n      endCaptures:\n        '0': { name: keyword.control.from.ts }\n      patterns:\n      - include: '#import-export-declaration'\n    - include: '#import-export-declaration'\n\n  export-declaration:\n    patterns:\n    - match: '{{startOfIdentifier}}(export)\\s+(as)\\s+(namespace)\\s+({{identifier}})'\n      captures:\n        '1': { name: keyword.control.export.ts }\n        '2': { name: keyword.control.as.ts }\n        '3': { name: storage.type.namespace.ts }\n        '4': { name: entity.name.type.module.ts }\n    - name: meta.export.default.ts\n      begin: '{{startOfIdentifier}}(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))'\n      beginCaptures:\n        '1': { name: keyword.control.export.ts }\n        '2': { name: keyword.control.type.ts }\n        '3': { name: keyword.operator.assignment.ts }\n        '4': { name: keyword.control.default.ts }\n      end: (?=$|{{endOfStatement}})\n      patterns:\n      - include: '#interface-declaration'\n      - include: '#expression'\n    - name: meta.export.ts\n      begin: '{{startOfIdentifier}}(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*{{identifier}}(\\s|,))(?!\\s*{{constructsAndModifiers}})))'\n      beginCaptures:\n        '1': { name: keyword.control.export.ts }\n        '2': { name: keyword.control.type.ts }\n      end: (?=$|{{endOfStatement}})\n      patterns:\n      - include: '#import-export-declaration'\n\n  import-export-declaration:\n    patterns:\n    - include: '#comment'\n    - include: '#string'\n    - include: '#import-export-block'\n    - name: keyword.control.from.ts\n      match: \\bfrom\\b\n    - include: '#import-export-assert-clause'\n    - include: '#import-export-clause'\n\n  import-export-assert-clause:\n    begin: '{{startOfIdentifier}}(?:(with)|(assert))\\s*(\\{)'\n    beginCaptures:\n      '1': { name: keyword.control.with.ts }\n      '2': { name: keyword.control.assert.ts }\n      '3': { name: punctuation.definition.block.ts }\n    end: \\}\n    endCaptures:\n      '0': { name: punctuation.definition.block.ts }\n    patterns:\n    - include: '#comment'\n    - include: '#string'\n    - name: meta.object-literal.key.ts\n      match: (?:{{identifier}})\\s*(?=({{inlineComment}}\\s*)*:)\n    - name: punctuation.separator.key-value.ts\n      match: ':'\n\n  import-export-block:\n    name: meta.block.ts\n    begin: \\{\n    beginCaptures:\n      '0': { name: punctuation.definition.block.ts }\n    end: \\}\n    endCaptures:\n      '0': { name: punctuation.definition.block.ts }\n    patterns:\n    - include: '#import-export-clause'\n\n  import-export-clause:\n    patterns:\n    - include: '#comment'\n    #(default|*|name) as alias\n    - match: '{{startOfIdentifier}}(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b{{identifier}})|({{quotedStrings}})))\\s+(as)\\s+(?:(default{{endOfIdentifier}})|({{identifier}})|({{quotedStrings}}))'\n      captures:\n        '1': { name: keyword.control.type.ts }\n        '2': { name: keyword.control.default.ts }\n        '3': { name: constant.language.import-export-all.ts }\n        '4': { name: variable.other.readwrite.ts }\n        '5': { name: string.quoted.alias.ts }\n        '12': { name: keyword.control.as.ts }\n        '13': { name: keyword.control.default.ts }\n        '14': { name: variable.other.readwrite.alias.ts }\n        '15': { name: string.quoted.alias.ts }\n    - include: '#punctuation-comma'\n    - name: constant.language.import-export-all.ts\n      match: \\*\n    - name: keyword.control.default.ts\n      match: \\b(default)\\b\n    - match: '(?:(\\btype)\\s+)?(?:({{identifier}})|({{quotedStrings}}))'\n      captures:\n        '1': { name: keyword.control.type.ts }\n        '2': { name: variable.other.readwrite.alias.ts }\n        '3': { name: string.quoted.alias.ts }\n\n\n  #control statements and loops\n  switch-statement:\n    name: switch-statement.expr.ts\n    begin: '{{startOfIdentifier}}(?=\\bswitch\\s*\\()'\n    end: \\}\n    endCaptures:\n      '0': {name: punctuation.definition.block.ts}\n    patterns:\n    - include: '#comment'\n    - name: switch-expression.expr.ts\n      begin: '{{startOfIdentifier}}(switch)\\s*(\\()'\n      beginCaptures:\n        '1': { name: keyword.control.switch.ts }\n        '2': { name: meta.brace.round.ts }\n      end: \\)\n      endCaptures:\n        '0': { name: meta.brace.round.ts }\n      patterns:\n      - include: '#expression'\n    - name: switch-block.expr.ts\n      begin: \\{\n      beginCaptures:\n        '0': { name: punctuation.definition.block.ts }\n      end: (?=\\})\n      patterns:\n      - name: case-clause.expr.ts\n        begin: '{{startOfIdentifier}}(case|default(?=:)){{endOfIdentifier}}'\n        beginCaptures:\n          '1': { name: keyword.control.switch.ts }\n        end: (?=:)\n        patterns:\n        - include: '#expression'\n      # case block\n      - begin: (:)\\s*(\\{)\n        beginCaptures:\n          '1': { name: case-clause.expr.ts punctuation.definition.section.case-statement.ts }\n          '2': { name: meta.block.ts punctuation.definition.block.ts }\n        end: \\}\n        endCaptures:\n          '0': { name: meta.block.ts punctuation.definition.block.ts }\n        contentName: meta.block.ts\n        patterns:\n        - include: '#statements'\n      - match: (:)\n        captures:\n          '0': { name: case-clause.expr.ts punctuation.definition.section.case-statement.ts }\n      - include: '#statements'\n\n  for-loop:\n    begin: '{{startOfIdentifier}}for(?=((\\s+|(\\s*{{inlineComment}}\\s*))await)?\\s*({{inlineComment}}\\s*)?(\\())'\n    beginCaptures:\n      '0': { name: keyword.control.loop.ts }\n    end: (?<=\\))\n    patterns:\n    - include: '#comment'\n    - name: keyword.control.loop.ts\n      match: await\n    - begin: \\(\n      beginCaptures:\n        '0': { name: meta.brace.round.ts }\n      end: \\)\n      endCaptures:\n        '0': { name: meta.brace.round.ts }\n      patterns:\n      - include: '#var-expr'\n      - include: '#expression'\n      - include: '#punctuation-semicolon'\n\n  # Match if statement without block specially to handle regexp\n  if-statement:\n    patterns:\n    - begin: '{{startOfIdentifier}}(?=\\bif\\s*{{matchingParenthesis}}\\s*(?!\\{))'\n      end: (?=;|$|\\})\n      patterns:\n      - include: '#comment'\n      - begin: '{{startOfIdentifier}}(if)\\s*(\\()'\n        beginCaptures:\n          '1': { name: keyword.control.conditional.ts }\n          '2': { name: meta.brace.round.ts }\n        end: \\)\n        endCaptures:\n          '0': { name: meta.brace.round.ts }\n        patterns:\n        - include: '#expression'\n      - name: string.regexp.ts\n        begin: (?<=\\))\\s*{{completeRegexp}}\n        beginCaptures:\n          '0': { name: punctuation.definition.string.begin.ts }\n        end: (/)([dgimsuvy]*)\n        endCaptures:\n          '1': { name: punctuation.definition.string.end.ts }\n          '2': { name: keyword.other.ts }\n        patterns:\n        - include: '#regexp'\n      - include: '#statements'\n\n  #blocks\n  decl-block:\n    name: meta.block.ts\n    begin: \\{\n    beginCaptures:\n      '0': { name: punctuation.definition.block.ts }\n    end: \\}\n    endCaptures:\n      '0': { name: punctuation.definition.block.ts }\n    patterns:\n    - include: '#statements'\n\n  #object literals\n  after-operator-block-as-object-literal:\n    name: meta.objectliteral.ts\n    begin: (?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|{{lookBehindAwait}}|{{lookBehindReturn}}|{{lookBehindYield}}|{{lookBehindThrow}}|{{lookBehindIn}}|{{lookBehindOf}}|{{lookBehindTypeof}}|&&|\\|\\||\\*)\\s*(\\{)\n    beginCaptures:\n      '1': { name: punctuation.definition.block.ts }\n    end: \\}\n    endCaptures:\n      '0': { name: punctuation.definition.block.ts }\n    patterns:\n    - include: '#object-member'\n\n  object-literal:\n    name: meta.objectliteral.ts\n    begin: \\{\n    beginCaptures:\n      '0': { name: punctuation.definition.block.ts }\n    end: \\}\n    endCaptures:\n      '0': { name: punctuation.definition.block.ts }\n    patterns:\n    - include: '#object-member'\n\n  object-member:\n    patterns:\n    - include: '#comment'\n    - include: '#object-literal-method-declaration'\n    - name: meta.object.member.ts meta.object-literal.key.ts\n      begin: (?=\\[)\n      end: (?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))\n      patterns:\n      - include: '#comment'\n      - include: '#array-literal'\n    - name: meta.object.member.ts meta.object-literal.key.ts\n      begin: (?=[\\'\\\"\\`])\n      end: (?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))\n      patterns:\n      - include: '#comment'\n      - include: '#string'\n    - name: meta.object.member.ts meta.object-literal.key.ts\n      begin: (?x)(?={{anyNumber}})\n      end: (?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))\n      patterns:\n      - include: '#comment'\n      - include: '#numeric-literal'\n    - name: meta.method.declaration.ts\n      begin: (?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])\n      end: (?=\\}|;|,)|(?<=\\})\n      patterns:\n      - include: '#function-body'\n    - name: meta.object.member.ts\n      match: (?![_$[:alpha:]])([[:digit:]]+)\\s*(?=({{inlineComment}}\\s*)*:)\n      captures:\n        '0': { name: meta.object-literal.key.ts }\n        '1': { name: constant.numeric.decimal.ts }\n    - name: meta.object.member.ts\n      match: |-\n        (?x)(?:({{identifier}})\\s*(?=({{inlineComment}}\\s*)*:(\\s*{{inlineComment}})*{{functionOrArrowLookup}}))\n      captures:\n        '0': { name: meta.object-literal.key.ts }\n        '1': { name: entity.name.function.ts }\n    - name: meta.object.member.ts\n      match: (?:{{identifier}})\\s*(?=({{inlineComment}}\\s*)*:)\n      captures:\n        '0': { name: meta.object-literal.key.ts }\n    - name: meta.object.member.ts\n      begin: \\.\\.\\.\n      beginCaptures:\n        '0': { name: keyword.operator.spread.ts }\n      end: (?=,|\\})\n      patterns:\n      - include: '#expression'\n    - name: meta.object.member.ts\n      match: ({{identifier}})\\s*(?=,|\\}|$|\\/\\/|\\/\\*)\n      captures:\n        '1': { name: variable.other.readwrite.ts }\n    - name: meta.object.member.ts\n      match: '{{startOfIdentifier}}(as)\\s+(const)(?=\\s*([,}]|$))'\n      captures:\n        '1': { name: keyword.control.as.ts }\n        '2': { name: storage.modifier.ts }\n    - name: meta.object.member.ts\n      begin: '{{startOfIdentifier}}(?:(as)|(satisfies))\\s+'\n      beginCaptures:\n        '1': { name: keyword.control.as.ts }\n        '2': { name: keyword.control.satisfies.ts }\n      end: (?={{lookAheadEndOfType}}|^|({{startOfIdentifier}}(as|satisifies)\\s+))\n      patterns:\n      - include: '#type'\n    - name: meta.object.member.ts\n      begin: (?={{identifier}}\\s*=)\n      end: (?=,|\\}|$|\\/\\/|\\/\\*)\n      patterns:\n      - include: '#expression'\n    # object member body:\n    - name:  meta.object.member.ts\n      begin: ':'\n      beginCaptures:\n        '0': { name: meta.object-literal.key.ts punctuation.separator.key-value.ts }\n      end: (?=,|\\})\n      patterns:\n      - begin: '{{lookBehindOfObjectMemberPossiblyMultilineArrow}}\\s*(async)?(?=\\s*{{typeParameters}}\\(\\s*{{possiblyMultilineArrowWParamters}})'\n        beginCaptures:\n          '1': { name: storage.modifier.async.ts }\n        end: (?<=\\))\n        patterns:\n        - include: '#type-parameters'\n        - begin: \\(\n          beginCaptures:\n            '0': { name: meta.brace.round.ts }\n          end: \\)\n          endCaptures:\n            '0': { name: meta.brace.round.ts }\n          patterns:\n          - include: '#expression-inside-possibly-arrow-parens'\n      - begin: '{{lookBehindOfObjectMemberPossiblyMultilineArrow}}\\s*(async)?\\s*(\\()(?=\\s*{{possiblyMultilineArrowWParamters}})'\n        beginCaptures:\n          '1': { name: storage.modifier.async.ts }\n          '2': { name: meta.brace.round.ts }\n        end: \\)\n        endCaptures:\n          '0': { name: meta.brace.round.ts }\n        patterns:\n        - include: '#expression-inside-possibly-arrow-parens'\n      - begin: '{{lookBehindOfObjectMemberPossiblyMultilineArrow}}\\s*(async)?\\s*(?=\\<\\s*$)'\n        beginCaptures:\n          '1': { name: storage.modifier.async.ts }\n        end: (?<=\\>)\n        patterns:\n        - include: '#type-parameters'\n      - begin: '(?<=\\>)\\s*(\\()(?=\\s*{{possiblyMultilineArrowWParamters}})'\n        beginCaptures:\n          '1': { name: meta.brace.round.ts }\n        end: \\)\n        endCaptures:\n          '0': { name: meta.brace.round.ts }\n        patterns:\n        - include: '#expression-inside-possibly-arrow-parens'\n      - include: '#possibly-arrow-return-type'\n      - include: '#expression'\n    - include: '#punctuation-comma'\n    - include: '#decl-block'\n\n  #ternary expression\n  ternary-expression:\n    begin: (?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)\n    beginCaptures:\n      '1': { name: keyword.operator.ternary.ts }\n    end: \\s*(:)\n    endCaptures:\n      '1': { name: keyword.operator.ternary.ts }\n    patterns:\n    - include: '#expression'\n\n  #function call and new expression\n  function-call:\n    patterns:\n    - begin: (?={{functionCallTarget}}{{functionCallLookup}})\n      end: (?<=\\))(?!{{functionCallTarget}}{{functionCallLookup}})\n      patterns:\n      - name: meta.function-call.ts\n        begin: (?={{functionCallNamedTarget}})\n        end: (?={{functionCallLookup}})\n        patterns:\n        - include: '#function-call-target'\n      - include: '#comment'\n      - include: '#function-call-optionals'\n      - include: '#type-arguments'\n      - include: '#paren-expression'\n    - begin: (?={{functionCallTarget}}{{possiblyMultilineTypeArgument}})\n      end: (?<=\\>)(?!{{functionCallTarget}}{{possiblyMultilineTypeArgument}})\n      patterns:\n      - name: meta.function-call.ts\n        begin: (?={{functionCallNamedTarget}})\n        end: (?={{possiblyMultilineTypeArgument}})\n        patterns:\n        - include: '#function-call-target'\n      - include: '#comment'\n      - include: '#function-call-optionals'\n      - include: '#type-arguments'\n\n  function-call-target:\n    patterns:\n    - include: '#support-function-call-identifiers'\n    - name: entity.name.function.ts\n      match: ({{propertyIdentifier}})\n\n  function-call-optionals:\n    patterns:\n    - name: meta.function-call.ts punctuation.accessor.optional.ts\n      match: \\?\\.\n    - name: meta.function-call.ts keyword.operator.definiteassignment.ts\n      match: \\!\n\n  support-function-call-identifiers:\n    patterns:\n    - include: '#literal'\n    - include: '#support-objects'\n    - include: '#object-identifiers'\n    - include: '#punctuation-accessor'\n    - name: keyword.operator.expression.import.ts\n      match: (?:{{startOfIdentifier}}import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))\n\n  new-expr:\n    name: new.expr.ts\n    begin: '{{startOfIdentifier}}(new){{endOfIdentifier}}'\n    beginCaptures:\n      '1': { name: keyword.operator.new.ts }\n    end: (?<=\\))|(?={{lookAheadEndOfType}}|({{startOfIdentifier}}new{{endOfIdentifier}})|({{startOfIdentifier}}function((\\s+{{identifier}})|(\\s*[\\(]))))\n    patterns:\n    - include: '#expression'\n\n  instanceof-expr:\n    begin: '{{startOfIdentifier}}(instanceof){{endOfIdentifier}}'\n    beginCaptures:\n      '1': { name: keyword.operator.expression.instanceof.ts }\n    end: (?<=\\))|(?={{lookAheadEndOfType}}|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?{{identifier}}\\s+instanceof{{endOfIdentifier}})|({{startOfIdentifier}}function((\\s+{{identifier}})|(\\s*[\\(]))))\n    patterns:\n    - include: '#type'\n\n  # when ( is followed by end of line, it could be arrow parameter decarations, so inside this match as if parameter falling back to expression\n  # but do this only from expression and as last resort\n  paren-expression-possibly-arrow:\n    patterns:\n    - begin: '{{lookBehindOfPossiblyMultilineArrowWithDestructuring}}\\s*(async)?(?=\\s*({{typeParameters}})?\\(\\s*{{possiblyMultilineArrowWParamters}})'\n      beginCaptures:\n        '1': { name: storage.modifier.async.ts }\n      end: (?<=\\))\n      patterns:\n      - include: '#paren-expression-possibly-arrow-with-typeparameters'\n    - begin: '{{lookBehindOfPossiblyMultilineArrow}}\\s*(async)?(?=\\s*{{possiblyMultilineArrowExpressionBeforeEndOfLine}}\\s*$)'\n      beginCaptures:\n        '1': { name: storage.modifier.async.ts }\n      end: (?<=\\))\n      patterns:\n      - include: '#paren-expression-possibly-arrow-with-typeparameters'\n    - include: '#possibly-arrow-return-type'\n\n  paren-expression-possibly-arrow-with-typeparameters:\n    patterns:\n    - include: '#type-parameters'\n    - begin: \\(\n      beginCaptures:\n        '0': { name: meta.brace.round.ts }\n      end: \\)\n      endCaptures:\n        '0': { name: meta.brace.round.ts }\n      patterns:\n      - include: '#expression-inside-possibly-arrow-parens'\n\n  expression-inside-possibly-arrow-parens:\n    patterns:\n    - include: '#expressionWithoutIdentifiers'\n    - include: '#comment'\n    - include: '#string'\n    - include: '#decorator'\n    - include: '#destructuring-parameter'\n    - match: '{{startOfIdentifier}}(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)'\n      captures:\n        '1': { name: storage.modifier.ts }\n    - match: |-\n        (?x)(?:{{startOfIdentifier}}(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:){{startOfIdentifier}}(?:(this)|({{identifier}})){{endOfIdentifier}}\\s*(\\??)(?={{functionLikeAssignmentOrType}})\n      captures:\n        '1': { name: storage.modifier.ts }\n        '2': { name: keyword.operator.rest.ts }\n        '3': { name: entity.name.function.ts variable.language.this.ts }\n        '4': { name: entity.name.function.ts }\n        '5': { name: keyword.operator.optional.ts }\n    - match: |-\n        (?x)(?:{{startOfIdentifier}}(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:){{startOfIdentifier}}(?:(this)|({{identifier}})){{endOfIdentifier}}\\s*(\\??)(?=\\s*[:,]|$)\n      captures:\n        '1': { name: storage.modifier.ts }\n        '2': { name: keyword.operator.rest.ts }\n        '3': { name: variable.parameter.ts variable.language.this.ts }\n        '4': { name: variable.parameter.ts }\n        '5': { name: keyword.operator.optional.ts }\n    - include: '#type-annotation'\n    - include: '#variable-initializer'\n    - name: punctuation.separator.parameter.ts\n      match: ','\n    - include: '#identifiers'\n    - include: '#expressionPunctuations'\n\n  paren-expression:\n    begin: \\(\n    beginCaptures:\n      '0': {name: meta.brace.round.ts }\n    end: \\)\n    endCaptures:\n      '0': {name: meta.brace.round.ts }\n    patterns:\n    - include: '#expression'\n\n  #cast expression\n  cast:\n    patterns:\n    - name: cast.expr.ts\n      match: \\s*(<)\\s*(const)\\s*(>)\n      captures:\n        '1':  { name: meta.brace.angle.ts }\n        '2':  { name: storage.modifier.ts }\n        '3':  { name: meta.brace.angle.ts }\n    - name: cast.expr.ts\n      # We need to differentiate between the relational '<' operator and the beginning of a type assertion/cast using the surrounding context.\n      # If '<' is preceeded by 'return', 'throw', 'yield', or 'await', it's most likely a type assertion\n      # If '=', '(', ',', ':', or '>' are followed by a '<', it is also likely a type assertion as otherwise it would be a syntax error\n      # '<=' and '<<=' are cannot be type assertions, as they are assignment operators.\n      begin: (?:(?<!\\+\\+|--)(?<={{lookBehindReturn}}|{{lookBehindThrow}}|{{lookBehindYield}}|{{lookBehindAwait}}|{{lookBehindDefault}}|[=(,:>*?\\&\\|\\^]|[^_$[:alnum:]](?:\\+\\+|\\-\\-)|[^\\+]\\+|[^\\-]\\-))\\s*(<)(?!<?\\=)(?!\\s*$)\n      beginCaptures:\n        '1': { name: meta.brace.angle.ts }\n      end: (\\>)\n      endCaptures:\n        '1': { name: meta.brace.angle.ts }\n      patterns:\n      - include: '#type'\n    - name: cast.expr.ts\n      # Specialize the pattern that is allowed at the beginning of the new line to treat as cast\n      # < appears on new line allow only <Identifier> as type assertion\n      # This allows treating '<' on new line as relation operator in other cases.\n      # People writing one operator on new line and second one on same line should be rare to allow this.\n      begin: (?:(?<=^))\\s*(<)(?={{identifier}}\\s*>)\n      beginCaptures:\n        '1': { name: meta.brace.angle.ts }\n      end: (\\>)\n      endCaptures:\n        '1': { name: meta.brace.angle.ts }\n      patterns:\n      - include: '#type'\n\n  #expression operators\n  expression-operators:\n    patterns:\n    - name: keyword.control.flow.ts\n      match: '{{startOfIdentifier}}(await){{endOfIdentifier}}'\n    - begin: '{{startOfIdentifier}}(yield){{endOfIdentifier}}(?=\\s*{{inlineComment}}\\s*\\*)'\n      beginCaptures:\n        '1': { name: keyword.control.flow.ts }\n      end: \\*\n      endCaptures:\n        '0': { name: keyword.generator.asterisk.ts }\n      patterns:\n      - include: '#comment'\n    - match: '{{startOfIdentifier}}(yield){{endOfIdentifier}}(?:\\s*(\\*))?'\n      captures:\n        '1': { name: keyword.control.flow.ts }\n        '2': { name: keyword.generator.asterisk.ts }\n    - name: keyword.operator.expression.delete.ts\n      match: '{{startOfIdentifier}}delete{{endOfIdentifier}}'\n    - name: keyword.operator.expression.in.ts\n      match: '{{startOfIdentifier}}in{{endOfIdentifier}}(?!\\()'\n    - name: keyword.operator.expression.of.ts\n      match: '{{startOfIdentifier}}of{{endOfIdentifier}}(?!\\()'\n    - name: keyword.operator.expression.instanceof.ts\n      match: '{{startOfIdentifier}}instanceof{{endOfIdentifier}}'\n    - name: keyword.operator.new.ts\n      match: '{{startOfIdentifier}}new{{endOfIdentifier}}'\n    - include: '#typeof-operator'\n    - name: keyword.operator.expression.void.ts\n      match: '{{startOfIdentifier}}void{{endOfIdentifier}}'\n      #handle as operator specifically to be recognized only if it is 'as' followed by space\n    - match: '{{startOfIdentifier}}(as)\\s+(const)(?=\\s*($|[;,:})\\]]))'\n      captures:\n        '1': { name: keyword.control.as.ts }\n        '2': { name: storage.modifier.ts }\n    - begin: '{{startOfIdentifier}}(?:(as)|(satisfies))\\s+'\n      beginCaptures:\n        '1': { name: keyword.control.as.ts }\n        '2': { name: keyword.control.satisfies.ts }\n      end: (?=^|{{lookAheadEndOfType}}|({{startOfIdentifier}}(as|satisfies)\\s+)|(\\s+\\<))\n      patterns:\n      - include: '#type'\n    - name: keyword.operator.spread.ts\n      match: \\.\\.\\.\n    - name: keyword.operator.assignment.compound.ts\n      match: \\*=|(?<!\\()/=|%=|\\+=|\\-=\n    - name: keyword.operator.assignment.compound.bitwise.ts\n      match: \\&=|\\^=|<<=|>>=|>>>=|\\|=\n    - name: keyword.operator.bitwise.shift.ts\n      match: <<|>>>|>>\n    - name: keyword.operator.comparison.ts\n      match: ===|!==|==|!=\n    - name: keyword.operator.relational.ts\n      match: <=|>=|<>|<|>\n    - match: (?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))\n      captures:\n        '1': { name: keyword.operator.logical.ts }\n        '2': { name: keyword.operator.assignment.compound.ts }\n        '3': { name: keyword.operator.arithmetic.ts }\n    - name: keyword.operator.logical.ts\n      match: \\!|&&|\\|\\||\\?\\?\n    - name: keyword.operator.bitwise.ts\n      match: \\&|~|\\^|\\|\n    - name: keyword.operator.assignment.ts\n      match: \\=\n    - name: keyword.operator.decrement.ts\n      match: --\n    - name: keyword.operator.increment.ts\n      match: \\+\\+\n    - name: keyword.operator.arithmetic.ts\n      match: '%|\\*|/|-|\\+'\n    # capture the arithmetic sign followed by variable or parenthesized expression so that it is not interpreted as regex\n    - begin: (?<=[_$[:alnum:])\\]])\\s*(?=({{inlineComment}}\\s*)+(?:(/=)|(?:(/)(?![/*]))))\n      end: (?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))\n      endCaptures:\n        '1': { name: keyword.operator.assignment.compound.ts }\n        '2': { name: keyword.operator.arithmetic.ts }\n      patterns:\n      - include: '#comment'\n    - match: (?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))\n      captures:\n        '1': { name: keyword.operator.assignment.compound.ts }\n        '2': { name: keyword.operator.arithmetic.ts }\n\n  typeof-operator:\n    begin: '{{startOfIdentifier}}typeof{{endOfIdentifier}}'\n    beginCaptures:\n      '0': { name: keyword.operator.expression.typeof.ts }\n    end: (?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|{{endOfStatement}})\n    patterns:\n    - include: '#type-arguments'\n    - include: '#expression'\n\n  #literals\n  literal:\n    patterns:\n    - include: '#numeric-literal'\n    - include: '#boolean-literal'\n    - include: '#null-literal'\n    - include: '#undefined-literal'\n    - include: '#numericConstant-literal'\n    - include: '#array-literal'\n    - include: '#this-literal'\n    - include: '#super-literal'\n\n  array-literal:\n    name: meta.array.literal.ts\n    begin: \\s*(\\[)\n    beginCaptures:\n      '1': { name: meta.brace.square.ts }\n    end: \\]\n    endCaptures:\n      '0': { name: meta.brace.square.ts }\n    patterns:\n    - include: '#expression'\n    - include: '#punctuation-comma'\n\n  # With respect to seperators, we allow mroe than is syntacically valid below\n  # (multiple consecutive and trailing ones are errors), to be more graceful\n  # when the code contains errors\n  numeric-literal:\n    patterns:\n    - name: constant.numeric.hex.ts\n      match: '{{hexNumber}}'\n      captures:\n        '1': { name: storage.type.numeric.bigint.ts }\n    - name: constant.numeric.binary.ts\n      match: '{{binaryNumber}}'\n      captures:\n        '1': { name: storage.type.numeric.bigint.ts }\n    - name: constant.numeric.octal.ts\n      match: '{{octalNumber}}'\n      captures:\n        '1': { name: storage.type.numeric.bigint.ts }\n    - match: |-\n        (?x)\n        {{decimalNumber}}\n      captures:\n        '0': {name: constant.numeric.decimal.ts}\n        '1': {name: meta.delimiter.decimal.period.ts}\n        '2': { name: storage.type.numeric.bigint.ts }\n        '3': {name: meta.delimiter.decimal.period.ts}\n        '4': { name: storage.type.numeric.bigint.ts }\n        '5': {name: meta.delimiter.decimal.period.ts}\n        '6': { name: storage.type.numeric.bigint.ts }\n        '7': { name: storage.type.numeric.bigint.ts }\n        '8': {name: meta.delimiter.decimal.period.ts}\n        '9': { name: storage.type.numeric.bigint.ts }\n        '10': {name: meta.delimiter.decimal.period.ts}\n        '11': { name: storage.type.numeric.bigint.ts }\n        '12': {name: meta.delimiter.decimal.period.ts}\n        '13': { name: storage.type.numeric.bigint.ts }\n        '14': { name: storage.type.numeric.bigint.ts }\n\n  boolean-literal:\n    patterns:\n    - name: constant.language.boolean.true.ts\n      match: '{{startOfIdentifier}}true{{endOfIdentifier}}'\n    - name: constant.language.boolean.false.ts\n      match: '{{startOfIdentifier}}false{{endOfIdentifier}}'\n\n  null-literal:\n    name: constant.language.null.ts\n    match: '{{startOfIdentifier}}null{{endOfIdentifier}}'\n\n  this-literal:\n    name: variable.language.this.ts\n    match: '{{startOfIdentifier}}this\\b(?!\\$)'\n\n  super-literal:\n    name: variable.language.super.ts\n    match: '{{startOfIdentifier}}super\\b(?!\\$)'\n\n  undefined-literal:\n    name: constant.language.undefined.ts\n    match: '{{startOfIdentifier}}undefined{{endOfIdentifier}}'\n\n  numericConstant-literal:\n    patterns:\n    - name: constant.language.nan.ts\n      match: '{{startOfIdentifier}}NaN{{endOfIdentifier}}'\n    - name: constant.language.infinity.ts\n      match: '{{startOfIdentifier}}Infinity{{endOfIdentifier}}'\n\n  #identifiers, support variables\n  support-objects:\n    patterns:\n    - name: variable.language.arguments.ts\n      match: '{{startOfIdentifier}}(arguments)\\b(?!\\$)'\n    # builtins\n    - name: support.class.builtin.ts\n      match: |-\n        (?x){{startOfIdentifier}}(Array|ArrayBuffer|Atomics|BigInt|BigInt64Array|BigUint64Array|Boolean|DataView|Date|Float32Array\n          |Float64Array|Function|Generator|GeneratorFunction|Int8Array|Int16Array|Int32Array|Intl|Map|Number|Object|Proxy\n          |Reflect|RegExp|Set|SharedArrayBuffer|SIMD|String|Symbol|TypedArray\n          |Uint8Array|Uint16Array|Uint32Array|Uint8ClampedArray|WeakMap|WeakSet)\\b(?!\\$)\n    - name: support.class.error.ts\n      match: '{{startOfIdentifier}}((Eval|Internal|Range|Reference|Syntax|Type|URI)?Error)\\b(?!\\$)'\n    - name: support.class.promise.ts\n      match: '{{startOfIdentifier}}(Promise)\\b(?!\\$)'\n    # known builtin function calls\n    - name: support.function.ts\n      match: |-\n        (?x){{startOfIdentifier}}(clear(Interval|Timeout)|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|eval|\n          isFinite|isNaN|parseFloat|parseInt|require|set(Interval|Timeout)|super|unescape|uneval)(?=\\s*\\()\n    # Math\n    - match: |-\n        (?x){{startOfIdentifier}}(Math)(?:\\s*{{propertyAccess}}\\s*(?:\n          (abs|acos|acosh|asin|asinh|atan|atan2|atanh|cbrt|ceil|clz32|cos|cosh|exp|\n          expm1|floor|fround|hypot|imul|log|log10|log1p|log2|max|min|pow|random|\n          round|sign|sin|sinh|sqrt|tan|tanh|trunc)\n          |\n          (E|LN10|LN2|LOG10E|LOG2E|PI|SQRT1_2|SQRT2)))?\\b(?!\\$)\n      captures:\n        '1': { name: support.constant.math.ts }\n        '2': { name: punctuation.accessor.ts }\n        '3': { name: punctuation.accessor.optional.ts }\n        '4': { name: support.function.math.ts }\n        '5': { name: support.constant.property.math.ts }\n    # console\n    - match: |-\n        (?x){{startOfIdentifier}}(console)(?:\\s*{{propertyAccess}}\\s*(\n          assert|clear|count|debug|dir|error|group|groupCollapsed|groupEnd|info|log\n          |profile|profileEnd|table|time|timeEnd|timeStamp|trace|warn))?\\b(?!\\$)\n      captures:\n        '1': { name: support.class.console.ts }\n        '2': { name: punctuation.accessor.ts }\n        '3': { name: punctuation.accessor.optional.ts }\n        '4': { name: support.function.console.ts }\n    # JSON\n    - match: '{{startOfIdentifier}}(JSON)(?:\\s*{{propertyAccess}}\\s*(parse|stringify))?\\b(?!\\$)'\n      captures:\n        '1': { name: support.constant.json.ts }\n        '2': { name: punctuation.accessor.ts }\n        '3': { name: punctuation.accessor.optional.ts }\n        '4': { name: support.function.json.ts }\n    # import meta\n    - match: '{{startOfIdentifier}}(import)\\s*{{propertyAccess}}\\s*(meta)\\b(?!\\$)'\n      captures:\n        '1': { name: keyword.control.import.ts }\n        '2': { name: punctuation.accessor.ts }\n        '3': { name: punctuation.accessor.optional.ts }\n        '4': { name: support.variable.property.importmeta.ts }\n    # new target\n    - match: '{{startOfIdentifier}}(new)\\s*{{propertyAccess}}\\s*(target)\\b(?!\\$)'\n      captures:\n        '1': { name: keyword.operator.new.ts }\n        '2': { name: punctuation.accessor.ts }\n        '3': { name: punctuation.accessor.optional.ts }\n        '4': { name: support.variable.property.target.ts }\n    # DOM\n    - match: |-\n        (?x) {{propertyAccess}} \\s* (?:\n          (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*{{typeParameters}}?\\())\n          |\n          (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))\n      captures:\n        '1': { name: punctuation.accessor.ts }\n        '2': { name: punctuation.accessor.optional.ts }\n        '3': { name: support.variable.property.ts }\n        '4': { name: support.constant.ts }\n    - match: |-\n        (?x) {{startOfIdentifier}} \\b (?:\n          (document|event|navigator|performance|screen|window)\n          |\n          (AnalyserNode|ArrayBufferView|Attr|AudioBuffer|AudioBufferSourceNode|AudioContext|AudioDestinationNode|AudioListener\n          |AudioNode|AudioParam|BatteryManager|BeforeUnloadEvent|BiquadFilterNode|Blob|BufferSource|ByteString|CSS|CSSConditionRule\n          |CSSCounterStyleRule|CSSGroupingRule|CSSMatrix|CSSMediaRule|CSSPageRule|CSSPrimitiveValue|CSSRule|CSSRuleList|CSSStyleDeclaration\n          |CSSStyleRule|CSSStyleSheet|CSSSupportsRule|CSSValue|CSSValueList|CanvasGradient|CanvasImageSource|CanvasPattern\n          |CanvasRenderingContext2D|ChannelMergerNode|ChannelSplitterNode|CharacterData|ChromeWorker|CloseEvent|Comment|CompositionEvent\n          |Console|ConvolverNode|Coordinates|Credential|CredentialsContainer|Crypto|CryptoKey|CustomEvent|DOMError|DOMException\n          |DOMHighResTimeStamp|DOMImplementation|DOMString|DOMStringList|DOMStringMap|DOMTimeStamp|DOMTokenList|DataTransfer\n          |DataTransferItem|DataTransferItemList|DedicatedWorkerGlobalScope|DelayNode|DeviceProximityEvent|DirectoryEntry\n          |DirectoryEntrySync|DirectoryReader|DirectoryReaderSync|Document|DocumentFragment|DocumentTouch|DocumentType|DragEvent\n          |DynamicsCompressorNode|Element|Entry|EntrySync|ErrorEvent|Event|EventListener|EventSource|EventTarget|FederatedCredential\n          |FetchEvent|File|FileEntry|FileEntrySync|FileException|FileList|FileReader|FileReaderSync|FileSystem|FileSystemSync\n          |FontFace|FormData|GainNode|Gamepad|GamepadButton|GamepadEvent|Geolocation|GlobalEventHandlers|HTMLAnchorElement\n          |HTMLAreaElement|HTMLAudioElement|HTMLBRElement|HTMLBaseElement|HTMLBodyElement|HTMLButtonElement|HTMLCanvasElement\n          |HTMLCollection|HTMLContentElement|HTMLDListElement|HTMLDataElement|HTMLDataListElement|HTMLDialogElement|HTMLDivElement\n          |HTMLDocument|HTMLElement|HTMLEmbedElement|HTMLFieldSetElement|HTMLFontElement|HTMLFormControlsCollection|HTMLFormElement\n          |HTMLHRElement|HTMLHeadElement|HTMLHeadingElement|HTMLHtmlElement|HTMLIFrameElement|HTMLImageElement|HTMLInputElement\n          |HTMLKeygenElement|HTMLLIElement|HTMLLabelElement|HTMLLegendElement|HTMLLinkElement|HTMLMapElement|HTMLMediaElement\n          |HTMLMetaElement|HTMLMeterElement|HTMLModElement|HTMLOListElement|HTMLObjectElement|HTMLOptGroupElement|HTMLOptionElement\n          |HTMLOptionsCollection|HTMLOutputElement|HTMLParagraphElement|HTMLParamElement|HTMLPreElement|HTMLProgressElement\n          |HTMLQuoteElement|HTMLScriptElement|HTMLSelectElement|HTMLShadowElement|HTMLSourceElement|HTMLSpanElement|HTMLStyleElement\n          |HTMLTableCaptionElement|HTMLTableCellElement|HTMLTableColElement|HTMLTableDataCellElement|HTMLTableElement|HTMLTableHeaderCellElement\n          |HTMLTableRowElement|HTMLTableSectionElement|HTMLTextAreaElement|HTMLTimeElement|HTMLTitleElement|HTMLTrackElement\n          |HTMLUListElement|HTMLUnknownElement|HTMLVideoElement|HashChangeEvent|History|IDBCursor|IDBCursorWithValue|IDBDatabase\n          |IDBEnvironment|IDBFactory|IDBIndex|IDBKeyRange|IDBMutableFile|IDBObjectStore|IDBOpenDBRequest|IDBRequest|IDBTransaction\n          |IDBVersionChangeEvent|IIRFilterNode|IdentityManager|ImageBitmap|ImageBitmapFactories|ImageData|Index|InputDeviceCapabilities\n          |InputEvent|InstallEvent|InstallTrigger|KeyboardEvent|LinkStyle|LocalFileSystem|LocalFileSystemSync|Location|MIDIAccess\n          |MIDIConnectionEvent|MIDIInput|MIDIInputMap|MIDIOutputMap|MediaElementAudioSourceNode|MediaError|MediaKeyMessageEvent\n          |MediaKeySession|MediaKeyStatusMap|MediaKeySystemAccess|MediaKeySystemConfiguration|MediaKeys|MediaRecorder|MediaStream\n          |MediaStreamAudioDestinationNode|MediaStreamAudioSourceNode|MessageChannel|MessageEvent|MessagePort|MouseEvent\n          |MutationObserver|MutationRecord|NamedNodeMap|Navigator|NavigatorConcurrentHardware|NavigatorGeolocation|NavigatorID\n          |NavigatorLanguage|NavigatorOnLine|Node|NodeFilter|NodeIterator|NodeList|NonDocumentTypeChildNode|Notification\n          |OfflineAudioCompletionEvent|OfflineAudioContext|OscillatorNode|PageTransitionEvent|PannerNode|ParentNode|PasswordCredential\n          |Path2D|PaymentAddress|PaymentRequest|PaymentResponse|Performance|PerformanceEntry|PerformanceFrameTiming|PerformanceMark\n          |PerformanceMeasure|PerformanceNavigation|PerformanceNavigationTiming|PerformanceObserver|PerformanceObserverEntryList\n          |PerformanceResourceTiming|PerformanceTiming|PeriodicSyncEvent|PeriodicWave|Plugin|Point|PointerEvent|PopStateEvent\n          |PortCollection|Position|PositionError|PositionOptions|PresentationConnectionClosedEvent|PresentationConnectionList\n          |PresentationReceiver|ProcessingInstruction|ProgressEvent|PromiseRejectionEvent|PushEvent|PushRegistrationManager\n          |RTCCertificate|RTCConfiguration|RTCPeerConnection|RTCSessionDescriptionCallback|RTCStatsReport|RadioNodeList|RandomSource\n          |Range|ReadableByteStream|RenderingContext|SVGAElement|SVGAngle|SVGAnimateColorElement|SVGAnimateElement|SVGAnimateMotionElement\n          |SVGAnimateTransformElement|SVGAnimatedAngle|SVGAnimatedBoolean|SVGAnimatedEnumeration|SVGAnimatedInteger|SVGAnimatedLength\n          |SVGAnimatedLengthList|SVGAnimatedNumber|SVGAnimatedNumberList|SVGAnimatedPoints|SVGAnimatedPreserveAspectRatio\n          |SVGAnimatedRect|SVGAnimatedString|SVGAnimatedTransformList|SVGAnimationElement|SVGCircleElement|SVGClipPathElement\n          |SVGCursorElement|SVGDefsElement|SVGDescElement|SVGElement|SVGEllipseElement|SVGEvent|SVGFilterElement|SVGFontElement\n          |SVGFontFaceElement|SVGFontFaceFormatElement|SVGFontFaceNameElement|SVGFontFaceSrcElement|SVGFontFaceUriElement\n          |SVGForeignObjectElement|SVGGElement|SVGGlyphElement|SVGGradientElement|SVGHKernElement|SVGImageElement|SVGLength\n          |SVGLengthList|SVGLineElement|SVGLinearGradientElement|SVGMPathElement|SVGMaskElement|SVGMatrix|SVGMissingGlyphElement\n          |SVGNumber|SVGNumberList|SVGPathElement|SVGPatternElement|SVGPoint|SVGPolygonElement|SVGPolylineElement|SVGPreserveAspectRatio\n          |SVGRadialGradientElement|SVGRect|SVGRectElement|SVGSVGElement|SVGScriptElement|SVGSetElement|SVGStopElement|SVGStringList\n          |SVGStylable|SVGStyleElement|SVGSwitchElement|SVGSymbolElement|SVGTRefElement|SVGTSpanElement|SVGTests|SVGTextElement\n          |SVGTextPositioningElement|SVGTitleElement|SVGTransform|SVGTransformList|SVGTransformable|SVGUseElement|SVGVKernElement\n          |SVGViewElement|ServiceWorker|ServiceWorkerContainer|ServiceWorkerGlobalScope|ServiceWorkerRegistration|ServiceWorkerState\n          |ShadowRoot|SharedWorker|SharedWorkerGlobalScope|SourceBufferList|StereoPannerNode|Storage|StorageEvent|StyleSheet\n          |StyleSheetList|SubtleCrypto|SyncEvent|Text|TextMetrics|TimeEvent|TimeRanges|Touch|TouchEvent|TouchList|Transferable\n          |TreeWalker|UIEvent|USVString|VRDisplayCapabilities|ValidityState|WaveShaperNode|WebGL|WebGLActiveInfo|WebGLBuffer\n          |WebGLContextEvent|WebGLFramebuffer|WebGLProgram|WebGLRenderbuffer|WebGLRenderingContext|WebGLShader|WebGLShaderPrecisionFormat\n          |WebGLTexture|WebGLTimerQueryEXT|WebGLTransformFeedback|WebGLUniformLocation|WebGLVertexArrayObject|WebGLVertexArrayObjectOES\n          |WebSocket|WebSockets|WebVTT|WheelEvent|Window|WindowBase64|WindowEventHandlers|WindowTimers|Worker|WorkerGlobalScope\n          |WorkerLocation|WorkerNavigator|XMLHttpRequest|XMLHttpRequestEventTarget|XMLSerializer|XPathExpression|XPathResult\n          |XSLTProcessor))\\b(?!\\$)\n      captures:\n        '1': { name: support.variable.dom.ts }\n        '2': { name: support.class.dom.ts }\n    - match: |-\n        (?x) {{propertyAccess}} \\s* (?:\n          (ATTRIBUTE_NODE|CDATA_SECTION_NODE|COMMENT_NODE|DOCUMENT_FRAGMENT_NODE|DOCUMENT_NODE|DOCUMENT_TYPE_NODE\n          |DOMSTRING_SIZE_ERR|ELEMENT_NODE|ENTITY_NODE|ENTITY_REFERENCE_NODE|HIERARCHY_REQUEST_ERR|INDEX_SIZE_ERR\n          |INUSE_ATTRIBUTE_ERR|INVALID_CHARACTER_ERR|NO_DATA_ALLOWED_ERR|NO_MODIFICATION_ALLOWED_ERR|NOT_FOUND_ERR\n          |NOT_SUPPORTED_ERR|NOTATION_NODE|PROCESSING_INSTRUCTION_NODE|TEXT_NODE|WRONG_DOCUMENT_ERR)\n          |\n          (_content|[xyz]|abbr|above|accept|acceptCharset|accessKey|action|align|[av]Link(?:color)?|all|alt|anchors|appCodeName\n          |appCore|applets|appMinorVersion|appName|appVersion|archive|areas|arguments|attributes|availHeight|availLeft|availTop\n          |availWidth|axis|background|backgroundColor|backgroundImage|below|bgColor|body|border|borderBottomWidth|borderColor\n          |borderLeftWidth|borderRightWidth|borderStyle|borderTopWidth|borderWidth|bottom|bufferDepth|callee|caller|caption\n          |cellPadding|cells|cellSpacing|ch|characterSet|charset|checked|childNodes|chOff|cite|classes|className|clear\n          |clientInformation|clip|clipBoardData|closed|code|codeBase|codeType|color|colorDepth|cols|colSpan|compact|complete\n          |components|content|controllers|cookie|cookieEnabled|cords|cpuClass|crypto|current|data|dateTime|declare|defaultCharset\n          |defaultChecked|defaultSelected|defaultStatus|defaultValue|defaultView|defer|description|dialogArguments|dialogHeight\n          |dialogLeft|dialogTop|dialogWidth|dir|directories|disabled|display|docmain|doctype|documentElement|elements|embeds\n          |enabledPlugin|encoding|enctype|entities|event|expando|external|face|fgColor|filename|firstChild|fontFamily|fontSize\n          |fontWeight|form|formName|forms|frame|frameBorder|frameElement|frames|hasFocus|hash|headers|height|history|host\n          |hostname|href|hreflang|hspace|htmlFor|httpEquiv|id|ids|ignoreCase|images|implementation|index|innerHeight|innerWidth\n          |input|isMap|label|lang|language|lastChild|lastIndex|lastMatch|lastModified|lastParen|layer[sXY]|left|leftContext\n          |lineHeight|link|linkColor|links|listStyleType|localName|location|locationbar|longDesc|lowsrc|lowSrc|marginBottom\n          |marginHeight|marginLeft|marginRight|marginTop|marginWidth|maxLength|media|menubar|method|mimeTypes|multiline|multiple\n          |name|nameProp|namespaces|namespaceURI|next|nextSibling|nodeName|nodeType|nodeValue|noHref|noResize|noShade|notationName\n          |notations|noWrap|object|offscreenBuffering|onLine|onreadystatechange|opener|opsProfile|options|oscpu|outerHeight\n          |outerWidth|ownerDocument|paddingBottom|paddingLeft|paddingRight|paddingTop|page[XY]|page[XY]Offset|parent|parentLayer\n          |parentNode|parentWindow|pathname|personalbar|pixelDepth|pkcs11|platform|plugins|port|prefix|previous|previousDibling\n          |product|productSub|profile|profileend|prompt|prompter|protocol|publicId|readOnly|readyState|referrer|rel|responseText\n          |responseXML|rev|right|rightContext|rowIndex|rows|rowSpan|rules|scheme|scope|screen[XY]|screenLeft|screenTop|scripts\n          |scrollbars|scrolling|sectionRowIndex|security|securityPolicy|selected|selectedIndex|selection|self|shape|siblingAbove\n          |siblingBelow|size|source|specified|standby|start|status|statusbar|statusText|style|styleSheets|suffixes|summary\n          |systemId|systemLanguage|tagName|tags|target|tBodies|text|textAlign|textDecoration|textIndent|textTransform|tFoot|tHead\n          |title|toolbar|top|type|undefined|uniqueID|updateInterval|URL|URLUnencoded|useMap|userAgent|userLanguage|userProfile\n          |vAlign|value|valueType|vendor|vendorSub|version|visibility|vspace|whiteSpace|width|X[MS]LDocument|zIndex))\\b(?!\\$|\\s*{{typeParameters}}?\\()\n      captures:\n        '1': { name: punctuation.accessor.ts }\n        '2': { name: punctuation.accessor.optional.ts }\n        '3': { name: support.constant.dom.ts }\n        '4': { name: support.variable.property.dom.ts }\n    # Node\n    - name: support.class.node.ts\n      match: |-\n        (?x){{startOfIdentifier}}(Buffer|EventEmitter|Server|Pipe|Socket|REPLServer|ReadStream|WriteStream|Stream\n          |Inflate|Deflate|InflateRaw|DeflateRaw|GZip|GUnzip|Unzip|Zip)\\b(?!\\$)\n    - match: |-\n        (?x){{startOfIdentifier}}(process)(?:{{propertyAccess}}(?:\n          (arch|argv|config|connected|env|execArgv|execPath|exitCode|mainModule|pid|platform|release|stderr|stdin|stdout|title|version|versions)\n          |\n          (abort|chdir|cwd|disconnect|exit|[sg]ete?[gu]id|send|[sg]etgroups|initgroups|kill|memoryUsage|nextTick|umask|uptime|hrtime)\n        ))?\\b(?!\\$)\n      captures:\n        '1': { name: support.variable.object.process.ts }\n        '2': { name: punctuation.accessor.ts }\n        '3': { name: punctuation.accessor.optional.ts }\n        '4': { name: support.variable.property.process.ts }\n        '5': { name: support.function.process.ts }\n    - match: '{{startOfIdentifier}}(?:(exports)|(module)(?:{{propertyAccess}}(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)'\n      captures:\n        '1': { name: support.type.object.module.ts }\n        '2': { name: support.type.object.module.ts }\n        '3': { name: punctuation.accessor.ts }\n        '4': { name: punctuation.accessor.optional.ts }\n        '5': { name: support.type.object.module.ts }\n    - name: support.variable.object.node.ts\n      match: '{{startOfIdentifier}}(global|GLOBAL|root|__dirname|__filename)\\b(?!\\$)'\n    # method calls\n    - match: |-\n       (?x) {{propertyAccess}} \\s*\n       (?:\n        (on(?:Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset|\n          Readystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove|\n          Before(?:cut|deactivate|unload|update|paste|print|editfocus|activate)|\n          Blur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help|\n          Change|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate|\n          Datasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover|\n          Dragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error|\n          Errorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort)\n        ) |\n        (shift|showModelessDialog|showModalDialog|showHelp|scroll|scrollX|scrollByPages|\n          scrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|\n          sup|sub|substr|substring|splice|split|send|set(?:Milliseconds|Seconds|Minutes|Hours|\n          Month|Year|FullYear|Date|UTC(?:Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|\n          Time|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|\n          savePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|\n          contextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|\n          createEventObject|to(?:GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|\n          test|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|\n          untaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|\n          print|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|\n          fileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|\n          forward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|\n          abort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|\n          releaseCapture|releaseEvents|go|get(?:Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|\n          Time|Date|TimezoneOffset|UTC(?:Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|\n          Attention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|\n          moveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back\n        ) |\n        (acceptNode|add|addEventListener|addTextTrack|adoptNode|after|animate|append|\n          appendChild|appendData|before|blur|canPlayType|captureStream|\n          caretPositionFromPoint|caretRangeFromPoint|checkValidity|clear|click|\n          cloneContents|cloneNode|cloneRange|close|closest|collapse|\n          compareBoundaryPoints|compareDocumentPosition|comparePoint|contains|\n          convertPointFromNode|convertQuadFromNode|convertRectFromNode|createAttribute|\n          createAttributeNS|createCaption|createCDATASection|createComment|\n          createContextualFragment|createDocument|createDocumentFragment|\n          createDocumentType|createElement|createElementNS|createEntityReference|\n          createEvent|createExpression|createHTMLDocument|createNodeIterator|\n          createNSResolver|createProcessingInstruction|createRange|createShadowRoot|\n          createTBody|createTextNode|createTFoot|createTHead|createTreeWalker|delete|\n          deleteCaption|deleteCell|deleteContents|deleteData|deleteRow|deleteTFoot|\n          deleteTHead|detach|disconnect|dispatchEvent|elementFromPoint|elementsFromPoint|\n          enableStyleSheetsForSet|entries|evaluate|execCommand|exitFullscreen|\n          exitPointerLock|expand|extractContents|fastSeek|firstChild|focus|forEach|get|\n          getAll|getAnimations|getAttribute|getAttributeNames|getAttributeNode|\n          getAttributeNodeNS|getAttributeNS|getBoundingClientRect|getBoxQuads|\n          getClientRects|getContext|getDestinationInsertionPoints|getElementById|\n          getElementsByClassName|getElementsByName|getElementsByTagName|\n          getElementsByTagNameNS|getItem|getNamedItem|getSelection|getStartDate|\n          getVideoPlaybackQuality|has|hasAttribute|hasAttributeNS|hasAttributes|\n          hasChildNodes|hasFeature|hasFocus|importNode|initEvent|insertAdjacentElement|\n          insertAdjacentHTML|insertAdjacentText|insertBefore|insertCell|insertData|\n          insertNode|insertRow|intersectsNode|isDefaultNamespace|isEqualNode|\n          isPointInRange|isSameNode|item|key|keys|lastChild|load|lookupNamespaceURI|\n          lookupPrefix|matches|move|moveAttribute|moveAttributeNode|moveChild|\n          moveNamedItem|namedItem|nextNode|nextSibling|normalize|observe|open|\n          parentNode|pause|play|postMessage|prepend|preventDefault|previousNode|\n          previousSibling|probablySupportsContext|queryCommandEnabled|\n          queryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandValue|\n          querySelector|querySelectorAll|registerContentHandler|registerElement|\n          registerProtocolHandler|releaseCapture|releaseEvents|remove|removeAttribute|\n          removeAttributeNode|removeAttributeNS|removeChild|removeEventListener|\n          removeItem|replace|replaceChild|replaceData|replaceWith|reportValidity|\n          requestFullscreen|requestPointerLock|reset|scroll|scrollBy|scrollIntoView|\n          scrollTo|seekToNextFrame|select|selectNode|selectNodeContents|set|setAttribute|\n          setAttributeNode|setAttributeNodeNS|setAttributeNS|setCapture|\n          setCustomValidity|setEnd|setEndAfter|setEndBefore|setItem|setNamedItem|\n          setRangeText|setSelectionRange|setSinkId|setStart|setStartAfter|setStartBefore|\n          slice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|\n          submit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|\n          toDataURL|toggle|toString|values|write|writeln\n        ) |\n        (all|catch|finally|race|reject|resolve|then\n        )\n       )(?=\\s*\\()\n      captures:\n        '1': { name: punctuation.accessor.ts }\n        '2': { name: punctuation.accessor.optional.ts }\n        '3': { name: support.function.event-handler.ts }\n        '4': { name: support.function.ts }\n        '5': { name: support.function.dom.ts }\n        '6': { name: support.function.promise.ts }\n\n  identifiers:\n    patterns:\n    - include: '#object-identifiers'\n    # function and method assignment\n    - match: |-\n        (?x)(?:{{propertyAccess}}\\s*)?({{identifier}})(?=\\s*={{functionOrArrowLookup}})\n      captures:\n        '1': { name: punctuation.accessor.ts }\n        '2': { name: punctuation.accessor.optional.ts }\n        '3': { name: entity.name.function.ts }\n    # const properties\n    - match: '{{propertyAccess}}\\s*({{constantPropertyIdentifier}})(?![_$[:alnum:]])'\n      captures:\n        '1': { name: punctuation.accessor.ts }\n        '2': { name: punctuation.accessor.optional.ts }\n        '3': { name: variable.other.constant.property.ts }\n    # properties\n    - match: '{{propertyAccess}}\\s*({{propertyIdentifier}})'\n      captures:\n        '1': { name: punctuation.accessor.ts }\n        '2': { name: punctuation.accessor.optional.ts }\n        '3': { name: variable.other.property.ts }\n    # const\n    - name: variable.other.constant.ts\n      match: '{{constantVar}}'\n    # vars\n    - name: variable.other.readwrite.ts\n      match: '{{identifier}}'\n\n  object-identifiers:\n    patterns:\n    # class\n    - name: support.class.ts\n      match: ({{identifier}})(?=\\s*{{propertyAccessPreIdentifier}}prototype\\b(?!\\$))\n    # object properties\n    - match: |-\n        (?x){{propertyAccess}}\\s*(?:\n          ({{constantPropertyIdentifier}}) |\n          ({{propertyIdentifier}})\n        )(?=\\s*{{propertyAccessPreIdentifier}}{{propertyIdentifier}})\n      captures:\n        '1': { name: punctuation.accessor.ts }\n        '2': { name: punctuation.accessor.optional.ts }\n        '3': { name: variable.other.constant.object.property.ts }\n        '4': { name: variable.other.object.property.ts }\n    # objects\n    - match: |-\n        (?x)(?:\n          ({{constantIdentifier}}) |\n          ({{identifier}})\n        )(?=\\s*{{propertyAccessPreIdentifier}}{{propertyIdentifier}})\n      captures:\n        '1': { name: variable.other.constant.object.ts }\n        '2': { name: variable.other.object.ts }\n\n  #type annotation\n  type-annotation:\n    patterns:\n    # if type starts on same line use end of line as end\n    - name: meta.type.annotation.ts\n      begin: (:)(?=\\s*\\S)\n      beginCaptures:\n        '1': { name: keyword.operator.type.annotation.ts }\n      end: (?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))\n      patterns:\n      - include: '#type'\n    # if type starts on next line use modified line endings as end of type annotation eg. complete empty line\n    - name: meta.type.annotation.ts\n      begin: (:)\n      beginCaptures:\n        '1': { name: keyword.operator.type.annotation.ts }\n      end: (?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))\n      patterns:\n      - include: '#type'\n\n  parameter-type-annotation:\n    patterns:\n    - name: meta.type.annotation.ts\n      begin: (:)\n      beginCaptures:\n        '1': { name: keyword.operator.type.annotation.ts }\n      end: (?=[,)])|(?==[^>])\n      patterns:\n      - include: '#type'\n\n  #return type\n  return-type:\n    patterns:\n    # if type starts on same line use end of line as end\n    - name: meta.return.type.ts\n      begin: (?<=\\))\\s*(:)(?=\\s*\\S)\n      beginCaptures:\n        '1': { name: keyword.operator.type.annotation.ts }\n      end: (?<![:|&])(?=$|^|[{};,]|//)\n      patterns:\n      - include: '#return-type-core'\n    # if type starts on next line use modified line endings as end of type annotation eg. complete empty line\n    - name: meta.return.type.ts\n      begin: (?<=\\))\\s*(:)\n      beginCaptures:\n        '1': { name: keyword.operator.type.annotation.ts }\n      end: (?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))\n      patterns:\n      - include: '#return-type-core'\n\n  return-type-core:\n    patterns:\n    - include: '#comment'\n    # Handle returning of object type specifically here so as to not confuse it with the start of function block\n    - begin: (?<=[:|&])(?=\\s*\\{)\n      end: (?<=\\})\n      patterns:\n      - include: '#type-object'\n    - include: '#type-predicate-operator'\n    - include: '#type'\n\n  #arrow return type\n  arrow-return-type:\n    name: meta.return.type.arrow.ts\n    begin: '(?<=\\))\\s*(:)'\n    beginCaptures:\n      '1': { name: keyword.operator.type.annotation.ts }\n    end: '{{arrowFunctionEnd}}'\n    patterns:\n    - include: '#arrow-return-type-body'\n\n  #This is the check if the exoression '): something =>'' can be matched as return type of arrow\n  possibly-arrow-return-type:\n    begin: (?<=\\)|^)\\s*(:)(?={{possiblyType}}\\s*=>)\n    beginCaptures:\n      '1': { name: meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts }\n    end: '{{arrowFunctionEnd}}'\n    contentName: meta.arrow.ts meta.return.type.arrow.ts\n    patterns:\n    - include: '#arrow-return-type-body'\n\n  arrow-return-type-body:\n    patterns:\n    # TODO: handle the fn and constructor type specifically.\n    # Handle returning of object type specifically here so as to not confuse it with the start of function block\n    - begin: (?<=[:])(?=\\s*\\{)\n      end: (?<=\\})\n      patterns:\n      - include: '#type-object'\n    - include: '#type-predicate-operator'\n    - include: '#type'\n\n  #type parameters\n  type-parameters:\n    name: meta.type.parameters.ts\n    begin: '(<)'\n    beginCaptures:\n      '1': { name: punctuation.definition.typeparameters.begin.ts }\n    end: '(>)'\n    endCaptures:\n      '1': { name: punctuation.definition.typeparameters.end.ts }\n    patterns:\n    - include: '#comment'\n    - name: storage.modifier.ts\n      match: '{{startOfIdentifier}}(extends|in|out|const){{endOfIdentifier}}'\n    - include: '#type'\n    - include: '#punctuation-comma'\n    - name: keyword.operator.assignment.ts\n      match: (=)(?!>)\n\n  #type arguments\n  type-arguments:\n    name: meta.type.parameters.ts\n    begin: \\<\n    beginCaptures:\n      '0': { name: punctuation.definition.typeparameters.begin.ts }\n    end: \\>\n    endCaptures:\n      '0': { name: punctuation.definition.typeparameters.end.ts }\n    patterns:\n    - include: '#type-arguments-body'\n\n  type-arguments-body:\n    patterns:\n    - match: '{{startOfIdentifier}}(_){{endOfIdentifier}}'\n      captures:\n        '0': { name: keyword.operator.type.ts }\n    - include: '#type'\n    - include: '#punctuation-comma'\n\n  #different types\n  type:\n    patterns:\n    - include: '#comment'\n    - include: '#type-string'\n    - include: '#numeric-literal'\n    - include: '#type-primitive'\n    - include: '#type-builtin-literals'\n    - include: '#type-parameters'\n    - include: '#type-tuple'\n    - include: '#type-object'\n    - include: '#type-operators'\n    - include: '#type-conditional'\n    - include: '#type-fn-type-parameters'\n    - include: '#type-paren-or-function-parameters'\n    - include: '#type-function-return-type'\n    - match: '{{startOfIdentifier}}(readonly){{endOfIdentifier}}\\s*'\n      captures:\n        '1': { name: storage.modifier.ts }\n    - include: '#type-name'\n\n  type-primitive:\n    name: support.type.primitive.ts\n    match: '{{startOfIdentifier}}(string|number|bigint|boolean|symbol|any|void|never|unknown){{endOfIdentifier}}'\n\n  type-builtin-literals:\n    name: support.type.builtin.ts\n    match: '{{startOfIdentifier}}(this|true|false|undefined|null|object){{endOfIdentifier}}'\n\n  type-tuple:\n    name: meta.type.tuple.ts\n    begin: \\[\n    beginCaptures:\n      '0': { name: meta.brace.square.ts }\n    end: \\]\n    endCaptures:\n      '0': { name: meta.brace.square.ts }\n    patterns:\n    - name: keyword.operator.rest.ts\n      match: \\.\\.\\.\n    - match: '{{startOfIdentifier}}({{identifier}})\\s*(\\?)?\\s*(:)'\n      captures:\n        '1': { name: entity.name.label.ts }\n        '2': { name: keyword.operator.optional.ts }\n        '3': { name: punctuation.separator.label.ts }\n    - include: '#type'\n    - include: '#punctuation-comma'\n\n  type-object:\n    name: meta.object.type.ts\n    begin: \\{\n    beginCaptures:\n      '0': { name: punctuation.definition.block.ts }\n    end: \\}\n    endCaptures:\n      '0': { name: punctuation.definition.block.ts }\n    patterns:\n    - include: '#comment'\n    - include: '#method-declaration'\n    - include: '#indexer-declaration'\n    - include: '#indexer-mapped-type-declaration'\n    - include: '#field-declaration'\n    - include: '#type-annotation'\n    - begin: \\.\\.\\.\n      beginCaptures:\n        '0': { name: keyword.operator.spread.ts }\n      end: '(?=\\}|;|,|$)|(?<=\\})'\n      patterns:\n      - include: '#type'\n    - include: '#punctuation-comma'\n    - include: '#punctuation-semicolon'\n    - include: '#type'\n\n  #conditional type\n  type-conditional:\n    patterns:\n    - begin: '{{startOfIdentifier}}(extends)\\s+'\n      beginCaptures:\n        '1': { name: storage.modifier.ts }\n      end: (?<=:)\n      patterns:\n      - begin: \\?\n        beginCaptures:\n          '0': { name: keyword.operator.ternary.ts }\n        end: ':'\n        endCaptures:\n          '0': { name: keyword.operator.ternary.ts }\n        patterns:\n        - include: '#type'\n      - include: '#type'\n\n  # Parenthesis can contain either types and function parameters\n  # (number | string) or (param: number, param2: string)\n  # and it can be nested, for example\n  # (number | (param: number, param2: string) => void)\n  type-paren-or-function-parameters:\n    name: meta.type.paren.cover.ts\n    begin: \\(\n    beginCaptures:\n      '0': { name: meta.brace.round.ts }\n    end: \\)\n    endCaptures:\n      '0': { name: meta.brace.round.ts }\n    patterns:\n    #parameter name only if followed by type annotation\n    - match: |-\n        (?x)(?:{{startOfIdentifier}}(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:){{startOfIdentifier}}(?:(this)|({{identifier}}))\\s*(\\??)(?=\\s*{{functionLikeType}})\n      captures:\n        '1': { name: storage.modifier.ts }\n        '2': { name: keyword.operator.rest.ts }\n        '3': { name: entity.name.function.ts variable.language.this.ts }\n        '4': { name: entity.name.function.ts }\n        '5': { name: keyword.operator.optional.ts }\n    - match: |-\n        (?x)(?:{{startOfIdentifier}}(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:){{startOfIdentifier}}(?:(this)|({{identifier}}))\\s*(\\??)(?=:)\n      captures:\n        '1': { name: storage.modifier.ts }\n        '2': { name: keyword.operator.rest.ts }\n        '3': { name: variable.parameter.ts variable.language.this.ts }\n        '4': { name: variable.parameter.ts }\n        '5': { name: keyword.operator.optional.ts }\n    - include: '#type-annotation'\n    - name: punctuation.separator.parameter.ts\n      match: ','\n    - include: '#type'\n\n  type-fn-type-parameters:\n    patterns:\n    # constructor type\n    - begin: '{{startOfIdentifier}}(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)'\n      beginCaptures:\n        '1': { name: meta.type.constructor.ts storage.modifier.ts } # captures keyword (abstract)\n        '2': { name: meta.type.constructor.ts keyword.control.new.ts } # captures keyword (new)\n      end: (?<=>)\n      patterns:\n      - include: '#comment'\n      - include: '#type-parameters'\n    - name: meta.type.constructor.ts\n      begin: '{{startOfIdentifier}}(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()'\n      beginCaptures:\n        '1': { name: storage.modifier.ts } # captures keyword (abstract)\n        '2': { name: keyword.control.new.ts } # captures keyword (new)\n      end: (?<=\\))\n      patterns:\n      - include: '#function-parameters'\n    # () | (... | (param: | (param, | (param? | (param= | (param) =>\n    - name: meta.type.function.ts\n      begin: |-\n        (?x)(\n          (?=\n            [(]\\s*(\n              ([)]) |\n              (\\.\\.\\.) |\n              ([_$[:alnum:]]+\\s*(\n                ([:,?=])|\n                ([)]\\s*=>)\n              ))\n            )\n          )\n        )\n      end: (?<=\\))\n      patterns:\n      - include: '#function-parameters'\n\n  type-function-return-type:\n    patterns:\n    # if type starts on same line use end of line as end\n    - name: meta.type.function.return.ts\n      begin: (=>)(?=\\s*\\S)\n      beginCaptures:\n        '1': { name: storage.type.function.arrow.ts }\n      end: (?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)\n      patterns:\n      - include: '#type-function-return-type-core'\n    # if type starts on next line use modified line endings as end of type annotation eg. complete empty line\n    - name: meta.type.function.return.ts\n      begin: '=>'\n      beginCaptures:\n        '0': { name: storage.type.function.arrow.ts }\n      end: (?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))\n      patterns:\n      - include: '#type-function-return-type-core'\n\n  type-function-return-type-core:\n      patterns:\n      - include: '#comment'\n      # Handle returning of object type specifically here so as to not confuse it with the start of function block\n      - begin: (?<==>)(?=\\s*\\{)\n        end: (?<=\\})\n        patterns:\n        - include: '#type-object'\n      - include: '#type-predicate-operator'\n      - include: '#type'\n\n  #type operators\n  type-operators:\n    patterns:\n    - include: '#typeof-operator'\n    - include: '#type-infer'\n    # Handle the object types followed by | or & operator as { can be used as end of Type in many places and this avoids tripping that\n    - begin: ([&|])(?=\\s*\\{)\n      beginCaptures:\n        '0': { name: keyword.operator.type.ts }\n      end: (?<=\\})\n      patterns:\n      - include: '#type-object'\n    # capture all white spaces followed by the | or & operator so that line break (which is end regex for many type patterns)\n    # will be consumed and we will continue to be in type space\n    - begin: '[&|]'\n      beginCaptures:\n        '0': { name: keyword.operator.type.ts }\n      end: (?=\\S)\n    - name: keyword.operator.expression.keyof.ts\n      match: '{{startOfIdentifier}}keyof{{endOfIdentifier}}'\n    - name: keyword.operator.ternary.ts\n      match: (\\?|\\:)\n    - name: keyword.operator.expression.import.ts\n      match: '{{startOfIdentifier}}import(?=\\s*\\()'\n\n  type-infer:\n    patterns:\n    - match: '{{startOfIdentifier}}(infer)\\s+({{identifier}}){{endOfIdentifier}}(?:\\s+(extends){{endOfIdentifier}})?'\n      name: meta.type.infer.ts\n      captures:\n        '1': { name: keyword.operator.expression.infer.ts }\n        '2': { name: entity.name.type.ts }\n        '3': { name: keyword.operator.expression.extends.ts }\n\n  type-predicate-operator:\n    patterns:\n    - match: '{{startOfIdentifier}}(?:(asserts)\\s+)?(?!asserts)(?:(this)|({{identifier}}))\\s(is){{endOfIdentifier}}'\n      captures:\n        '1': { name: keyword.operator.type.asserts.ts }\n        '2': { name: variable.parameter.ts variable.language.this.ts }\n        '3': { name: variable.parameter.ts }\n        '4': { name: keyword.operator.expression.is.ts }\n    - match: '{{startOfIdentifier}}(asserts)\\s+(?!is)(?:(this)|({{identifier}})){{endOfIdentifier}}'\n      captures:\n        '1': { name: keyword.operator.type.asserts.ts }\n        '2': { name: variable.parameter.ts variable.language.this.ts }\n        '3': { name: variable.parameter.ts }\n    - name: keyword.operator.type.asserts.ts\n      match: '{{startOfIdentifier}}asserts{{endOfIdentifier}}'\n    - name: keyword.operator.expression.is.ts\n      match: '{{startOfIdentifier}}is{{endOfIdentifier}}'\n\n  #name of the type and type name followed by type arguments\n  type-name:\n    patterns:\n    - begin: '({{identifier}})\\s*{{propertyAccess}}\\s*(<)'\n      captures:\n        '1': { name: entity.name.type.module.ts }\n        '2': { name: punctuation.accessor.ts }\n        '3': { name: punctuation.accessor.optional.ts }\n        '4': { name: meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts }\n      end: '(>)'\n      endCaptures:\n        '1': { name: meta.type.parameters.ts punctuation.definition.typeparameters.end.ts }\n      contentName: meta.type.parameters.ts\n      patterns:\n      - include: '#type-arguments-body'\n    - begin: '({{identifier}})\\s*(<)'\n      beginCaptures:\n        '1': { name: entity.name.type.ts }\n        '2': { name: meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts }\n      end: '(>)'\n      endCaptures:\n        '1': { name: meta.type.parameters.ts punctuation.definition.typeparameters.end.ts }\n      contentName: meta.type.parameters.ts\n      patterns:\n      - include: '#type-arguments-body'\n    - match: ({{identifier}})\\s*{{propertyAccess}}\n      captures:\n        '1': { name: entity.name.type.module.ts }\n        '2': { name: punctuation.accessor.ts }\n        '3': { name: punctuation.accessor.optional.ts }\n    - name: entity.name.type.ts\n      match: '{{identifier}}'\n\n  #punctuations\n  punctuation-comma:\n    name: punctuation.separator.comma.ts\n    match: ','\n\n  punctuation-semicolon:\n    name: punctuation.terminator.statement.ts\n    match: ';'\n\n  punctuation-accessor:\n    match: '{{propertyAccess}}'\n    captures:\n      '1': { name: punctuation.accessor.ts }\n      '2': { name: punctuation.accessor.optional.ts }\n\n  #strings and template strings\n  string:\n    patterns:\n    - include: '#qstring-single'\n    - include: '#qstring-double'\n    - include: '#template'\n\n  qstring-double:\n    name: string.quoted.double.ts\n    begin: '\"'\n    beginCaptures:\n      '0': { name: punctuation.definition.string.begin.ts }\n    end: '(\")|((?:[^\\\\\\n])$)'\n    endCaptures:\n      '1': { name: punctuation.definition.string.end.ts }\n      '2': { name: invalid.illegal.newline.ts }\n    patterns:\n    - include: '#string-character-escape'\n\n  qstring-single:\n    name: string.quoted.single.ts\n    begin: \"'\"\n    beginCaptures:\n      '0': { name: punctuation.definition.string.begin.ts }\n    end: (\\')|((?:[^\\\\\\n])$)\n    endCaptures:\n      '1': { name: punctuation.definition.string.end.ts }\n      '2': { name: invalid.illegal.newline.ts }\n    patterns:\n    - include: '#string-character-escape'\n\n  string-character-escape:\n    name: constant.character.escape.ts\n    match: \\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)\n\n  template:\n    patterns:\n    - include: '#template-call'\n    - contentName: string.template.ts\n      begin: '({{identifier}})?(`)'\n      beginCaptures:\n        '1': { name: entity.name.function.tagged-template.ts }\n        '2': { name: string.template.ts punctuation.definition.string.template.begin.ts }\n      end: '`'\n      endCaptures:\n        '0': { name: string.template.ts punctuation.definition.string.template.end.ts}\n      patterns:\n       - include: '#template-substitution-element'\n       - include: '#string-character-escape'\n\n  template-call:\n    patterns:\n    - begin: (?=(({{identifier}}\\s*{{propertyAccessPreIdentifier}})*|({{propertyAccessPreIdentifier}})?)({{identifier}})({{typeArguments}}\\s*)?`)\n      end: (?=`)\n      patterns:\n      - begin: (?=(({{identifier}}\\s*{{propertyAccessPreIdentifier}})*|({{propertyAccessPreIdentifier}})?)({{identifier}}))\n        end: (?=({{typeArguments}}\\s*)?`)\n        patterns:\n        - include: '#support-function-call-identifiers'\n        - name: entity.name.function.tagged-template.ts\n          match: ({{identifier}})\n      - include: '#type-arguments'\n    - begin: ({{identifier}})?\\s*(?=({{typeArguments}}\\s*)`)\n      beginCaptures:\n        '1': { name: entity.name.function.tagged-template.ts }\n      end: (?=`)\n      patterns:\n      - include: '#type-arguments'\n\n  template-substitution-element:\n    name: meta.template.expression.ts\n    begin: \\$\\{\n    beginCaptures:\n      '0': { name: punctuation.definition.template-expression.begin.ts }\n    end: \\}\n    endCaptures:\n      '0': { name: punctuation.definition.template-expression.end.ts }\n    patterns:\n      - include: '#expression'\n    contentName: meta.embedded.line.ts\n\n  type-string:\n    patterns:\n    - include: '#qstring-single'\n    - include: '#qstring-double'\n    - include: '#template-type'\n\n  template-type:\n    patterns:\n    - include: '#template-call'\n    - contentName: string.template.ts\n      begin: '({{identifier}})?(`)'\n      beginCaptures:\n        '1': { name: entity.name.function.tagged-template.ts }\n        '2': { name: string.template.ts punctuation.definition.string.template.begin.ts }\n      end: '`'\n      endCaptures:\n        '0': { name: string.template.ts punctuation.definition.string.template.end.ts}\n      patterns:\n       - include: '#template-type-substitution-element'\n       - include: '#string-character-escape'\n\n  template-type-substitution-element:\n    name: meta.template.expression.ts\n    begin: \\$\\{\n    beginCaptures:\n      '0': { name: punctuation.definition.template-expression.begin.ts }\n    end: \\}\n    endCaptures:\n      '0': { name: punctuation.definition.template-expression.end.ts }\n    patterns:\n      - include: '#type'\n    contentName: meta.embedded.line.ts\n\n  #regular expression\n  # regexp syntax is taken from https://github.com/atom/language-javascript/\n  regex:\n    patterns:\n    - name: string.regexp.ts\n      begin: (?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|{{lookBehindReturn}}|{{lookBehindCase}}|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/{{regexpTail}})\n      beginCaptures:\n        '1': { name: punctuation.definition.string.begin.ts }\n      end: (/)([dgimsuvy]*)\n      endCaptures:\n        '1': { name: punctuation.definition.string.end.ts }\n        '2': { name: keyword.other.ts}\n      patterns:\n      - include: '#regexp'\n    # Check if complete regexp syntax\n    - name: string.regexp.ts\n      begin: ((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<={{lookBehindReturn}}|{{lookBehindCase}}))\\s*){{completeRegexp}}\n      beginCaptures:\n        '0': { name: punctuation.definition.string.begin.ts }\n      end: (/)([dgimsuvy]*)\n      endCaptures:\n        '1': { name: punctuation.definition.string.end.ts }\n        '2': { name: keyword.other.ts }\n      patterns:\n      - include: '#regexp'\n\n  regexp:\n    patterns:\n    - name: keyword.control.anchor.regexp\n      match: \\\\[bB]|\\^|\\$\n    - match: \\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>\n      captures:\n        '0': { name: keyword.other.back-reference.regexp }\n        '1': { name: variable.other.regexp }\n    - name: keyword.operator.quantifier.regexp\n      match: '[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??'\n    - name: keyword.operator.or.regexp\n      match: \\|\n    - name: meta.group.assertion.regexp\n      begin: (\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))\n      beginCaptures:\n        '1': { name: punctuation.definition.group.regexp }\n        '2': { name: punctuation.definition.group.assertion.regexp }\n        '3': { name: meta.assertion.look-ahead.regexp }\n        '4': { name: meta.assertion.negative-look-ahead.regexp }\n        '5': { name: meta.assertion.look-behind.regexp }\n        '6': { name: meta.assertion.negative-look-behind.regexp }\n      end: (\\))\n      endCaptures:\n        '1': {name: punctuation.definition.group.regexp }\n      patterns:\n      - include: '#regexp'\n    - name: meta.group.regexp\n      begin: \\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?\n      beginCaptures:\n        '0': { name: punctuation.definition.group.regexp }\n        '1': { name: punctuation.definition.group.no-capture.regexp }\n        '2': { name: variable.other.regexp }\n      end: \\)\n      endCaptures:\n        '0': { name: punctuation.definition.group.regexp }\n      patterns:\n      - include: '#regexp'\n    - name: constant.other.character-class.set.regexp\n      begin: (\\[)(\\^)?\n      beginCaptures:\n        '1': { name: punctuation.definition.character-class.regexp }\n        '2': { name: keyword.operator.negation.regexp }\n      end: (\\])\n      endCaptures:\n        '1': {name: punctuation.definition.character-class.regexp }\n      patterns:\n      - name: constant.other.character-class.range.regexp\n        match: (?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\n        captures:\n          '1': { name: constant.character.numeric.regexp }\n          '2': { name: constant.character.control.regexp }\n          '3': { name: constant.character.escape.backslash.regexp }\n          '4': { name: constant.character.numeric.regexp }\n          '5': { name: constant.character.control.regexp }\n          '6': { name: constant.character.escape.backslash.regexp }\n      - include: '#regex-character-class'\n    - include: '#regex-character-class'\n\n  regex-character-class:\n    patterns:\n    - name: constant.other.character-class.regexp\n      match: \\\\[wWsSdDtrnvf]|\\.\n    - name: constant.character.numeric.regexp\n      match: \\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})\n    - name: constant.character.control.regexp\n      match: \\\\c[A-Z]\n    - name: constant.character.escape.backslash.regexp\n      match: \\\\.\n\n  #comments and directives\n  comment:\n    patterns:\n    - name: comment.block.documentation.ts\n      begin: /\\*\\*(?!/)\n      beginCaptures:\n        '0': { name: punctuation.definition.comment.ts }\n      end: \\*/\n      endCaptures:\n        '0': { name: punctuation.definition.comment.ts }\n      patterns:\n      - include: '#docblock'\n    - name: comment.block.ts\n      begin: (/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?\n      beginCaptures:\n        '1': { name: punctuation.definition.comment.ts }\n        '2': { name: storage.type.internaldeclaration.ts }\n        '3': { name: punctuation.decorator.internaldeclaration.ts }\n      end: \\*/\n      endCaptures:\n        '0': { name: punctuation.definition.comment.ts }\n    - begin: (^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)\n      beginCaptures:\n        '1': { name: punctuation.whitespace.comment.leading.ts }\n        '2': { name: comment.line.double-slash.ts }\n        '3': { name: punctuation.definition.comment.ts }\n        '4': { name: storage.type.internaldeclaration.ts }\n        '5': { name: punctuation.decorator.internaldeclaration.ts }\n      end: (?=$)\n      contentName: comment.line.double-slash.ts\n\n  single-line-comment-consuming-line-ending:\n    begin: (^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)\n    beginCaptures:\n      '1': { name: punctuation.whitespace.comment.leading.ts }\n      '2': { name: comment.line.double-slash.ts }\n      '3': { name: punctuation.definition.comment.ts }\n      '4': { name: storage.type.internaldeclaration.ts }\n      '5': { name: punctuation.decorator.internaldeclaration.ts }\n    end: (?=^)\n    contentName: comment.line.double-slash.ts\n\n  directives:\n    name: comment.line.triple-slash.directive.ts\n    begin: ^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*({{quotedStrings}}))+\\s*/>\\s*$)\n    beginCaptures:\n      '1': { name: punctuation.definition.comment.ts }\n    end: (?=$)\n    patterns:\n    - name: meta.tag.ts\n      begin: (<)(reference|amd-dependency|amd-module)\n      beginCaptures:\n        '1': { name: punctuation.definition.tag.directive.ts }\n        '2': { name: entity.name.tag.directive.ts }\n      end: />\n      endCaptures:\n        '0': { name: punctuation.definition.tag.directive.ts }\n      patterns:\n      - name: entity.other.attribute-name.directive.ts\n        match: 'path|types|no-default-lib|lib|name|resolution-mode'\n      - name: keyword.operator.assignment.ts\n        match: '='\n      - include: '#string'\n\n  #jsdoc syntax taken from https://github.com/atom/language-javascript/\n  #no longer maintained there, however: https://github.com/atom/language-javascript/pull/645#issuecomment-496795093\n  docblock:\n    patterns:\n    # @access private|protected|public\n    - match: |-\n        (?x)\n        ((@)(?:access|api))\n        \\s+\n        (private|protected|public)\n        \\b\n      captures:\n        '1': { name: storage.type.class.jsdoc }\n        '2': { name: punctuation.definition.block.tag.jsdoc }\n        '3': { name: constant.language.access-type.jsdoc }\n    # @author name [<email>]\n    - match: |-\n        (?x)\n        ((@)author)\n        \\s+\n        (\n          [^@\\s<>*/]\n          (?:[^@<>*/]|\\*[^/])*\n        )\n        (?:\n          \\s*\n          (<)\n          ([^>\\s]+)\n          (>)\n        )?\n      captures:\n        '1': { name: storage.type.class.jsdoc }\n        '2': { name: punctuation.definition.block.tag.jsdoc }\n        '3': { name: entity.name.type.instance.jsdoc }\n        '4': { name: punctuation.definition.bracket.angle.begin.jsdoc }\n        '5': { name: constant.other.email.link.underline.jsdoc }\n        '6': { name: punctuation.definition.bracket.angle.end.jsdoc }\n    # @borrows <that namepath> as <this namepath>\n    - match: |-\n        (?x)\n        ((@)borrows) \\s+\n        ((?:[^@\\s*/]|\\*[^/])+)    # <that namepath>\n        \\s+ (as) \\s+              # as\n        ((?:[^@\\s*/]|\\*[^/])+)    # <this namepath>\n      captures:\n        '1': { name: storage.type.class.jsdoc }\n        '2': { name: punctuation.definition.block.tag.jsdoc }\n        '3': { name: entity.name.type.instance.jsdoc }\n        '4': { name: keyword.operator.control.jsdoc }\n        '5': { name: entity.name.type.instance.jsdoc }\n    # @example text();\n    - name: meta.example.jsdoc\n      begin: ((@)example)\\s+\n      end: (?=@|\\*/)\n      beginCaptures:\n        '1': { name: storage.type.class.jsdoc }\n        '2': { name: punctuation.definition.block.tag.jsdoc }\n      patterns:\n      # Match to prevent leading asterisk being highlighted as JS\n      - match: ^\\s\\*\\s+\n      # Leading <caption>…</caption> before example\n      - contentName: constant.other.description.jsdoc\n        begin: \\G(<)caption(>)\n        beginCaptures:\n          '0': { name: entity.name.tag.inline.jsdoc }\n          '1': { name: punctuation.definition.bracket.angle.begin.jsdoc }\n          '2': { name: punctuation.definition.bracket.angle.end.jsdoc }\n        end: (</)caption(>)|(?=\\*/)\n        endCaptures:\n          '0': { name: entity.name.tag.inline.jsdoc }\n          '1': { name: punctuation.definition.bracket.angle.begin.jsdoc }\n          '2': { name: punctuation.definition.bracket.angle.end.jsdoc }\n      # Highlighted JavaScript example\n      - match: '[^\\s@*](?:[^*]|\\*[^/])*'\n        captures:\n          '0':\n            name: source.embedded.ts\n            # Commenting out the embedded pattern matching since sublime doesnt support this\n            # patterns:\n            # - include: source.ts\n    # @kind type\n    - match: >-\n        (?x)\n        ((@)kind)\n        \\s+\n        (class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\n        \\b\n      captures:\n        '1': { name: storage.type.class.jsdoc }\n        '2': { name: punctuation.definition.block.tag.jsdoc }\n        '3': { name: constant.language.symbol-type.jsdoc }\n    # @see namepathOrURL\n    - match: |-\n        (?x)\n        ((@)see)\n        \\s+\n        (?:\n          # URL\n          (\n            (?=https?://)\n            (?:[^\\s*]|\\*[^/])+\n          )\n          |\n          # JSDoc namepath\n          (\n            (?!\n              # Avoid matching bare URIs (also acceptable as links)\n              https?://\n              |\n              # Avoid matching {@inline tags}; we match those below\n              (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n              {@(?:link|linkcode|linkplain|tutorial)\\b\n            )\n            # Matched namepath\n            (?:[^@\\s*/]|\\*[^/])+\n          )\n        )\n      captures:\n        '1': { name: storage.type.class.jsdoc }\n        '2': { name: punctuation.definition.block.tag.jsdoc }\n        '3': { name: variable.other.link.underline.jsdoc }\n        '4': { name: entity.name.type.instance.jsdoc }\n    # @template Foo,Bar\n    - match: |-\n        (?x)\n        ((@)template)\n        \\s+\n        # One or more valid identifiers\n        (\n          [A-Za-z_$]         # First character: non-numeric word character\n          [\\w$.\\[\\]]*        # Rest of identifier\n          (?:                # Possible list of additional identifiers\n            \\s* , \\s*\n            [A-Za-z_$]\n            [\\w$.\\[\\]]*\n          )*\n        )\n      captures:\n        '1': { name: storage.type.class.jsdoc }\n        '2': { name: punctuation.definition.block.tag.jsdoc }\n        '3':\n          name: variable.other.jsdoc\n          # Commenting out the embedded pattern matching since sublime doesnt support this\n          # patterns:\n          # - name: punctuation.delimiter.object.comma.jsdoc\n          #   match: ','\n    # @template {Constraint} Foo\n    - begin: (?x)((@)template)\\s+(?={)\n      beginCaptures:\n        '1': { name: storage.type.class.jsdoc }\n        '2': { name: punctuation.definition.block.tag.jsdoc }\n      end: (?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])\n      patterns:\n      - include: '#jsdoctype'\n      - name: variable.other.jsdoc\n        # One valid identifier\n        match: ([A-Za-z_$][\\w$.\\[\\]]*)\n    # Tags followed by an identifier token\n    # -  @<tag> identifier\n    - match: |-\n        (?x)\n        (\n          (@)\n          (?:arg|argument|const|constant|member|namespace|param|var)\n        )\n        \\s+\n        (\n          [A-Za-z_$]\n          [\\w$.\\[\\]]*\n        )\n      captures:\n        '1': { name: storage.type.class.jsdoc }\n        '2': { name: punctuation.definition.block.tag.jsdoc }\n        '3': { name: variable.other.jsdoc }\n    # Tags followed by a type expression, then a namepath\n    # -  @<tag> {type} namepath\n    - begin: ((@)typedef)\\s+(?={)\n      beginCaptures:\n        '1': { name: storage.type.class.jsdoc }\n        '2': { name: punctuation.definition.block.tag.jsdoc }\n      end: (?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])\n      patterns:\n      - include: '#jsdoctype'\n      - name: entity.name.type.instance.jsdoc\n        match: (?:[^@\\s*/]|\\*[^/])+\n    # Tags followed by a type expression, then an identifier\n    # -  @<tag> {type} identifier\n    - begin: >-\n        ((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)\n      beginCaptures:\n        '1': { name: storage.type.class.jsdoc }\n        '2': { name: punctuation.definition.block.tag.jsdoc }\n      end: (?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])\n      patterns:\n      - include: '#jsdoctype'\n      - name: variable.other.jsdoc\n        match: ([A-Za-z_$][\\w$.\\[\\]]*)\n      # Optional value\n      - name: variable.other.jsdoc\n        match: |-\n          (?x)\n          (\\[)\\s*\n          [\\w$]+\n          (?:\n            (?:\\[\\])?                                        # Foo[ ].bar properties within an array\n            \\.                                                # Foo.Bar namespaced parameter\n            [\\w$]+\n          )*\n          (?:\n            \\s*\n            (=)                                                # [foo=bar] Default parameter value\n            \\s*\n            (\n              # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n              (?>\n                \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" |                      # [foo=\"bar\"] Double-quoted\n                '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' |                      # [foo='bar'] Single-quoted\n                \\[ (?:(?:\\*(?!/))|[^*])*? \\] |                                # [foo=[1,2]] Array literal\n                (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*   # Everything else\n              )*\n            )\n          )?\n          \\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))\n        captures:\n          '1': { name: punctuation.definition.optional-value.begin.bracket.square.jsdoc }\n          '2': { name: keyword.operator.assignment.jsdoc }\n          '3':\n            name: source.embedded.ts\n            # Commenting out the embedded pattern matching since sublime doesnt support this\n            # patterns:\n            #   - include: '#inline-tags'\n            #   - include: source.js\n          '4': { name: punctuation.definition.optional-value.end.bracket.square.jsdoc }\n          '5': { name: invalid.illegal.syntax.jsdoc }\n    # Tags followed by a type expression\n    # -  @<tag> {type}\n    - begin: |-\n        (?x)\n        (\n          (@)\n          (?:define|enum|exception|export|extends|lends|implements|modifies\n          |namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n          |yields?)\n        )\n        \\s+(?={)\n      beginCaptures:\n        '1': { name: storage.type.class.jsdoc }\n        '2': { name: punctuation.definition.block.tag.jsdoc }\n      end: (?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])\n      patterns:\n      - include: '#jsdoctype'\n    # Tags followed by a namepath\n    # -  @<tag> namepath\n    - match: |-\n        (?x)\n        (\n          (@)\n          (?:alias|augments|callback|constructs|emits|event|fires|exports?\n          |extends|external|function|func|host|lends|listens|interface|memberof!?\n          |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n        )\n        \\s+\n        (\n          (?:\n            [^{}@\\s*] | \\*[^/]\n          )+\n        )\n      captures:\n        '1': { name: storage.type.class.jsdoc }\n        '2': { name: punctuation.definition.block.tag.jsdoc }\n        '3': { name: entity.name.type.instance.jsdoc }\n    # Tags followed by a quoted arbitrary value\n    # -  @<tag> \"Quoted value\"\n    - contentName: variable.other.jsdoc\n      begin: ((@)(?:default(?:value)?|license|version))\\s+(([''\"]))\n      beginCaptures:\n        '1': { name: storage.type.class.jsdoc }\n        '2': { name: punctuation.definition.block.tag.jsdoc }\n        '3': { name: variable.other.jsdoc }\n        '4': { name: punctuation.definition.string.begin.jsdoc }\n      end: (\\3)|(?=$|\\*/)\n      endCaptures:\n        '0': { name: variable.other.jsdoc }\n        '1': { name: punctuation.definition.string.end.jsdoc }\n    # Tags followed by an arbitrary value\n    # -  @<tag> value\n    - match: ((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)\n      captures:\n        '1': { name: storage.type.class.jsdoc }\n        '2': { name: punctuation.definition.block.tag.jsdoc }\n        '3': { name: variable.other.jsdoc }\n    # Tags without arguments, or a tag without expected arguments. Because JSDoc permits\n    # tags to be spread across lines, we should at least highlight the opening tag for\n    # stuff like this:\n    #\n    #    /**\n    #      * @param\n    #      * {type}\n    #      * name\n    - name: storage.type.class.jsdoc\n      match: >-\n        (?x) (@)\n        (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles\n        |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright\n        |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception\n        |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func\n        |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc\n        |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method\n        |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects\n        |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected\n        |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary\n        |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation\n        |version|virtual|writeOnce|yields?)\n        \\b\n      captures:\n        '1': { name: punctuation.definition.block.tag.jsdoc }\n    - include: '#inline-tags'\n    # any tag\n    - match: ((@)(?:{{identifier}}))(?=\\s+)\n      captures:\n        '1': { name: storage.type.class.jsdoc }\n        '2': { name: punctuation.definition.block.tag.jsdoc }\n\n  brackets:\n  # Balanced brackets (square or curly)\n    patterns:\n    - begin: '{'\n      end: '}|(?=\\*/)'\n      patterns:\n      - include: '#brackets'\n    - begin: '\\['\n      end: '\\]|(?=\\*/)'\n      patterns:\n      - include: '#brackets'\n\n  inline-tags:\n    patterns:\n    # Description preceding {@inline tag}\n    - name: constant.other.description.jsdoc\n      match: (\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))\n      captures:\n        '1': { name: punctuation.definition.bracket.square.begin.jsdoc }\n        '2': { name: punctuation.definition.bracket.square.end.jsdoc }\n    # {@link|@tutorial …}\n    - name: entity.name.type.instance.jsdoc\n      begin: ({)((@)(?:link(?:code|plain)?|tutorial))\\s*\n      beginCaptures:\n        '1': { name: punctuation.definition.bracket.curly.begin.jsdoc }\n        '2': { name: storage.type.class.jsdoc }\n        '3': { name: punctuation.definition.inline.tag.jsdoc }\n      end: '}|(?=\\*/)'\n      endCaptures:\n        '0': { name: punctuation.definition.bracket.curly.end.jsdoc }\n      patterns:\n      - match: \\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?\n        captures:\n          '1': { name: variable.other.link.underline.jsdoc }\n          '2': { name: punctuation.separator.pipe.jsdoc }\n      - match: \\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?\n        captures:\n          '1': { name: variable.other.description.jsdoc }\n          '2': { name: punctuation.separator.pipe.jsdoc }\n\n  jsdoctype:\n  # {type}\n    patterns:\n    # {unclosed\n    - name: invalid.illegal.type.jsdoc\n      match: \\G{(?:[^}*]|\\*[^/}])+$\n    - contentName: entity.name.type.instance.jsdoc\n      begin: \\G({)\n      beginCaptures:\n        '0': { name: entity.name.type.instance.jsdoc }\n        '1': { name: punctuation.definition.bracket.curly.begin.jsdoc }\n      end: ((}))\\s*|(?=\\*/)\n      endCaptures:\n        '1': { name: entity.name.type.instance.jsdoc }\n        '2': { name: punctuation.definition.bracket.curly.end.jsdoc }\n      patterns:\n      - include: '#brackets'\n\n...\n"
  },
  {
    "path": "TypeScript.YAML-tmTheme",
    "content": "# VS theme settings for TypeScript\r\n\r\n---\r\nname: TypeScript\r\nuuid: 91489F9C-F403-4CF0-993D-EAAF9149E40E\r\n\r\nsettings:\r\n- scope: storage.modifier, storage.type, keyword.other, keyword.operator.expression, keyword.operator.new, keyword.generator.asterisk, punctuation.definition.template-expression\r\n  settings: { vsclassificationtype: keyword }\r\n- scope: constant.language, variable.language\r\n  settings: { vsclassificationtype: keyword }\r\n- scope: keyword.control, keyword.operator.expression.delete, keyword.other.using, keyword.other.operator, entity.name.operator\r\n  settings: { vsclassificationtype: keyword - control }\r\n- scope: support.class, support.type, entity.name.type, entity.name.namespace, entity.other.attribute, entity.name.scope-resolution, entity.name.class\r\n  settings: { vsclassificationtype: type }\r\n\r\n- scope: string, punctuation.definition.string, constant.character\r\n  settings: { vsclassificationtype: string }\r\n- scope: keyword.control.anchor.regexp, keyword.other.back-reference.regexp, keyword.operator.quantifier.regexp, keyword.operator.or.regexp, keyword.operator.negation.regexp, punctuation.definition.group.regexp, punctuation.definition.group.assertion.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp, punctuation.definition.group.capture.regexp, punctuation.definition.character-class.regexp, constant.other.character-class.range.regexp\r\n  settings: { vsclassificationtype: string }\r\n\r\n- scope: constant.numeric, meta.delimiter.decimal.period.ts, constant.language.nan.ts, constant.language.infinity.ts\r\n  settings: { vsclassificationtype: number }\r\n\r\n- scope: keyword.operator, storage.type.function.arrow.ts\r\n  settings: { vsclassificationtype: operator }\r\n\r\n- scope: meta.brace.angle.ts, meta.brace.round.ts, meta.brace.square.ts, punctuation, constant.language.import-export-all.ts, meta.delimiter.object.comma.ts\r\n  settings: { vsclassificationtype: punctuation }\r\n\r\n- scope: comment, comment.block.ts, comment.line.double-slash.ts, punctuation.definition.comment.ts\r\n  settings: { vsclassificationtype: comment }\r\n- scope: comment.block.documentation.ts, other.meta.jsdoc, other.description.jsdoc\r\n  settings: { vsclassificationtype: comment }\r\n- scope: entity.name.type.instance.jsdoc\r\n  settings: { vsclassificationtype: identifier }\r\n\r\n- scope: entity.name.type.class.ts\r\n  settings: { vsclassificationtype: class name }\r\n\r\n- scope: entity.name.type.module.ts\r\n  settings: { vsclassificationtype: module name }\r\n\r\n- scope: entity.name.type.enum.ts\r\n  settings: { vsclassificationtype: enum name }\r\n\r\n- scope: meta.template.expression.ts, entity.other.inherited-class.ts\r\n  settings: { vsclassificationtype: identifier }\r\n- scope: variable, meta.definition.variable.name, support.variable, entity.name.variable, constant.other.placeholder\r\n  settings: { vsclassificationtype: local name }\r\n- scope: entity.name.function, support.function, support.constant.handlebars, source.powershell variable.other.member, entity.name.operator.custom-literal\r\n  settings: { vsclassificationtype: method name }\r\n\r\n- scope: variable.language.arguments.ts, support.type.object\r\n  settings: { vsclassificationtype: identifier }\r\n\r\n- scope: entity.name.tag.inline, entity.name.tag.directive\r\n  settings: { vsclassificationtype: HTML Element Name }\r\n\r\n- scope: entity.other.attribute-name\r\n  settings: { vsclassificationtype: HTML Attribute Name }\r\n\r\n- scope: meta.tag string.quoted, meta.tag string.quoted punctuation.definition.string, meta.tag string.quoted\r\n  settings: { vsclassificationtype: string }\r\n\r\n- scope: meta.object-literal.key\r\n  settings: { vsclassificationtype: parameter name }\r\n\r\n- scope: constant.character.escape\r\n  settings: { vsclassificationtype: string - escape character }\r\n\r\n- scope: entity.name.label\r\n  settings: { vsclassificationtype: label name }\r\n...\r\n"
  },
  {
    "path": "TypeScript.tmLanguage",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>name</key>\n    <string>TypeScript</string>\n    <key>scopeName</key>\n    <string>source.ts</string>\n    <key>fileTypes</key>\n    <array>\n      <string>ts</string>\n    </array>\n    <key>uuid</key>\n    <string>ef98eb90-bf9b-11e4-bb52-0800200c9a66</string>\n    <key>patterns</key>\n    <array>\n      <dict>\n        <key>include</key>\n        <string>#directives</string>\n      </dict>\n      <dict>\n        <key>include</key>\n        <string>#statements</string>\n      </dict>\n      <dict>\n        <key>include</key>\n        <string>#shebang</string>\n      </dict>\n    </array>\n    <key>repository</key>\n    <dict>\n      <key>shebang</key>\n      <dict>\n        <key>name</key>\n        <string>comment.line.shebang.ts</string>\n        <key>match</key>\n        <string>\\A(#!).*(?=$)</string>\n        <key>captures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.comment.ts</string>\n          </dict>\n        </dict>\n      </dict>\n      <key>statements</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#control-statement</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#after-operator-block-as-object-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#decl-block</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#label</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-semicolon</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n        </array>\n      </dict>\n      <key>declaration</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#decorator</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#var-expr</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#function-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#class-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#interface-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#enum-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#namespace-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-alias-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#import-equals-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#import-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#export-declaration</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n        </array>\n      </dict>\n      <key>control-statement</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#switch-statement</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#for-loop</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.trycatch.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.loop.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.label.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.loop.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.flow.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.switch.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#if-statement</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.conditional.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.with.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.other.debugger.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n        </array>\n      </dict>\n      <key>label</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.label.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.separator.label.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#decl-block</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.label.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.separator.label.ts</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>expression</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#expressionWithoutIdentifiers</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#identifiers</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#expressionPunctuations</string>\n          </dict>\n        </array>\n      </dict>\n      <key>expressionWithoutIdentifiers</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#regex</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#function-expression</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#class-expression</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#arrow-function</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#paren-expression-possibly-arrow</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#cast</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#ternary-expression</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#new-expr</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#instanceof-expr</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#object-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#expression-operators</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#function-call</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#support-objects</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#paren-expression</string>\n          </dict>\n        </array>\n      </dict>\n      <key>expressionPunctuations</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-accessor</string>\n          </dict>\n        </array>\n      </dict>\n      <key>decorator</key>\n      <dict>\n        <key>name</key>\n        <string>meta.decorator.ts</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))\\@</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.decorator.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?=\\s)</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n        </array>\n      </dict>\n      <key>var-expr</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.var.expr.ts</string>\n            <key>begin</key>\n            <string>(?=(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))</string>\n            <key>end</key>\n            <string>(?!(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?&lt;!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>begin</key>\n                <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>keyword.control.export.ts</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>storage.modifier.ts</string>\n                  </dict>\n                  <key>3</key>\n                  <dict>\n                    <key>name</key>\n                    <string>storage.type.ts</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?=\\S)</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#destructuring-variable</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#var-single-variable</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#variable-initializer</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>(,)\\s*(?=$|\\/\\/)</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.separator.comma.ts</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?&lt;!,)(((?==|;|}|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|^\\s*$))|((?&lt;=\\S)(?=\\s*$)))</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#single-line-comment-consuming-line-ending</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#comment</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#destructuring-variable</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#var-single-variable</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#punctuation-comma</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#punctuation-comma</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.var.expr.ts</string>\n            <key>begin</key>\n            <string>(?=(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.export.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?!(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?&lt;!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>begin</key>\n                <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>keyword.control.export.ts</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>storage.modifier.ts</string>\n                  </dict>\n                  <key>3</key>\n                  <dict>\n                    <key>name</key>\n                    <string>storage.type.ts</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?=\\S)</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#destructuring-const</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#var-single-const</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#variable-initializer</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>(,)\\s*(?=$|\\/\\/)</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.separator.comma.ts</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?&lt;!,)(((?==|;|}|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|^\\s*$))|((?&lt;=\\S)(?=\\s*$)))</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#single-line-comment-consuming-line-ending</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#comment</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#destructuring-const</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#var-single-const</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#punctuation-comma</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#punctuation-comma</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.var.expr.ts</string>\n            <key>begin</key>\n            <string>(?=(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.export.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?!(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?&lt;!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>begin</key>\n                <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>keyword.control.export.ts</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>storage.modifier.ts</string>\n                  </dict>\n                  <key>3</key>\n                  <dict>\n                    <key>name</key>\n                    <string>storage.type.ts</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?=\\S)</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#var-single-const</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#variable-initializer</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>(,)\\s*((?!\\S)|(?=\\/\\/))</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.separator.comma.ts</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?&lt;!,)(((?==|;|}|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|^\\s*$))|((?&lt;=\\S)(?=\\s*$)))</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#single-line-comment-consuming-line-ending</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#comment</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#var-single-const</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#punctuation-comma</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#punctuation-comma</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>var-single-variable</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.var-single-variable.expr.ts</string>\n            <key>begin</key>\n            <string>(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s*\n# function assignment |\n(=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)) |\n# typeannotation is fn type: &lt; | () | (... | (param: | (param, | (param? | (param= | (param) =&gt;\n(:\\s*(\n  (&lt;) |\n  ([(]\\s*(\n    ([)]) |\n    (\\.\\.\\.) |\n    ([_$[:alnum:]]+\\s*(\n      ([:,?=])|\n      ([)]\\s*=&gt;)\n    ))\n  ))\n)) |\n(:\\s*(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((&lt;\\s*$)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=&gt;|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(&lt;[^&lt;&gt;]*&gt;)|[^&lt;&gt;(),=])+=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.definition.variable.ts entity.name.function.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.definiteassignment.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=$|^|[;,=}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#var-single-variable-type-annotation</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.var-single-variable.expr.ts</string>\n            <key>begin</key>\n            <string>([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.definition.variable.ts variable.other.constant.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.definiteassignment.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=$|^|[;,=}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#var-single-variable-type-annotation</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.var-single-variable.expr.ts</string>\n            <key>begin</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)(\\!)?</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.definition.variable.ts variable.other.readwrite.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.definiteassignment.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=$|^|[;,=}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#var-single-variable-type-annotation</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>var-single-const</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.var-single-variable.expr.ts</string>\n            <key>begin</key>\n            <string>(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n# function assignment |\n(=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)) |\n# typeannotation is fn type: &lt; | () | (... | (param: | (param, | (param? | (param= | (param) =&gt;\n(:\\s*(\n  (&lt;) |\n  ([(]\\s*(\n    ([)]) |\n    (\\.\\.\\.) |\n    ([_$[:alnum:]]+\\s*(\n      ([:,?=])|\n      ([)]\\s*=&gt;)\n    ))\n  ))\n)) |\n(:\\s*(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((&lt;\\s*$)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=&gt;|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(&lt;[^&lt;&gt;]*&gt;)|[^&lt;&gt;(),=])+=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=$|^|[;,=}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#var-single-variable-type-annotation</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.var-single-variable.expr.ts</string>\n            <key>begin</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.definition.variable.ts variable.other.constant.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=$|^|[;,=}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#var-single-variable-type-annotation</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>var-single-variable-type-annotation</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#type-annotation</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n        </array>\n      </dict>\n      <key>destructuring-variable</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.object-binding-pattern-variable.ts</string>\n            <key>begin</key>\n            <string>(?&lt;!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)</string>\n            <key>end</key>\n            <string>(?=$|^|[;,=}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#object-binding-pattern</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-annotation</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.array-binding-pattern-variable.ts</string>\n            <key>begin</key>\n            <string>(?&lt;!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)</string>\n            <key>end</key>\n            <string>(?=$|^|[;,=}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#array-binding-pattern</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-annotation</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>destructuring-const</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.object-binding-pattern-variable.ts</string>\n            <key>begin</key>\n            <string>(?&lt;!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)</string>\n            <key>end</key>\n            <string>(?=$|^|[;,=}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#object-binding-pattern-const</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-annotation</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.array-binding-pattern-variable.ts</string>\n            <key>begin</key>\n            <string>(?&lt;!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)</string>\n            <key>end</key>\n            <string>(?=$|^|[;,=}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#array-binding-pattern-const</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-annotation</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>object-binding-element</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?x)(?=((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))</string>\n            <key>end</key>\n            <string>(?=,|\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#object-binding-element-propertyName</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#binding-element</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#object-binding-pattern</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#destructuring-variable-rest</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n        </array>\n      </dict>\n      <key>object-binding-element-const</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?x)(?=((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))</string>\n            <key>end</key>\n            <string>(?=,|\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#object-binding-element-propertyName</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#binding-element-const</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#object-binding-pattern-const</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#destructuring-variable-rest-const</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n        </array>\n      </dict>\n      <key>object-binding-element-propertyName</key>\n      <dict>\n        <key>begin</key>\n        <string>(?x)(?=((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))</string>\n        <key>end</key>\n        <string>(:)</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.destructuring.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#array-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#numeric-literal</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>variable.object.property.ts</string>\n            <key>match</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)</string>\n          </dict>\n        </array>\n      </dict>\n      <key>binding-element</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#numeric-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#regex</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#object-binding-pattern</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#array-binding-pattern</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#destructuring-variable-rest</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n        </array>\n      </dict>\n      <key>binding-element-const</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#numeric-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#regex</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#object-binding-pattern-const</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#array-binding-pattern-const</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#destructuring-variable-rest-const</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n        </array>\n      </dict>\n      <key>destructuring-variable-rest</key>\n      <dict>\n        <key>match</key>\n        <string>(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)</string>\n        <key>captures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>meta.definition.variable.ts variable.other.readwrite.ts</string>\n          </dict>\n        </dict>\n      </dict>\n      <key>destructuring-variable-rest-const</key>\n      <dict>\n        <key>match</key>\n        <string>(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)</string>\n        <key>captures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>meta.definition.variable.ts variable.other.constant.ts</string>\n          </dict>\n        </dict>\n      </dict>\n      <key>object-binding-pattern</key>\n      <dict>\n        <key>begin</key>\n        <string>(?:(\\.\\.\\.)\\s*)?(\\{)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.object.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.object.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#object-binding-element</string>\n          </dict>\n        </array>\n      </dict>\n      <key>object-binding-pattern-const</key>\n      <dict>\n        <key>begin</key>\n        <string>(?:(\\.\\.\\.)\\s*)?(\\{)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.object.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.object.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#object-binding-element-const</string>\n          </dict>\n        </array>\n      </dict>\n      <key>array-binding-pattern</key>\n      <dict>\n        <key>begin</key>\n        <string>(?:(\\.\\.\\.)\\s*)?(\\[)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.array.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\]</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.array.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#binding-element</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n        </array>\n      </dict>\n      <key>array-binding-pattern-const</key>\n      <dict>\n        <key>begin</key>\n        <string>(?:(\\.\\.\\.)\\s*)?(\\[)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.array.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\]</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.array.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#binding-element-const</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n        </array>\n      </dict>\n      <key>parameter-name</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?&lt;!=|:)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)) |\n# typeannotation is fn type: &lt; | () | (... | (param: | (param, | (param? | (param= | (param) =&gt;\n(:\\s*(\n  (&lt;) |\n  ([(]\\s*(\n    ([)]) |\n    (\\.\\.\\.) |\n    ([_$[:alnum:]]+\\s*(\n      ([:,?=])|\n      ([)]\\s*=&gt;)\n    ))\n  ))\n)) |\n(:\\s*(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((&lt;\\s*$)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=&gt;|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(&lt;[^&lt;&gt;]*&gt;)|[^&lt;&gt;(),=])+=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.rest.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.ts variable.language.this.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.ts</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.optional.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?&lt;!=|:)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.rest.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.ts variable.language.this.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.ts</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.optional.ts</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>destructuring-parameter</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.parameter.object-binding-pattern.ts</string>\n            <key>begin</key>\n            <string>(?&lt;!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.rest.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.binding-pattern.object.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\}</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.binding-pattern.object.ts</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#parameter-object-binding-element</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.paramter.array-binding-pattern.ts</string>\n            <key>begin</key>\n            <string>(?&lt;!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.rest.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.binding-pattern.array.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\]</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.binding-pattern.array.ts</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#parameter-binding-element</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#punctuation-comma</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>parameter-object-binding-element</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?x)(?=((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))</string>\n            <key>end</key>\n            <string>(?=,|\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#object-binding-element-propertyName</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#parameter-binding-element</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#paren-expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#parameter-object-binding-pattern</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#destructuring-parameter-rest</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n        </array>\n      </dict>\n      <key>parameter-binding-element</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#numeric-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#regex</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#parameter-object-binding-pattern</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#parameter-array-binding-pattern</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#destructuring-parameter-rest</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n        </array>\n      </dict>\n      <key>destructuring-parameter-rest</key>\n      <dict>\n        <key>match</key>\n        <string>(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)</string>\n        <key>captures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>variable.parameter.ts</string>\n          </dict>\n        </dict>\n      </dict>\n      <key>parameter-object-binding-pattern</key>\n      <dict>\n        <key>begin</key>\n        <string>(?:(\\.\\.\\.)\\s*)?(\\{)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.object.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.object.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#parameter-object-binding-element</string>\n          </dict>\n        </array>\n      </dict>\n      <key>parameter-array-binding-pattern</key>\n      <dict>\n        <key>begin</key>\n        <string>(?:(\\.\\.\\.)\\s*)?(\\[)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.array.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\]</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.array.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#parameter-binding-element</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n        </array>\n      </dict>\n      <key>field-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.field.declaration.ts</string>\n        <key>begin</key>\n        <string>(?x)(?&lt;!\\()(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(readonly)\\s+)?(?=\\s*((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?&lt;=\\})</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-annotation</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#array-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#numeric-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s*\n# function assignment |\n(=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)) |\n# typeannotation is fn type: &lt; | () | (... | (param: | (param, | (param? | (param= | (param) =&gt;\n(:\\s*(\n  (&lt;) |\n  ([(]\\s*(\n    ([)]) |\n    (\\.\\.\\.) |\n    ([_$[:alnum:]]+\\s*(\n      ([:,?=])|\n      ([)]\\s*=&gt;)\n    ))\n  ))\n)) |\n(:\\s*(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((&lt;\\s*$)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=&gt;|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(&lt;[^&lt;&gt;]*&gt;)|[^&lt;&gt;(),=])+=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.definition.property.ts entity.name.function.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.optional.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.definiteassignment.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.definition.property.ts variable.object.property.ts</string>\n            <key>match</key>\n            <string>\\#?[_$[:alpha:]][_$[:alnum:]]*</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.optional.ts</string>\n            <key>match</key>\n            <string>\\?</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.definiteassignment.ts</string>\n            <key>match</key>\n            <string>\\!</string>\n          </dict>\n        </array>\n      </dict>\n      <key>variable-initializer</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=&gt;\\s*$)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=$|^|[,);}\\]]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;!=|!)(=)(?!=)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=[,);}\\]]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+))|(?=^\\s*$)|(?&lt;![\\|\\&amp;\\+\\-\\*\\/])(?&lt;=\\S)(?&lt;!=)(?=\\s*$)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>function-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.function.ts</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?&lt;=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.export.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.ts</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.async.ts</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.function.ts</string>\n          </dict>\n          <key>5</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.generator.asterisk.ts</string>\n          </dict>\n          <key>6</key>\n          <dict>\n            <key>name</key>\n            <string>meta.definition.function.ts entity.name.function.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?&lt;=\\})</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#function-name</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#function-body</string>\n          </dict>\n        </array>\n      </dict>\n      <key>function-expression</key>\n      <dict>\n        <key>name</key>\n        <string>meta.function.expression.ts</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?&lt;=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.async.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.function.ts</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.generator.asterisk.ts</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>meta.definition.function.ts entity.name.function.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?=;)|(?&lt;=\\})</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#function-name</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#single-line-comment-consuming-line-ending</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#function-body</string>\n          </dict>\n        </array>\n      </dict>\n      <key>function-name</key>\n      <dict>\n        <key>name</key>\n        <string>meta.definition.function.ts entity.name.function.ts</string>\n        <key>match</key>\n        <string>[_$[:alpha:]][_$[:alnum:]]*</string>\n      </dict>\n      <key>function-body</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-parameters</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#function-parameters</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#return-type</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-function-return-type</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#decl-block</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.generator.asterisk.ts</string>\n            <key>match</key>\n            <string>\\*</string>\n          </dict>\n        </array>\n      </dict>\n      <key>method-declaration</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.method.declaration.ts</string>\n            <key>begin</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.async.ts</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\}|;|,|$)|(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#method-declaration-name</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#function-body</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.method.declaration.ts</string>\n            <key>begin</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*))?[\\(])</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.async.ts</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.new.ts</string>\n              </dict>\n              <key>6</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.generator.asterisk.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\}|;|,|$)|(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#method-declaration-name</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#function-body</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.method.declaration.ts</string>\n            <key>begin</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*))?[\\(])</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.async.ts</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.property.ts</string>\n              </dict>\n              <key>6</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.generator.asterisk.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\}|;|,|$)|(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#method-declaration-name</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#function-body</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>object-literal-method-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.method.declaration.ts</string>\n        <key>begin</key>\n        <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*))?[\\(])</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.async.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.property.ts</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.generator.asterisk.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?=\\}|;|,)|(?&lt;=\\})</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#method-declaration-name</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#function-body</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*))?[\\(])</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.async.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.property.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.generator.asterisk.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\(|\\&lt;)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#method-declaration-name</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>method-declaration-name</key>\n      <dict>\n        <key>begin</key>\n        <string>(?x)(?=((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\&lt;])</string>\n        <key>end</key>\n        <string>(?=\\(|\\&lt;)</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#array-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#numeric-literal</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.definition.method.ts entity.name.function.ts</string>\n            <key>match</key>\n            <string>[_$[:alpha:]][_$[:alnum:]]*</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.optional.ts</string>\n            <key>match</key>\n            <string>\\?</string>\n          </dict>\n        </array>\n      </dict>\n      <key>arrow-function</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.arrow.ts</string>\n            <key>match</key>\n            <string>(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==&gt;)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.async.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.arrow.ts</string>\n            <key>begin</key>\n            <string>(?x) (?:\n  (?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(\\basync)\n)? ((?&lt;![})!\\]])\\s*\n  (?=\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  )\n)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.async.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?==&gt;|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-parameters</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#function-parameters</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#arrow-return-type</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#possibly-arrow-return-type</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.arrow.ts</string>\n            <key>begin</key>\n            <string>=&gt;</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.function.arrow.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>((?&lt;=\\}|\\S)(?&lt;!=&gt;)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#single-line-comment-consuming-line-ending</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#decl-block</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>indexer-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.indexer.declaration.ts</string>\n        <key>begin</key>\n        <string>(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.square.ts</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>variable.parameter.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(\\])\\s*(\\?\\s*)?|$</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.square.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.optional.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#type-annotation</string>\n          </dict>\n        </array>\n      </dict>\n      <key>indexer-mapped-type-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.indexer.mappedtype.declaration.ts</string>\n        <key>begin</key>\n        <string>(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.type.modifier.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.ts</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.square.ts</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>entity.name.type.ts</string>\n          </dict>\n          <key>5</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.in.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(\\])([+-])?\\s*(\\?\\s*)?|$</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.square.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.type.modifier.ts</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.optional.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(as)\\s+</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.as.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n        </array>\n      </dict>\n      <key>function-parameters</key>\n      <dict>\n        <key>name</key>\n        <string>meta.parameters.ts</string>\n        <key>begin</key>\n        <string>\\(</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.parameters.begin.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\)</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.parameters.end.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#function-parameters-body</string>\n          </dict>\n        </array>\n      </dict>\n      <key>function-parameters-body</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#decorator</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#destructuring-parameter</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#parameter-name</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#parameter-type-annotation</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>punctuation.separator.parameter.ts</string>\n            <key>match</key>\n            <string>,</string>\n          </dict>\n        </array>\n      </dict>\n      <key>class-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.class.ts</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.export.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.ts</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.ts</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.class.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?&lt;=\\})</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#class-declaration-or-expression-patterns</string>\n          </dict>\n        </array>\n      </dict>\n      <key>class-expression</key>\n      <dict>\n        <key>name</key>\n        <string>meta.class.ts</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[&lt;{]|\\/[\\/*])</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.class.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?&lt;=\\})</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#class-declaration-or-expression-patterns</string>\n          </dict>\n        </array>\n      </dict>\n      <key>class-declaration-or-expression-patterns</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#class-or-interface-heritage</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>[_$[:alpha:]][_$[:alnum:]]*</string>\n            <key>captures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.class.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-parameters</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#class-or-interface-body</string>\n          </dict>\n        </array>\n      </dict>\n      <key>interface-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.interface.ts</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.export.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.ts</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.ts</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.interface.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?&lt;=\\})</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#class-or-interface-heritage</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>[_$[:alpha:]][_$[:alnum:]]*</string>\n            <key>captures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.interface.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-parameters</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#class-or-interface-body</string>\n          </dict>\n        </array>\n      </dict>\n      <key>class-or-interface-heritage</key>\n      <dict>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?=\\{)</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#class-or-interface-heritage</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-parameters</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#expressionWithoutIdentifiers</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.module.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.other.inherited-class.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#expressionPunctuations</string>\n          </dict>\n        </array>\n      </dict>\n      <key>class-or-interface-body</key>\n      <dict>\n        <key>begin</key>\n        <string>\\{</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#decorator</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;=:)\\s*</string>\n            <key>end</key>\n            <string>(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#method-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#indexer-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#field-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-annotation</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#access-modifier</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#property-accessor</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#async-modifier</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#after-operator-block-as-object-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#decl-block</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-semicolon</string>\n          </dict>\n        </array>\n      </dict>\n      <key>access-modifier</key>\n      <dict>\n        <key>name</key>\n        <string>storage.modifier.ts</string>\n        <key>match</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n      </dict>\n      <key>property-accessor</key>\n      <dict>\n        <key>name</key>\n        <string>storage.type.property.ts</string>\n        <key>match</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n      </dict>\n      <key>async-modifier</key>\n      <dict>\n        <key>name</key>\n        <string>storage.modifier.async.ts</string>\n        <key>match</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n      </dict>\n      <key>enum-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.enum.declaration.ts</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.export.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.ts</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.ts</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.enum.ts</string>\n          </dict>\n          <key>5</key>\n          <dict>\n            <key>name</key>\n            <string>entity.name.type.enum.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?&lt;=\\})</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>\\{</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\}</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.ts</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>([_$[:alpha:]][_$[:alnum:]]*)</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>variable.other.enummember.ts</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?=,|\\}|$)</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#comment</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#variable-initializer</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))</string>\n                <key>end</key>\n                <string>(?=,|\\}|$)</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#string</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#array-literal</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#comment</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#variable-initializer</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#punctuation-comma</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>namespace-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.namespace.declaration.ts</string>\n        <key>begin</key>\n        <string>(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.export.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.ts</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.namespace.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?&lt;=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>entity.name.type.module.ts</string>\n            <key>match</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-accessor</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#decl-block</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-alias-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.type.declaration.ts</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.export.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.ts</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.type.ts</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>entity.name.type.alias.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-parameters</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.intrinsic.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(=)\\s*</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>import-equals-declaration</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.import-equals.external.ts</string>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.export.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.import.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.type.ts</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.readwrite.alias.ts</string>\n              </dict>\n              <key>6</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.ts</string>\n              </dict>\n              <key>7</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.require.ts</string>\n              </dict>\n              <key>8</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.round.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.round.ts</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#string</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.import-equals.internal.ts</string>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.export.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.import.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.type.ts</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.readwrite.alias.ts</string>\n              </dict>\n              <key>6</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=;|$|^)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#single-line-comment-consuming-line-ending</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>match</key>\n                <string>([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))</string>\n                <key>captures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>entity.name.type.module.ts</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.accessor.ts</string>\n                  </dict>\n                  <key>3</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.accessor.optional.ts</string>\n                  </dict>\n                </dict>\n              </dict>\n              <dict>\n                <key>name</key>\n                <string>variable.other.readwrite.ts</string>\n                <key>match</key>\n                <string>([_$[:alpha:]][_$[:alnum:]]*)</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>import-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.import.ts</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.export.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.ts</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.import.ts</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.type.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?&lt;!^import|[^\\._$[:alnum:]]import)(?=;|$|^)</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#single-line-comment-consuming-line-ending</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;=^import|[^\\._$[:alnum:]]import)(?!\\s*[\"'])</string>\n            <key>end</key>\n            <string>\\bfrom\\b</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.from.ts</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#import-export-declaration</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#import-export-declaration</string>\n          </dict>\n        </array>\n      </dict>\n      <key>export-declaration</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.export.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.as.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.namespace.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.module.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.export.default.ts</string>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.export.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.type.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.default.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#interface-declaration</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.export.ts</string>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.export.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.type.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#import-export-declaration</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>import-export-declaration</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#import-export-block</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.from.ts</string>\n            <key>match</key>\n            <string>\\bfrom\\b</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#import-export-assert-clause</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#import-export-clause</string>\n          </dict>\n        </array>\n      </dict>\n      <key>import-export-assert-clause</key>\n      <dict>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(with)|(assert))\\s*(\\{)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.with.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.assert.ts</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object-literal.key.ts</string>\n            <key>match</key>\n            <string>(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>punctuation.separator.key-value.ts</string>\n            <key>match</key>\n            <string>:</string>\n          </dict>\n        </array>\n      </dict>\n      <key>import-export-block</key>\n      <dict>\n        <key>name</key>\n        <string>meta.block.ts</string>\n        <key>begin</key>\n        <string>\\{</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#import-export-clause</string>\n          </dict>\n        </array>\n      </dict>\n      <key>import-export-clause</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)|((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*)|((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.type.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.default.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>constant.language.import-export-all.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.readwrite.ts</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>string.quoted.alias.ts</string>\n              </dict>\n              <key>12</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.as.ts</string>\n              </dict>\n              <key>13</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.default.ts</string>\n              </dict>\n              <key>14</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.readwrite.alias.ts</string>\n              </dict>\n              <key>15</key>\n              <dict>\n                <key>name</key>\n                <string>string.quoted.alias.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>constant.language.import-export-all.ts</string>\n            <key>match</key>\n            <string>\\*</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.default.ts</string>\n            <key>match</key>\n            <string>\\b(default)\\b</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?:(\\btype)\\s+)?(?:([_$[:alpha:]][_$[:alnum:]]*)|((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.type.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.readwrite.alias.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>string.quoted.alias.ts</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>switch-statement</key>\n      <dict>\n        <key>name</key>\n        <string>switch-statement.expr.ts</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?=\\bswitch\\s*\\()</string>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>switch-expression.expr.ts</string>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(switch)\\s*(\\()</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.switch.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.round.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.round.ts</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>switch-block.expr.ts</string>\n            <key>begin</key>\n            <string>\\{</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>name</key>\n                <string>case-clause.expr.ts</string>\n                <key>begin</key>\n                <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>keyword.control.switch.ts</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?=:)</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#expression</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>(:)\\s*(\\{)</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>case-clause.expr.ts punctuation.definition.section.case-statement.ts</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>meta.block.ts punctuation.definition.block.ts</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>\\}</string>\n                <key>endCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>meta.block.ts punctuation.definition.block.ts</string>\n                  </dict>\n                </dict>\n                <key>contentName</key>\n                <string>meta.block.ts</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#statements</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>match</key>\n                <string>(:)</string>\n                <key>captures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>case-clause.expr.ts punctuation.definition.section.case-statement.ts</string>\n                  </dict>\n                </dict>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#statements</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>for-loop</key>\n      <dict>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.loop.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?&lt;=\\))</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.loop.ts</string>\n            <key>match</key>\n            <string>await</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>\\(</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.round.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.round.ts</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#var-expr</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#punctuation-semicolon</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>if-statement</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))</string>\n            <key>end</key>\n            <string>(?=;|$|\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(if)\\s*(\\()</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>keyword.control.conditional.ts</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>meta.brace.round.ts</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>\\)</string>\n                <key>endCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>meta.brace.round.ts</string>\n                  </dict>\n                </dict>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#expression</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>name</key>\n                <string>string.regexp.ts</string>\n                <key>begin</key>\n                <string>(?&lt;=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuvy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.definition.string.begin.ts</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(/)([dgimsuvy]*)</string>\n                <key>endCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.definition.string.end.ts</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>keyword.other.ts</string>\n                  </dict>\n                </dict>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#regexp</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#statements</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>decl-block</key>\n      <dict>\n        <key>name</key>\n        <string>meta.block.ts</string>\n        <key>begin</key>\n        <string>\\{</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#statements</string>\n          </dict>\n        </array>\n      </dict>\n      <key>after-operator-block-as-object-literal</key>\n      <dict>\n        <key>name</key>\n        <string>meta.objectliteral.ts</string>\n        <key>begin</key>\n        <string>(?&lt;!\\+\\+|--)(?&lt;=[:=(,\\[?+!&gt;]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&amp;&amp;|\\|\\||\\*)\\s*(\\{)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#object-member</string>\n          </dict>\n        </array>\n      </dict>\n      <key>object-literal</key>\n      <dict>\n        <key>name</key>\n        <string>meta.objectliteral.ts</string>\n        <key>begin</key>\n        <string>\\{</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#object-member</string>\n          </dict>\n        </array>\n      </dict>\n      <key>object-member</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#object-literal-method-declaration</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.ts meta.object-literal.key.ts</string>\n            <key>begin</key>\n            <string>(?=\\[)</string>\n            <key>end</key>\n            <string>(?=:)|((?&lt;=[\\]])(?=\\s*[\\(\\&lt;]))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#array-literal</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.ts meta.object-literal.key.ts</string>\n            <key>begin</key>\n            <string>(?=[\\'\\\"\\`])</string>\n            <key>end</key>\n            <string>(?=:)|((?&lt;=[\\'\\\"\\`])(?=((\\s*[\\(\\&lt;,}])|(\\s+(as|satisifies)\\s+))))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#string</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.ts meta.object-literal.key.ts</string>\n            <key>begin</key>\n            <string>(?x)(?=(\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$)))</string>\n            <key>end</key>\n            <string>(?=:)|(?=\\s*([\\(\\&lt;,}])|(\\s+as|satisifies\\s+))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#numeric-literal</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.method.declaration.ts</string>\n            <key>begin</key>\n            <string>(?&lt;=[\\]\\'\\\"\\`])(?=\\s*[\\(\\&lt;])</string>\n            <key>end</key>\n            <string>(?=\\}|;|,)|(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#function-body</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.ts</string>\n            <key>match</key>\n            <string>(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)</string>\n            <key>captures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.object-literal.key.ts</string>\n              </dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>constant.numeric.decimal.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.ts</string>\n            <key>match</key>\n            <string>(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)))</string>\n            <key>captures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.object-literal.key.ts</string>\n              </dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.ts</string>\n            <key>match</key>\n            <string>(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)</string>\n            <key>captures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.object-literal.key.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.ts</string>\n            <key>begin</key>\n            <string>\\.\\.\\.</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.spread.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=,|\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.ts</string>\n            <key>match</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.readwrite.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(as)\\s+(const)(?=\\s*([,}]|$))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.as.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.ts</string>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(as)|(satisfies))\\s+</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.as.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.satisfies.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=[;),}\\]:?\\-\\+\\&gt;]|\\|\\||\\&amp;\\&amp;|\\!\\=\\=|$|^|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(as|satisifies)\\s+))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.ts</string>\n            <key>begin</key>\n            <string>(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)</string>\n            <key>end</key>\n            <string>(?=,|\\}|$|\\/\\/|\\/\\*)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.ts</string>\n            <key>begin</key>\n            <string>:</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.object-literal.key.ts punctuation.separator.key-value.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=,|\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>begin</key>\n                <string>(?&lt;=:)\\s*(async)?(?=\\s*(&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>storage.modifier.async.ts</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?&lt;=\\))</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#type-parameters</string>\n                  </dict>\n                  <dict>\n                    <key>begin</key>\n                    <string>\\(</string>\n                    <key>beginCaptures</key>\n                    <dict>\n                      <key>0</key>\n                      <dict>\n                        <key>name</key>\n                        <string>meta.brace.round.ts</string>\n                      </dict>\n                    </dict>\n                    <key>end</key>\n                    <string>\\)</string>\n                    <key>endCaptures</key>\n                    <dict>\n                      <key>0</key>\n                      <dict>\n                        <key>name</key>\n                        <string>meta.brace.round.ts</string>\n                      </dict>\n                    </dict>\n                    <key>patterns</key>\n                    <array>\n                      <dict>\n                        <key>include</key>\n                        <string>#expression-inside-possibly-arrow-parens</string>\n                      </dict>\n                    </array>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>(?&lt;=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>storage.modifier.async.ts</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>meta.brace.round.ts</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>\\)</string>\n                <key>endCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>meta.brace.round.ts</string>\n                  </dict>\n                </dict>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#expression-inside-possibly-arrow-parens</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>(?&lt;=:)\\s*(async)?\\s*(?=\\&lt;\\s*$)</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>storage.modifier.async.ts</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?&lt;=\\&gt;)</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#type-parameters</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>(?&lt;=\\&gt;)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>meta.brace.round.ts</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>\\)</string>\n                <key>endCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>meta.brace.round.ts</string>\n                  </dict>\n                </dict>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#expression-inside-possibly-arrow-parens</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#possibly-arrow-return-type</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#decl-block</string>\n          </dict>\n        </array>\n      </dict>\n      <key>ternary-expression</key>\n      <dict>\n        <key>begin</key>\n        <string>(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.ternary.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\s*(:)</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.ternary.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n        </array>\n      </dict>\n      <key>function-call</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?&lt;=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))(([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;)*(?&lt;!=)\\&gt;))*(?&lt;!=)\\&gt;)*(?&lt;!=)&gt;\\s*)?\\())</string>\n            <key>end</key>\n            <string>(?&lt;=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?&lt;=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))(([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;)*(?&lt;!=)\\&gt;))*(?&lt;!=)\\&gt;)*(?&lt;!=)&gt;\\s*)?\\())</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>name</key>\n                <string>meta.function-call.ts</string>\n                <key>begin</key>\n                <string>(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))</string>\n                <key>end</key>\n                <string>(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))(([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;)*(?&lt;!=)\\&gt;))*(?&lt;!=)\\&gt;)*(?&lt;!=)&gt;\\s*)?\\())</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#function-call-target</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#function-call-optionals</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-arguments</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#paren-expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?&lt;=[\\)]))(&lt;\\s*[\\{\\[\\(]\\s*$))</string>\n            <key>end</key>\n            <string>(?&lt;=\\&gt;)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?&lt;=[\\)]))(&lt;\\s*[\\{\\[\\(]\\s*$))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>name</key>\n                <string>meta.function-call.ts</string>\n                <key>begin</key>\n                <string>(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))</string>\n                <key>end</key>\n                <string>(?=(&lt;\\s*[\\{\\[\\(]\\s*$))</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#function-call-target</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#function-call-optionals</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-arguments</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>function-call-target</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#support-function-call-identifiers</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>entity.name.function.ts</string>\n            <key>match</key>\n            <string>(\\#?[_$[:alpha:]][_$[:alnum:]]*)</string>\n          </dict>\n        </array>\n      </dict>\n      <key>function-call-optionals</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.function-call.ts punctuation.accessor.optional.ts</string>\n            <key>match</key>\n            <string>\\?\\.</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.function-call.ts keyword.operator.definiteassignment.ts</string>\n            <key>match</key>\n            <string>\\!</string>\n          </dict>\n        </array>\n      </dict>\n      <key>support-function-call-identifiers</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#support-objects</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#object-identifiers</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-accessor</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.import.ts</string>\n            <key>match</key>\n            <string>(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))</string>\n          </dict>\n        </array>\n      </dict>\n      <key>new-expr</key>\n      <dict>\n        <key>name</key>\n        <string>new.expr.ts</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.new.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?&lt;=\\))|(?=[;),}\\]:?\\-\\+\\&gt;]|\\|\\||\\&amp;\\&amp;|\\!\\=\\=|$|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n        </array>\n      </dict>\n      <key>instanceof-expr</key>\n      <dict>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.instanceof.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?&lt;=\\))|(?=[;),}\\]:?\\-\\+\\&gt;]|\\|\\||\\&amp;\\&amp;|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&amp;\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n        </array>\n      </dict>\n      <key>paren-expression-possibly-arrow</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;=[(=,])\\s*(async)?(?=\\s*((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.async.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;=\\))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#paren-expression-possibly-arrow-with-typeparameters</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;=[(=,]|=&gt;|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*))?\\()|(&lt;)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)))\\s*$)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.async.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;=\\))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#paren-expression-possibly-arrow-with-typeparameters</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#possibly-arrow-return-type</string>\n          </dict>\n        </array>\n      </dict>\n      <key>paren-expression-possibly-arrow-with-typeparameters</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#type-parameters</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>\\(</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.round.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.round.ts</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#expression-inside-possibly-arrow-parens</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>expression-inside-possibly-arrow-parens</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#expressionWithoutIdentifiers</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#decorator</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#destructuring-parameter</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?&lt;!=|:)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)) |\n# typeannotation is fn type: &lt; | () | (... | (param: | (param, | (param? | (param= | (param) =&gt;\n(:\\s*(\n  (&lt;) |\n  ([(]\\s*(\n    ([)]) |\n    (\\.\\.\\.) |\n    ([_$[:alnum:]]+\\s*(\n      ([:,?=])|\n      ([)]\\s*=&gt;)\n    ))\n  ))\n)) |\n(:\\s*(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((&lt;\\s*$)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=&gt;|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(&lt;[^&lt;&gt;]*&gt;)|[^&lt;&gt;(),=])+=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.rest.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.ts variable.language.this.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.ts</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.optional.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?&lt;!=|:)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.rest.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.ts variable.language.this.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.ts</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.optional.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-annotation</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>punctuation.separator.parameter.ts</string>\n            <key>match</key>\n            <string>,</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#identifiers</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#expressionPunctuations</string>\n          </dict>\n        </array>\n      </dict>\n      <key>paren-expression</key>\n      <dict>\n        <key>begin</key>\n        <string>\\(</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.round.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\)</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.round.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n        </array>\n      </dict>\n      <key>cast</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>cast.expr.ts</string>\n            <key>match</key>\n            <string>\\s*(&lt;)\\s*(const)\\s*(&gt;)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.angle.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.angle.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>cast.expr.ts</string>\n            <key>begin</key>\n            <string>(?:(?&lt;!\\+\\+|--)(?&lt;=^return|[^\\._$[:alnum:]]return|^throw|[^\\._$[:alnum:]]throw|^yield|[^\\._$[:alnum:]]yield|^await|[^\\._$[:alnum:]]await|^default|[^\\._$[:alnum:]]default|[=(,:&gt;*?\\&amp;\\|\\^]|[^_$[:alnum:]](?:\\+\\+|\\-\\-)|[^\\+]\\+|[^\\-]\\-))\\s*(&lt;)(?!&lt;?\\=)(?!\\s*$)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.angle.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(\\&gt;)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.angle.ts</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>cast.expr.ts</string>\n            <key>begin</key>\n            <string>(?:(?&lt;=^))\\s*(&lt;)(?=[_$[:alpha:]][_$[:alnum:]]*\\s*&gt;)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.angle.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(\\&gt;)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.angle.ts</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>expression-operators</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.flow.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.flow.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\*</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.generator.asterisk.ts</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.flow.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.generator.asterisk.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.delete.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.in.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.of.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.instanceof.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.new.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#typeof-operator</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.void.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.as.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(as)|(satisfies))\\s+</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.as.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.satisfies.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=^|[;),}\\]:?\\-\\+\\&gt;]|\\|\\||\\&amp;\\&amp;|\\!\\=\\=|$|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(as|satisfies)\\s+)|(\\s+\\&lt;))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.spread.ts</string>\n            <key>match</key>\n            <string>\\.\\.\\.</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.assignment.compound.ts</string>\n            <key>match</key>\n            <string>\\*=|(?&lt;!\\()/=|%=|\\+=|\\-=</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.assignment.compound.bitwise.ts</string>\n            <key>match</key>\n            <string>\\&amp;=|\\^=|&lt;&lt;=|&gt;&gt;=|&gt;&gt;&gt;=|\\|=</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.bitwise.shift.ts</string>\n            <key>match</key>\n            <string>&lt;&lt;|&gt;&gt;&gt;|&gt;&gt;</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.comparison.ts</string>\n            <key>match</key>\n            <string>===|!==|==|!=</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.relational.ts</string>\n            <key>match</key>\n            <string>&lt;=|&gt;=|&lt;&gt;|&lt;|&gt;</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.logical.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.compound.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.arithmetic.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.logical.ts</string>\n            <key>match</key>\n            <string>\\!|&amp;&amp;|\\|\\||\\?\\?</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.bitwise.ts</string>\n            <key>match</key>\n            <string>\\&amp;|~|\\^|\\|</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.assignment.ts</string>\n            <key>match</key>\n            <string>\\=</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.decrement.ts</string>\n            <key>match</key>\n            <string>--</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.increment.ts</string>\n            <key>match</key>\n            <string>\\+\\+</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.arithmetic.ts</string>\n            <key>match</key>\n            <string>%|\\*|/|-|\\+</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))</string>\n            <key>end</key>\n            <string>(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.compound.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.arithmetic.ts</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.compound.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.arithmetic.ts</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>typeof-operator</key>\n      <dict>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.typeof.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?=[,);}\\]=&gt;:&amp;|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#type-arguments</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n        </array>\n      </dict>\n      <key>literal</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#numeric-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#boolean-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#null-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#undefined-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#numericConstant-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#array-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#this-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#super-literal</string>\n          </dict>\n        </array>\n      </dict>\n      <key>array-literal</key>\n      <dict>\n        <key>name</key>\n        <string>meta.array.literal.ts</string>\n        <key>begin</key>\n        <string>\\s*(\\[)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.square.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\]</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.square.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n        </array>\n      </dict>\n      <key>numeric-literal</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>constant.numeric.hex.ts</string>\n            <key>match</key>\n            <string>\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>constant.numeric.binary.ts</string>\n            <key>match</key>\n            <string>\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>constant.numeric.octal.ts</string>\n            <key>match</key>\n            <string>\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)\n(?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>constant.numeric.decimal.ts</string>\n              </dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.delimiter.decimal.period.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>meta.delimiter.decimal.period.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.ts</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>meta.delimiter.decimal.period.ts</string>\n              </dict>\n              <key>6</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.ts</string>\n              </dict>\n              <key>7</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.ts</string>\n              </dict>\n              <key>8</key>\n              <dict>\n                <key>name</key>\n                <string>meta.delimiter.decimal.period.ts</string>\n              </dict>\n              <key>9</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.ts</string>\n              </dict>\n              <key>10</key>\n              <dict>\n                <key>name</key>\n                <string>meta.delimiter.decimal.period.ts</string>\n              </dict>\n              <key>11</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.ts</string>\n              </dict>\n              <key>12</key>\n              <dict>\n                <key>name</key>\n                <string>meta.delimiter.decimal.period.ts</string>\n              </dict>\n              <key>13</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.ts</string>\n              </dict>\n              <key>14</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.ts</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>boolean-literal</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>constant.language.boolean.true.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>constant.language.boolean.false.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n        </array>\n      </dict>\n      <key>null-literal</key>\n      <dict>\n        <key>name</key>\n        <string>constant.language.null.ts</string>\n        <key>match</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n      </dict>\n      <key>this-literal</key>\n      <dict>\n        <key>name</key>\n        <string>variable.language.this.ts</string>\n        <key>match</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))this\\b(?!\\$)</string>\n      </dict>\n      <key>super-literal</key>\n      <dict>\n        <key>name</key>\n        <string>variable.language.super.ts</string>\n        <key>match</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))super\\b(?!\\$)</string>\n      </dict>\n      <key>undefined-literal</key>\n      <dict>\n        <key>name</key>\n        <string>constant.language.undefined.ts</string>\n        <key>match</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n      </dict>\n      <key>numericConstant-literal</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>constant.language.nan.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>constant.language.infinity.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n        </array>\n      </dict>\n      <key>support-objects</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>variable.language.arguments.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(arguments)\\b(?!\\$)</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>support.class.builtin.ts</string>\n            <key>match</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(Array|ArrayBuffer|Atomics|BigInt|BigInt64Array|BigUint64Array|Boolean|DataView|Date|Float32Array\n  |Float64Array|Function|Generator|GeneratorFunction|Int8Array|Int16Array|Int32Array|Intl|Map|Number|Object|Proxy\n  |Reflect|RegExp|Set|SharedArrayBuffer|SIMD|String|Symbol|TypedArray\n  |Uint8Array|Uint16Array|Uint32Array|Uint8ClampedArray|WeakMap|WeakSet)\\b(?!\\$)</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>support.class.error.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))((Eval|Internal|Range|Reference|Syntax|Type|URI)?Error)\\b(?!\\$)</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>support.class.promise.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(Promise)\\b(?!\\$)</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>support.function.ts</string>\n            <key>match</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(clear(Interval|Timeout)|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|eval|\n  isFinite|isNaN|parseFloat|parseInt|require|set(Interval|Timeout)|super|unescape|uneval)(?=\\s*\\()</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(Math)(?:\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n  (abs|acos|acosh|asin|asinh|atan|atan2|atanh|cbrt|ceil|clz32|cos|cosh|exp|\n  expm1|floor|fround|hypot|imul|log|log10|log1p|log2|max|min|pow|random|\n  round|sign|sin|sinh|sqrt|tan|tanh|trunc)\n  |\n  (E|LN10|LN2|LOG10E|LOG2E|PI|SQRT1_2|SQRT2)))?\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>support.constant.math.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>support.function.math.ts</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>support.constant.property.math.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(console)(?:\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\n  assert|clear|count|debug|dir|error|group|groupCollapsed|groupEnd|info|log\n  |profile|profileEnd|table|time|timeEnd|timeStamp|trace|warn))?\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>support.class.console.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>support.function.console.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(JSON)(?:\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(parse|stringify))?\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>support.constant.json.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>support.function.json.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.import.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>support.variable.property.importmeta.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.new.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>support.variable.property.target.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n  (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\\())\n  |\n  (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>support.variable.property.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>support.constant.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x) (?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.)) \\b (?:\n  (document|event|navigator|performance|screen|window)\n  |\n  (AnalyserNode|ArrayBufferView|Attr|AudioBuffer|AudioBufferSourceNode|AudioContext|AudioDestinationNode|AudioListener\n  |AudioNode|AudioParam|BatteryManager|BeforeUnloadEvent|BiquadFilterNode|Blob|BufferSource|ByteString|CSS|CSSConditionRule\n  |CSSCounterStyleRule|CSSGroupingRule|CSSMatrix|CSSMediaRule|CSSPageRule|CSSPrimitiveValue|CSSRule|CSSRuleList|CSSStyleDeclaration\n  |CSSStyleRule|CSSStyleSheet|CSSSupportsRule|CSSValue|CSSValueList|CanvasGradient|CanvasImageSource|CanvasPattern\n  |CanvasRenderingContext2D|ChannelMergerNode|ChannelSplitterNode|CharacterData|ChromeWorker|CloseEvent|Comment|CompositionEvent\n  |Console|ConvolverNode|Coordinates|Credential|CredentialsContainer|Crypto|CryptoKey|CustomEvent|DOMError|DOMException\n  |DOMHighResTimeStamp|DOMImplementation|DOMString|DOMStringList|DOMStringMap|DOMTimeStamp|DOMTokenList|DataTransfer\n  |DataTransferItem|DataTransferItemList|DedicatedWorkerGlobalScope|DelayNode|DeviceProximityEvent|DirectoryEntry\n  |DirectoryEntrySync|DirectoryReader|DirectoryReaderSync|Document|DocumentFragment|DocumentTouch|DocumentType|DragEvent\n  |DynamicsCompressorNode|Element|Entry|EntrySync|ErrorEvent|Event|EventListener|EventSource|EventTarget|FederatedCredential\n  |FetchEvent|File|FileEntry|FileEntrySync|FileException|FileList|FileReader|FileReaderSync|FileSystem|FileSystemSync\n  |FontFace|FormData|GainNode|Gamepad|GamepadButton|GamepadEvent|Geolocation|GlobalEventHandlers|HTMLAnchorElement\n  |HTMLAreaElement|HTMLAudioElement|HTMLBRElement|HTMLBaseElement|HTMLBodyElement|HTMLButtonElement|HTMLCanvasElement\n  |HTMLCollection|HTMLContentElement|HTMLDListElement|HTMLDataElement|HTMLDataListElement|HTMLDialogElement|HTMLDivElement\n  |HTMLDocument|HTMLElement|HTMLEmbedElement|HTMLFieldSetElement|HTMLFontElement|HTMLFormControlsCollection|HTMLFormElement\n  |HTMLHRElement|HTMLHeadElement|HTMLHeadingElement|HTMLHtmlElement|HTMLIFrameElement|HTMLImageElement|HTMLInputElement\n  |HTMLKeygenElement|HTMLLIElement|HTMLLabelElement|HTMLLegendElement|HTMLLinkElement|HTMLMapElement|HTMLMediaElement\n  |HTMLMetaElement|HTMLMeterElement|HTMLModElement|HTMLOListElement|HTMLObjectElement|HTMLOptGroupElement|HTMLOptionElement\n  |HTMLOptionsCollection|HTMLOutputElement|HTMLParagraphElement|HTMLParamElement|HTMLPreElement|HTMLProgressElement\n  |HTMLQuoteElement|HTMLScriptElement|HTMLSelectElement|HTMLShadowElement|HTMLSourceElement|HTMLSpanElement|HTMLStyleElement\n  |HTMLTableCaptionElement|HTMLTableCellElement|HTMLTableColElement|HTMLTableDataCellElement|HTMLTableElement|HTMLTableHeaderCellElement\n  |HTMLTableRowElement|HTMLTableSectionElement|HTMLTextAreaElement|HTMLTimeElement|HTMLTitleElement|HTMLTrackElement\n  |HTMLUListElement|HTMLUnknownElement|HTMLVideoElement|HashChangeEvent|History|IDBCursor|IDBCursorWithValue|IDBDatabase\n  |IDBEnvironment|IDBFactory|IDBIndex|IDBKeyRange|IDBMutableFile|IDBObjectStore|IDBOpenDBRequest|IDBRequest|IDBTransaction\n  |IDBVersionChangeEvent|IIRFilterNode|IdentityManager|ImageBitmap|ImageBitmapFactories|ImageData|Index|InputDeviceCapabilities\n  |InputEvent|InstallEvent|InstallTrigger|KeyboardEvent|LinkStyle|LocalFileSystem|LocalFileSystemSync|Location|MIDIAccess\n  |MIDIConnectionEvent|MIDIInput|MIDIInputMap|MIDIOutputMap|MediaElementAudioSourceNode|MediaError|MediaKeyMessageEvent\n  |MediaKeySession|MediaKeyStatusMap|MediaKeySystemAccess|MediaKeySystemConfiguration|MediaKeys|MediaRecorder|MediaStream\n  |MediaStreamAudioDestinationNode|MediaStreamAudioSourceNode|MessageChannel|MessageEvent|MessagePort|MouseEvent\n  |MutationObserver|MutationRecord|NamedNodeMap|Navigator|NavigatorConcurrentHardware|NavigatorGeolocation|NavigatorID\n  |NavigatorLanguage|NavigatorOnLine|Node|NodeFilter|NodeIterator|NodeList|NonDocumentTypeChildNode|Notification\n  |OfflineAudioCompletionEvent|OfflineAudioContext|OscillatorNode|PageTransitionEvent|PannerNode|ParentNode|PasswordCredential\n  |Path2D|PaymentAddress|PaymentRequest|PaymentResponse|Performance|PerformanceEntry|PerformanceFrameTiming|PerformanceMark\n  |PerformanceMeasure|PerformanceNavigation|PerformanceNavigationTiming|PerformanceObserver|PerformanceObserverEntryList\n  |PerformanceResourceTiming|PerformanceTiming|PeriodicSyncEvent|PeriodicWave|Plugin|Point|PointerEvent|PopStateEvent\n  |PortCollection|Position|PositionError|PositionOptions|PresentationConnectionClosedEvent|PresentationConnectionList\n  |PresentationReceiver|ProcessingInstruction|ProgressEvent|PromiseRejectionEvent|PushEvent|PushRegistrationManager\n  |RTCCertificate|RTCConfiguration|RTCPeerConnection|RTCSessionDescriptionCallback|RTCStatsReport|RadioNodeList|RandomSource\n  |Range|ReadableByteStream|RenderingContext|SVGAElement|SVGAngle|SVGAnimateColorElement|SVGAnimateElement|SVGAnimateMotionElement\n  |SVGAnimateTransformElement|SVGAnimatedAngle|SVGAnimatedBoolean|SVGAnimatedEnumeration|SVGAnimatedInteger|SVGAnimatedLength\n  |SVGAnimatedLengthList|SVGAnimatedNumber|SVGAnimatedNumberList|SVGAnimatedPoints|SVGAnimatedPreserveAspectRatio\n  |SVGAnimatedRect|SVGAnimatedString|SVGAnimatedTransformList|SVGAnimationElement|SVGCircleElement|SVGClipPathElement\n  |SVGCursorElement|SVGDefsElement|SVGDescElement|SVGElement|SVGEllipseElement|SVGEvent|SVGFilterElement|SVGFontElement\n  |SVGFontFaceElement|SVGFontFaceFormatElement|SVGFontFaceNameElement|SVGFontFaceSrcElement|SVGFontFaceUriElement\n  |SVGForeignObjectElement|SVGGElement|SVGGlyphElement|SVGGradientElement|SVGHKernElement|SVGImageElement|SVGLength\n  |SVGLengthList|SVGLineElement|SVGLinearGradientElement|SVGMPathElement|SVGMaskElement|SVGMatrix|SVGMissingGlyphElement\n  |SVGNumber|SVGNumberList|SVGPathElement|SVGPatternElement|SVGPoint|SVGPolygonElement|SVGPolylineElement|SVGPreserveAspectRatio\n  |SVGRadialGradientElement|SVGRect|SVGRectElement|SVGSVGElement|SVGScriptElement|SVGSetElement|SVGStopElement|SVGStringList\n  |SVGStylable|SVGStyleElement|SVGSwitchElement|SVGSymbolElement|SVGTRefElement|SVGTSpanElement|SVGTests|SVGTextElement\n  |SVGTextPositioningElement|SVGTitleElement|SVGTransform|SVGTransformList|SVGTransformable|SVGUseElement|SVGVKernElement\n  |SVGViewElement|ServiceWorker|ServiceWorkerContainer|ServiceWorkerGlobalScope|ServiceWorkerRegistration|ServiceWorkerState\n  |ShadowRoot|SharedWorker|SharedWorkerGlobalScope|SourceBufferList|StereoPannerNode|Storage|StorageEvent|StyleSheet\n  |StyleSheetList|SubtleCrypto|SyncEvent|Text|TextMetrics|TimeEvent|TimeRanges|Touch|TouchEvent|TouchList|Transferable\n  |TreeWalker|UIEvent|USVString|VRDisplayCapabilities|ValidityState|WaveShaperNode|WebGL|WebGLActiveInfo|WebGLBuffer\n  |WebGLContextEvent|WebGLFramebuffer|WebGLProgram|WebGLRenderbuffer|WebGLRenderingContext|WebGLShader|WebGLShaderPrecisionFormat\n  |WebGLTexture|WebGLTimerQueryEXT|WebGLTransformFeedback|WebGLUniformLocation|WebGLVertexArrayObject|WebGLVertexArrayObjectOES\n  |WebSocket|WebSockets|WebVTT|WheelEvent|Window|WindowBase64|WindowEventHandlers|WindowTimers|Worker|WorkerGlobalScope\n  |WorkerLocation|WorkerNavigator|XMLHttpRequest|XMLHttpRequestEventTarget|XMLSerializer|XPathExpression|XPathResult\n  |XSLTProcessor))\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>support.variable.dom.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>support.class.dom.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n  (ATTRIBUTE_NODE|CDATA_SECTION_NODE|COMMENT_NODE|DOCUMENT_FRAGMENT_NODE|DOCUMENT_NODE|DOCUMENT_TYPE_NODE\n  |DOMSTRING_SIZE_ERR|ELEMENT_NODE|ENTITY_NODE|ENTITY_REFERENCE_NODE|HIERARCHY_REQUEST_ERR|INDEX_SIZE_ERR\n  |INUSE_ATTRIBUTE_ERR|INVALID_CHARACTER_ERR|NO_DATA_ALLOWED_ERR|NO_MODIFICATION_ALLOWED_ERR|NOT_FOUND_ERR\n  |NOT_SUPPORTED_ERR|NOTATION_NODE|PROCESSING_INSTRUCTION_NODE|TEXT_NODE|WRONG_DOCUMENT_ERR)\n  |\n  (_content|[xyz]|abbr|above|accept|acceptCharset|accessKey|action|align|[av]Link(?:color)?|all|alt|anchors|appCodeName\n  |appCore|applets|appMinorVersion|appName|appVersion|archive|areas|arguments|attributes|availHeight|availLeft|availTop\n  |availWidth|axis|background|backgroundColor|backgroundImage|below|bgColor|body|border|borderBottomWidth|borderColor\n  |borderLeftWidth|borderRightWidth|borderStyle|borderTopWidth|borderWidth|bottom|bufferDepth|callee|caller|caption\n  |cellPadding|cells|cellSpacing|ch|characterSet|charset|checked|childNodes|chOff|cite|classes|className|clear\n  |clientInformation|clip|clipBoardData|closed|code|codeBase|codeType|color|colorDepth|cols|colSpan|compact|complete\n  |components|content|controllers|cookie|cookieEnabled|cords|cpuClass|crypto|current|data|dateTime|declare|defaultCharset\n  |defaultChecked|defaultSelected|defaultStatus|defaultValue|defaultView|defer|description|dialogArguments|dialogHeight\n  |dialogLeft|dialogTop|dialogWidth|dir|directories|disabled|display|docmain|doctype|documentElement|elements|embeds\n  |enabledPlugin|encoding|enctype|entities|event|expando|external|face|fgColor|filename|firstChild|fontFamily|fontSize\n  |fontWeight|form|formName|forms|frame|frameBorder|frameElement|frames|hasFocus|hash|headers|height|history|host\n  |hostname|href|hreflang|hspace|htmlFor|httpEquiv|id|ids|ignoreCase|images|implementation|index|innerHeight|innerWidth\n  |input|isMap|label|lang|language|lastChild|lastIndex|lastMatch|lastModified|lastParen|layer[sXY]|left|leftContext\n  |lineHeight|link|linkColor|links|listStyleType|localName|location|locationbar|longDesc|lowsrc|lowSrc|marginBottom\n  |marginHeight|marginLeft|marginRight|marginTop|marginWidth|maxLength|media|menubar|method|mimeTypes|multiline|multiple\n  |name|nameProp|namespaces|namespaceURI|next|nextSibling|nodeName|nodeType|nodeValue|noHref|noResize|noShade|notationName\n  |notations|noWrap|object|offscreenBuffering|onLine|onreadystatechange|opener|opsProfile|options|oscpu|outerHeight\n  |outerWidth|ownerDocument|paddingBottom|paddingLeft|paddingRight|paddingTop|page[XY]|page[XY]Offset|parent|parentLayer\n  |parentNode|parentWindow|pathname|personalbar|pixelDepth|pkcs11|platform|plugins|port|prefix|previous|previousDibling\n  |product|productSub|profile|profileend|prompt|prompter|protocol|publicId|readOnly|readyState|referrer|rel|responseText\n  |responseXML|rev|right|rightContext|rowIndex|rows|rowSpan|rules|scheme|scope|screen[XY]|screenLeft|screenTop|scripts\n  |scrollbars|scrolling|sectionRowIndex|security|securityPolicy|selected|selectedIndex|selection|self|shape|siblingAbove\n  |siblingBelow|size|source|specified|standby|start|status|statusbar|statusText|style|styleSheets|suffixes|summary\n  |systemId|systemLanguage|tagName|tags|target|tBodies|text|textAlign|textDecoration|textIndent|textTransform|tFoot|tHead\n  |title|toolbar|top|type|undefined|uniqueID|updateInterval|URL|URLUnencoded|useMap|userAgent|userLanguage|userProfile\n  |vAlign|value|valueType|vendor|vendorSub|version|visibility|vspace|whiteSpace|width|X[MS]LDocument|zIndex))\\b(?!\\$|\\s*(&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\\()</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>support.constant.dom.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>support.variable.property.dom.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>support.class.node.ts</string>\n            <key>match</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(Buffer|EventEmitter|Server|Pipe|Socket|REPLServer|ReadStream|WriteStream|Stream\n  |Inflate|Deflate|InflateRaw|DeflateRaw|GZip|GUnzip|Unzip|Zip)\\b(?!\\$)</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(process)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?:\n  (arch|argv|config|connected|env|execArgv|execPath|exitCode|mainModule|pid|platform|release|stderr|stdin|stdout|title|version|versions)\n  |\n  (abort|chdir|cwd|disconnect|exit|[sg]ete?[gu]id|send|[sg]etgroups|initgroups|kill|memoryUsage|nextTick|umask|uptime|hrtime)\n))?\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>support.variable.object.process.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>support.variable.property.process.ts</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>support.function.process.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>support.type.object.module.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>support.type.object.module.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.ts</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>support.type.object.module.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>support.variable.object.node.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(global|GLOBAL|root|__dirname|__filename)\\b(?!\\$)</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s*\n(?:\n (on(?:Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset|\n   Readystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove|\n   Before(?:cut|deactivate|unload|update|paste|print|editfocus|activate)|\n   Blur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help|\n   Change|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate|\n   Datasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover|\n   Dragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error|\n   Errorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort)\n ) |\n (shift|showModelessDialog|showModalDialog|showHelp|scroll|scrollX|scrollByPages|\n   scrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|\n   sup|sub|substr|substring|splice|split|send|set(?:Milliseconds|Seconds|Minutes|Hours|\n   Month|Year|FullYear|Date|UTC(?:Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|\n   Time|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|\n   savePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|\n   contextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|\n   createEventObject|to(?:GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|\n   test|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|\n   untaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|\n   print|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|\n   fileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|\n   forward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|\n   abort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|\n   releaseCapture|releaseEvents|go|get(?:Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|\n   Time|Date|TimezoneOffset|UTC(?:Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|\n   Attention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|\n   moveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back\n ) |\n (acceptNode|add|addEventListener|addTextTrack|adoptNode|after|animate|append|\n   appendChild|appendData|before|blur|canPlayType|captureStream|\n   caretPositionFromPoint|caretRangeFromPoint|checkValidity|clear|click|\n   cloneContents|cloneNode|cloneRange|close|closest|collapse|\n   compareBoundaryPoints|compareDocumentPosition|comparePoint|contains|\n   convertPointFromNode|convertQuadFromNode|convertRectFromNode|createAttribute|\n   createAttributeNS|createCaption|createCDATASection|createComment|\n   createContextualFragment|createDocument|createDocumentFragment|\n   createDocumentType|createElement|createElementNS|createEntityReference|\n   createEvent|createExpression|createHTMLDocument|createNodeIterator|\n   createNSResolver|createProcessingInstruction|createRange|createShadowRoot|\n   createTBody|createTextNode|createTFoot|createTHead|createTreeWalker|delete|\n   deleteCaption|deleteCell|deleteContents|deleteData|deleteRow|deleteTFoot|\n   deleteTHead|detach|disconnect|dispatchEvent|elementFromPoint|elementsFromPoint|\n   enableStyleSheetsForSet|entries|evaluate|execCommand|exitFullscreen|\n   exitPointerLock|expand|extractContents|fastSeek|firstChild|focus|forEach|get|\n   getAll|getAnimations|getAttribute|getAttributeNames|getAttributeNode|\n   getAttributeNodeNS|getAttributeNS|getBoundingClientRect|getBoxQuads|\n   getClientRects|getContext|getDestinationInsertionPoints|getElementById|\n   getElementsByClassName|getElementsByName|getElementsByTagName|\n   getElementsByTagNameNS|getItem|getNamedItem|getSelection|getStartDate|\n   getVideoPlaybackQuality|has|hasAttribute|hasAttributeNS|hasAttributes|\n   hasChildNodes|hasFeature|hasFocus|importNode|initEvent|insertAdjacentElement|\n   insertAdjacentHTML|insertAdjacentText|insertBefore|insertCell|insertData|\n   insertNode|insertRow|intersectsNode|isDefaultNamespace|isEqualNode|\n   isPointInRange|isSameNode|item|key|keys|lastChild|load|lookupNamespaceURI|\n   lookupPrefix|matches|move|moveAttribute|moveAttributeNode|moveChild|\n   moveNamedItem|namedItem|nextNode|nextSibling|normalize|observe|open|\n   parentNode|pause|play|postMessage|prepend|preventDefault|previousNode|\n   previousSibling|probablySupportsContext|queryCommandEnabled|\n   queryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandValue|\n   querySelector|querySelectorAll|registerContentHandler|registerElement|\n   registerProtocolHandler|releaseCapture|releaseEvents|remove|removeAttribute|\n   removeAttributeNode|removeAttributeNS|removeChild|removeEventListener|\n   removeItem|replace|replaceChild|replaceData|replaceWith|reportValidity|\n   requestFullscreen|requestPointerLock|reset|scroll|scrollBy|scrollIntoView|\n   scrollTo|seekToNextFrame|select|selectNode|selectNodeContents|set|setAttribute|\n   setAttributeNode|setAttributeNodeNS|setAttributeNS|setCapture|\n   setCustomValidity|setEnd|setEndAfter|setEndBefore|setItem|setNamedItem|\n   setRangeText|setSelectionRange|setSinkId|setStart|setStartAfter|setStartBefore|\n   slice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|\n   submit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|\n   toDataURL|toggle|toString|values|write|writeln\n ) |\n (all|catch|finally|race|reject|resolve|then\n )\n)(?=\\s*\\()</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>support.function.event-handler.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>support.function.ts</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>support.function.dom.ts</string>\n              </dict>\n              <key>6</key>\n              <dict>\n                <key>name</key>\n                <string>support.function.promise.ts</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>identifiers</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#object-identifiers</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.constant.property.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.property.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>variable.other.constant.ts</string>\n            <key>match</key>\n            <string>([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>variable.other.readwrite.ts</string>\n            <key>match</key>\n            <string>[_$[:alpha:]][_$[:alnum:]]*</string>\n          </dict>\n        </array>\n      </dict>\n      <key>object-identifiers</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>support.class.ts</string>\n            <key>match</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n  (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n  (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.constant.object.property.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.object.property.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?:\n  ([[:upper:]][_$[:digit:][:upper:]]*) |\n  ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.constant.object.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.object.ts</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>type-annotation</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.type.annotation.ts</string>\n            <key>begin</key>\n            <string>(:)(?=\\s*\\S)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.annotation.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;![:|&amp;])(?!\\s*[|&amp;]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^&gt;])|((?&lt;=[\\}&gt;\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.type.annotation.ts</string>\n            <key>begin</key>\n            <string>(:)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.annotation.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;![:|&amp;])((?=[,);\\}\\]]|\\/\\/)|(?==[^&gt;])|(?=^\\s*$)|((?&lt;=[\\}&gt;\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>parameter-type-annotation</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.type.annotation.ts</string>\n            <key>begin</key>\n            <string>(:)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.annotation.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=[,)])|(?==[^&gt;])</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>return-type</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.return.type.ts</string>\n            <key>begin</key>\n            <string>(?&lt;=\\))\\s*(:)(?=\\s*\\S)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.annotation.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;![:|&amp;])(?=$|^|[{};,]|//)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#return-type-core</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.return.type.ts</string>\n            <key>begin</key>\n            <string>(?&lt;=\\))\\s*(:)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.annotation.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;![:|&amp;])((?=[{};,]|//|^\\s*$)|((?&lt;=\\S)(?=\\s*$)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#return-type-core</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>return-type-core</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;=[:|&amp;])(?=\\s*\\{)</string>\n            <key>end</key>\n            <string>(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type-object</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-predicate-operator</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n        </array>\n      </dict>\n      <key>arrow-return-type</key>\n      <dict>\n        <key>name</key>\n        <string>meta.return.type.arrow.ts</string>\n        <key>begin</key>\n        <string>(?&lt;=\\))\\s*(:)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.type.annotation.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?==&gt;|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#arrow-return-type-body</string>\n          </dict>\n        </array>\n      </dict>\n      <key>possibly-arrow-return-type</key>\n      <dict>\n        <key>begin</key>\n        <string>(?&lt;=\\)|^)\\s*(:)(?=\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=&gt;)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?==&gt;|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))</string>\n        <key>contentName</key>\n        <string>meta.arrow.ts meta.return.type.arrow.ts</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#arrow-return-type-body</string>\n          </dict>\n        </array>\n      </dict>\n      <key>arrow-return-type-body</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;=[:])(?=\\s*\\{)</string>\n            <key>end</key>\n            <string>(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type-object</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-predicate-operator</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-parameters</key>\n      <dict>\n        <key>name</key>\n        <string>meta.type.parameters.ts</string>\n        <key>begin</key>\n        <string>(&lt;)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.typeparameters.begin.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(&gt;)</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.typeparameters.end.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.assignment.ts</string>\n            <key>match</key>\n            <string>(=)(?!&gt;)</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-arguments</key>\n      <dict>\n        <key>name</key>\n        <string>meta.type.parameters.ts</string>\n        <key>begin</key>\n        <string>\\&lt;</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.typeparameters.begin.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\&gt;</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.typeparameters.end.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#type-arguments-body</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-arguments-body</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n            <key>captures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#numeric-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-primitive</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-builtin-literals</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-parameters</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-tuple</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-object</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-operators</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-conditional</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-fn-type-parameters</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-paren-or-function-parameters</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-function-return-type</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-name</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-primitive</key>\n      <dict>\n        <key>name</key>\n        <string>support.type.primitive.ts</string>\n        <key>match</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n      </dict>\n      <key>type-builtin-literals</key>\n      <dict>\n        <key>name</key>\n        <string>support.type.builtin.ts</string>\n        <key>match</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n      </dict>\n      <key>type-tuple</key>\n      <dict>\n        <key>name</key>\n        <string>meta.type.tuple.ts</string>\n        <key>begin</key>\n        <string>\\[</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.square.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\]</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.square.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.ts</string>\n            <key>match</key>\n            <string>\\.\\.\\.</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.label.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.optional.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.separator.label.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-object</key>\n      <dict>\n        <key>name</key>\n        <string>meta.object.type.ts</string>\n        <key>begin</key>\n        <string>\\{</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#method-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#indexer-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#indexer-mapped-type-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#field-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-annotation</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>\\.\\.\\.</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.spread.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\}|;|,|$)|(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-semicolon</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-conditional</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(extends)\\s+</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;=:)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>begin</key>\n                <string>\\?</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>keyword.operator.ternary.ts</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>:</string>\n                <key>endCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>keyword.operator.ternary.ts</string>\n                  </dict>\n                </dict>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#type</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>type-paren-or-function-parameters</key>\n      <dict>\n        <key>name</key>\n        <string>meta.type.paren.cover.ts</string>\n        <key>begin</key>\n        <string>\\(</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.round.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\)</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.round.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?&lt;!=|:)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n  (&lt;) |\n  ([(]\\s*(\n    ([)]) |\n    (\\.\\.\\.) |\n    ([_$[:alnum:]]+\\s*(\n      ([:,?=])|\n      ([)]\\s*=&gt;)\n    ))\n  ))\n)) |\n(:\\s*(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((&lt;\\s*$)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.rest.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.ts variable.language.this.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.ts</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.optional.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?&lt;!=|:)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.rest.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.ts variable.language.this.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.ts</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.optional.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-annotation</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>punctuation.separator.parameter.ts</string>\n            <key>match</key>\n            <string>,</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-fn-type-parameters</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\&lt;)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.type.constructor.ts storage.modifier.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>meta.type.constructor.ts keyword.control.new.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;=&gt;)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-parameters</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.type.constructor.ts</string>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.new.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;=\\))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#function-parameters</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.type.function.ts</string>\n            <key>begin</key>\n            <string>(?x)(\n  (?=\n    [(]\\s*(\n      ([)]) |\n      (\\.\\.\\.) |\n      ([_$[:alnum:]]+\\s*(\n        ([:,?=])|\n        ([)]\\s*=&gt;)\n      ))\n    )\n  )\n)</string>\n            <key>end</key>\n            <string>(?&lt;=\\))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#function-parameters</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>type-function-return-type</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.type.function.return.ts</string>\n            <key>begin</key>\n            <string>(=&gt;)(?=\\s*\\S)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.function.arrow.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;!=&gt;)(?&lt;![|&amp;])(?=[,\\]\\)\\{\\}=;&gt;:\\?]|//|$)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type-function-return-type-core</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.type.function.return.ts</string>\n            <key>begin</key>\n            <string>=&gt;</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.function.arrow.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;!=&gt;)(?&lt;![|&amp;])((?=[,\\]\\)\\{\\}=;:\\?&gt;]|//|^\\s*$)|((?&lt;=\\S)(?=\\s*$)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type-function-return-type-core</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>type-function-return-type-core</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;==&gt;)(?=\\s*\\{)</string>\n            <key>end</key>\n            <string>(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type-object</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-predicate-operator</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-operators</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#typeof-operator</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-infer</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>([&amp;|])(?=\\s*\\{)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type-object</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>[&amp;|]</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\S)</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.keyof.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.ternary.ts</string>\n            <key>match</key>\n            <string>(\\?|\\:)</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.import.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))import(?=\\s*\\()</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-infer</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?</string>\n            <key>name</key>\n            <string>meta.type.infer.ts</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.expression.infer.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.expression.extends.ts</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>type-predicate-operator</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.asserts.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.ts variable.language.this.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.expression.is.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.asserts.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.ts variable.language.this.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.type.asserts.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.is.ts</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-name</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(&lt;)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.module.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(&gt;)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.type.parameters.ts punctuation.definition.typeparameters.end.ts</string>\n              </dict>\n            </dict>\n            <key>contentName</key>\n            <string>meta.type.parameters.ts</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type-arguments-body</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)\\s*(&lt;)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(&gt;)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.type.parameters.ts punctuation.definition.typeparameters.end.ts</string>\n              </dict>\n            </dict>\n            <key>contentName</key>\n            <string>meta.type.parameters.ts</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type-arguments-body</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.module.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>entity.name.type.ts</string>\n            <key>match</key>\n            <string>[_$[:alpha:]][_$[:alnum:]]*</string>\n          </dict>\n        </array>\n      </dict>\n      <key>punctuation-comma</key>\n      <dict>\n        <key>name</key>\n        <string>punctuation.separator.comma.ts</string>\n        <key>match</key>\n        <string>,</string>\n      </dict>\n      <key>punctuation-semicolon</key>\n      <dict>\n        <key>name</key>\n        <string>punctuation.terminator.statement.ts</string>\n        <key>match</key>\n        <string>;</string>\n      </dict>\n      <key>punctuation-accessor</key>\n      <dict>\n        <key>match</key>\n        <string>(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))</string>\n        <key>captures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.accessor.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.accessor.optional.ts</string>\n          </dict>\n        </dict>\n      </dict>\n      <key>string</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#qstring-single</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#qstring-double</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#template</string>\n          </dict>\n        </array>\n      </dict>\n      <key>qstring-double</key>\n      <dict>\n        <key>name</key>\n        <string>string.quoted.double.ts</string>\n        <key>begin</key>\n        <string>\"</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.string.begin.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(\")|((?:[^\\\\\\n])$)</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.string.end.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>invalid.illegal.newline.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#string-character-escape</string>\n          </dict>\n        </array>\n      </dict>\n      <key>qstring-single</key>\n      <dict>\n        <key>name</key>\n        <string>string.quoted.single.ts</string>\n        <key>begin</key>\n        <string>'</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.string.begin.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(\\')|((?:[^\\\\\\n])$)</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.string.end.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>invalid.illegal.newline.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#string-character-escape</string>\n          </dict>\n        </array>\n      </dict>\n      <key>string-character-escape</key>\n      <dict>\n        <key>name</key>\n        <string>constant.character.escape.ts</string>\n        <key>match</key>\n        <string>\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)</string>\n      </dict>\n      <key>template</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#template-call</string>\n          </dict>\n          <dict>\n            <key>contentName</key>\n            <string>string.template.ts</string>\n            <key>begin</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)?(`)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.tagged-template.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>string.template.ts punctuation.definition.string.template.begin.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>`</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>string.template.ts punctuation.definition.string.template.end.ts</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#template-substitution-element</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#string-character-escape</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>template-call</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))(([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;)*(?&lt;!=)\\&gt;))*(?&lt;!=)\\&gt;)*(?&lt;!=)&gt;\\s*)?`)</string>\n            <key>end</key>\n            <string>(?=`)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>begin</key>\n                <string>(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))</string>\n                <key>end</key>\n                <string>(?=(&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))(([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;)*(?&lt;!=)\\&gt;))*(?&lt;!=)\\&gt;)*(?&lt;!=)&gt;\\s*)?`)</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#support-function-call-identifiers</string>\n                  </dict>\n                  <dict>\n                    <key>name</key>\n                    <string>entity.name.function.tagged-template.ts</string>\n                    <key>match</key>\n                    <string>([_$[:alpha:]][_$[:alnum:]]*)</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-arguments</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))(([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;)*(?&lt;!=)\\&gt;))*(?&lt;!=)\\&gt;)*(?&lt;!=)&gt;\\s*)`)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.tagged-template.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=`)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type-arguments</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>template-substitution-element</key>\n      <dict>\n        <key>name</key>\n        <string>meta.template.expression.ts</string>\n        <key>begin</key>\n        <string>\\$\\{</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.template-expression.begin.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.template-expression.end.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n        </array>\n        <key>contentName</key>\n        <string>meta.embedded.line.ts</string>\n      </dict>\n      <key>type-string</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#qstring-single</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#qstring-double</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#template-type</string>\n          </dict>\n        </array>\n      </dict>\n      <key>template-type</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#template-call</string>\n          </dict>\n          <dict>\n            <key>contentName</key>\n            <string>string.template.ts</string>\n            <key>begin</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)?(`)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.tagged-template.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>string.template.ts punctuation.definition.string.template.begin.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>`</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>string.template.ts punctuation.definition.string.template.end.ts</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#template-type-substitution-element</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#string-character-escape</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>template-type-substitution-element</key>\n      <dict>\n        <key>name</key>\n        <string>meta.template.expression.ts</string>\n        <key>begin</key>\n        <string>\\$\\{</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.template-expression.begin.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.template-expression.end.ts</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n        </array>\n        <key>contentName</key>\n        <string>meta.embedded.line.ts</string>\n      </dict>\n      <key>regex</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>string.regexp.ts</string>\n            <key>begin</key>\n            <string>(?&lt;!\\+\\+|--|})(?&lt;=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=&gt;|&amp;&amp;|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuvy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.string.begin.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(/)([dgimsuvy]*)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.string.end.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.other.ts</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#regexp</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>string.regexp.ts</string>\n            <key>begin</key>\n            <string>((?&lt;![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?&lt;=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuvy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.string.begin.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(/)([dgimsuvy]*)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.string.end.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.other.ts</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#regexp</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>regexp</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.anchor.regexp</string>\n            <key>match</key>\n            <string>\\\\[bB]|\\^|\\$</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>\\\\[1-9]\\d*|\\\\k&lt;([a-zA-Z_$][\\w$]*)&gt;</string>\n            <key>captures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.other.back-reference.regexp</string>\n              </dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.regexp</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.quantifier.regexp</string>\n            <key>match</key>\n            <string>[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.or.regexp</string>\n            <key>match</key>\n            <string>\\|</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.group.assertion.regexp</string>\n            <key>begin</key>\n            <string>(\\()((\\?=)|(\\?!)|(\\?&lt;=)|(\\?&lt;!))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.group.regexp</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.group.assertion.regexp</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>meta.assertion.look-ahead.regexp</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>meta.assertion.negative-look-ahead.regexp</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>meta.assertion.look-behind.regexp</string>\n              </dict>\n              <key>6</key>\n              <dict>\n                <key>name</key>\n                <string>meta.assertion.negative-look-behind.regexp</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(\\))</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.group.regexp</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#regexp</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.group.regexp</string>\n            <key>begin</key>\n            <string>\\((?:(\\?:)|(?:\\?&lt;([a-zA-Z_$][\\w$]*)&gt;))?</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.group.regexp</string>\n              </dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.group.no-capture.regexp</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.regexp</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.group.regexp</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#regexp</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>constant.other.character-class.set.regexp</string>\n            <key>begin</key>\n            <string>(\\[)(\\^)?</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.character-class.regexp</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.negation.regexp</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(\\])</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.character-class.regexp</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>name</key>\n                <string>constant.other.character-class.range.regexp</string>\n                <key>match</key>\n                <string>(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))</string>\n                <key>captures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>constant.character.numeric.regexp</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>constant.character.control.regexp</string>\n                  </dict>\n                  <key>3</key>\n                  <dict>\n                    <key>name</key>\n                    <string>constant.character.escape.backslash.regexp</string>\n                  </dict>\n                  <key>4</key>\n                  <dict>\n                    <key>name</key>\n                    <string>constant.character.numeric.regexp</string>\n                  </dict>\n                  <key>5</key>\n                  <dict>\n                    <key>name</key>\n                    <string>constant.character.control.regexp</string>\n                  </dict>\n                  <key>6</key>\n                  <dict>\n                    <key>name</key>\n                    <string>constant.character.escape.backslash.regexp</string>\n                  </dict>\n                </dict>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#regex-character-class</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#regex-character-class</string>\n          </dict>\n        </array>\n      </dict>\n      <key>regex-character-class</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>constant.other.character-class.regexp</string>\n            <key>match</key>\n            <string>\\\\[wWsSdDtrnvf]|\\.</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>constant.character.numeric.regexp</string>\n            <key>match</key>\n            <string>\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>constant.character.control.regexp</string>\n            <key>match</key>\n            <string>\\\\c[A-Z]</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>constant.character.escape.backslash.regexp</string>\n            <key>match</key>\n            <string>\\\\.</string>\n          </dict>\n        </array>\n      </dict>\n      <key>comment</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>comment.block.documentation.ts</string>\n            <key>begin</key>\n            <string>/\\*\\*(?!/)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.comment.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\*/</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.comment.ts</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#docblock</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>comment.block.ts</string>\n            <key>begin</key>\n            <string>(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.comment.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.internaldeclaration.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.decorator.internaldeclaration.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\*/</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.comment.ts</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.whitespace.comment.leading.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>comment.line.double-slash.ts</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.comment.ts</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.internaldeclaration.ts</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.decorator.internaldeclaration.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=$)</string>\n            <key>contentName</key>\n            <string>comment.line.double-slash.ts</string>\n          </dict>\n        </array>\n      </dict>\n      <key>single-line-comment-consuming-line-ending</key>\n      <dict>\n        <key>begin</key>\n        <string>(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.whitespace.comment.leading.ts</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>comment.line.double-slash.ts</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.comment.ts</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.internaldeclaration.ts</string>\n          </dict>\n          <key>5</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.decorator.internaldeclaration.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?=^)</string>\n        <key>contentName</key>\n        <string>comment.line.double-slash.ts</string>\n      </dict>\n      <key>directives</key>\n      <dict>\n        <key>name</key>\n        <string>comment.line.triple-slash.directive.ts</string>\n        <key>begin</key>\n        <string>^(///)\\s*(?=&lt;(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/&gt;\\s*$)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.comment.ts</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?=$)</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.tag.ts</string>\n            <key>begin</key>\n            <string>(&lt;)(reference|amd-dependency|amd-module)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.tag.directive.ts</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.tag.directive.ts</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>/&gt;</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.tag.directive.ts</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>name</key>\n                <string>entity.other.attribute-name.directive.ts</string>\n                <key>match</key>\n                <string>path|types|no-default-lib|lib|name|resolution-mode</string>\n              </dict>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.ts</string>\n                <key>match</key>\n                <string>=</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#string</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>docblock</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>match</key>\n            <string>(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>constant.language.access-type.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)\n((@)author)\n\\s+\n(\n  [^@\\s&lt;&gt;*/]\n  (?:[^@&lt;&gt;*/]|\\*[^/])*\n)\n(?:\n  \\s*\n  (&lt;)\n  ([^&gt;\\s]+)\n  (&gt;)\n)?</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.instance.jsdoc</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.bracket.angle.begin.jsdoc</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>constant.other.email.link.underline.jsdoc</string>\n              </dict>\n              <key>6</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.bracket.angle.end.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+)    # &lt;that namepath&gt;\n\\s+ (as) \\s+              # as\n((?:[^@\\s*/]|\\*[^/])+)    # &lt;this namepath&gt;</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.instance.jsdoc</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.control.jsdoc</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.instance.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.example.jsdoc</string>\n            <key>begin</key>\n            <string>((@)example)\\s+</string>\n            <key>end</key>\n            <string>(?=@|\\*/)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>match</key>\n                <string>^\\s\\*\\s+</string>\n              </dict>\n              <dict>\n                <key>contentName</key>\n                <string>constant.other.description.jsdoc</string>\n                <key>begin</key>\n                <string>\\G(&lt;)caption(&gt;)</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>entity.name.tag.inline.jsdoc</string>\n                  </dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.definition.bracket.angle.begin.jsdoc</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.definition.bracket.angle.end.jsdoc</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(&lt;/)caption(&gt;)|(?=\\*/)</string>\n                <key>endCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>entity.name.tag.inline.jsdoc</string>\n                  </dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.definition.bracket.angle.begin.jsdoc</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.definition.bracket.angle.end.jsdoc</string>\n                  </dict>\n                </dict>\n              </dict>\n              <dict>\n                <key>match</key>\n                <string>[^\\s@*](?:[^*]|\\*[^/])*</string>\n                <key>captures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>source.embedded.ts</string>\n                  </dict>\n                </dict>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>constant.language.symbol-type.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)\n((@)see)\n\\s+\n(?:\n  # URL\n  (\n    (?=https?://)\n    (?:[^\\s*]|\\*[^/])+\n  )\n  |\n  # JSDoc namepath\n  (\n    (?!\n      # Avoid matching bare URIs (also acceptable as links)\n      https?://\n      |\n      # Avoid matching {@inline tags}; we match those below\n      (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n      {@(?:link|linkcode|linkplain|tutorial)\\b\n    )\n    # Matched namepath\n    (?:[^@\\s*/]|\\*[^/])+\n  )\n)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.link.underline.jsdoc</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.instance.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n  [A-Za-z_$]         # First character: non-numeric word character\n  [\\w$.\\[\\]]*        # Rest of identifier\n  (?:                # Possible list of additional identifiers\n    \\s* , \\s*\n    [A-Za-z_$]\n    [\\w$.\\[\\]]*\n  )*\n)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?x)((@)template)\\s+(?={)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#jsdoctype</string>\n              </dict>\n              <dict>\n                <key>name</key>\n                <string>variable.other.jsdoc</string>\n                <key>match</key>\n                <string>([A-Za-z_$][\\w$.\\[\\]]*)</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)\n(\n  (@)\n  (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n  [A-Za-z_$]\n  [\\w$.\\[\\]]*\n)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>((@)typedef)\\s+(?={)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#jsdoctype</string>\n              </dict>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.instance.jsdoc</string>\n                <key>match</key>\n                <string>(?:[^@\\s*/]|\\*[^/])+</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#jsdoctype</string>\n              </dict>\n              <dict>\n                <key>name</key>\n                <string>variable.other.jsdoc</string>\n                <key>match</key>\n                <string>([A-Za-z_$][\\w$.\\[\\]]*)</string>\n              </dict>\n              <dict>\n                <key>name</key>\n                <string>variable.other.jsdoc</string>\n                <key>match</key>\n                <string>(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n  (?:\\[\\])?                                        # Foo[ ].bar properties within an array\n  \\.                                                # Foo.Bar namespaced parameter\n  [\\w$]+\n)*\n(?:\n  \\s*\n  (=)                                                # [foo=bar] Default parameter value\n  \\s*\n  (\n    # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n    (?&gt;\n      \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" |                      # [foo=\"bar\"] Double-quoted\n      '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' |                      # [foo='bar'] Single-quoted\n      \\[ (?:(?:\\*(?!/))|[^*])*? \\] |                                # [foo=[1,2]] Array literal\n      (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*   # Everything else\n    )*\n  )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))</string>\n                <key>captures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.definition.optional-value.begin.bracket.square.jsdoc</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>keyword.operator.assignment.jsdoc</string>\n                  </dict>\n                  <key>3</key>\n                  <dict>\n                    <key>name</key>\n                    <string>source.embedded.ts</string>\n                  </dict>\n                  <key>4</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.definition.optional-value.end.bracket.square.jsdoc</string>\n                  </dict>\n                  <key>5</key>\n                  <dict>\n                    <key>name</key>\n                    <string>invalid.illegal.syntax.jsdoc</string>\n                  </dict>\n                </dict>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?x)\n(\n  (@)\n  (?:define|enum|exception|export|extends|lends|implements|modifies\n  |namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n  |yields?)\n)\n\\s+(?={)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#jsdoctype</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)\n(\n  (@)\n  (?:alias|augments|callback|constructs|emits|event|fires|exports?\n  |extends|external|function|func|host|lends|listens|interface|memberof!?\n  |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n  (?:\n    [^{}@\\s*] | \\*[^/]\n  )+\n)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.instance.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>contentName</key>\n            <string>variable.other.jsdoc</string>\n            <key>begin</key>\n            <string>((@)(?:default(?:value)?|license|version))\\s+(([''\"]))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.jsdoc</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.string.begin.jsdoc</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(\\3)|(?=$|\\*/)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.jsdoc</string>\n              </dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.string.end.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>storage.type.class.jsdoc</string>\n            <key>match</key>\n            <string>(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#inline-tags</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>brackets</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>{</string>\n            <key>end</key>\n            <string>}|(?=\\*/)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#brackets</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>\\[</string>\n            <key>end</key>\n            <string>\\]|(?=\\*/)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#brackets</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>inline-tags</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>constant.other.description.jsdoc</string>\n            <key>match</key>\n            <string>(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.bracket.square.begin.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.bracket.square.end.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>entity.name.type.instance.jsdoc</string>\n            <key>begin</key>\n            <string>({)((@)(?:link(?:code|plain)?|tutorial))\\s*</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.bracket.curly.begin.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.inline.tag.jsdoc</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>}|(?=\\*/)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.bracket.curly.end.jsdoc</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>match</key>\n                <string>\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?</string>\n                <key>captures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>variable.other.link.underline.jsdoc</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.separator.pipe.jsdoc</string>\n                  </dict>\n                </dict>\n              </dict>\n              <dict>\n                <key>match</key>\n                <string>\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?</string>\n                <key>captures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>variable.other.description.jsdoc</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.separator.pipe.jsdoc</string>\n                  </dict>\n                </dict>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>jsdoctype</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>invalid.illegal.type.jsdoc</string>\n            <key>match</key>\n            <string>\\G{(?:[^}*]|\\*[^/}])+$</string>\n          </dict>\n          <dict>\n            <key>contentName</key>\n            <string>entity.name.type.instance.jsdoc</string>\n            <key>begin</key>\n            <string>\\G({)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.instance.jsdoc</string>\n              </dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.bracket.curly.begin.jsdoc</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>((}))\\s*|(?=\\*/)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.instance.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.bracket.curly.end.jsdoc</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#brackets</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n    </dict>\n  </dict>\n</plist>"
  },
  {
    "path": "TypeScript.tmTheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>name</key>\n    <string>TypeScript</string>\n    <key>uuid</key>\n    <string>91489F9C-F403-4CF0-993D-EAAF9149E40E</string>\n    <key>settings</key>\n    <array>\n      <dict>\n        <key>scope</key>\n        <string>storage.modifier, storage.type, keyword.other, keyword.operator.expression, keyword.operator.new, keyword.generator.asterisk, punctuation.definition.template-expression</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>keyword</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>constant.language, variable.language</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>keyword</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>keyword.control, keyword.operator.expression.delete, keyword.other.using, keyword.other.operator, entity.name.operator</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>keyword - control</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>support.class, support.type, entity.name.type, entity.name.namespace, entity.other.attribute, entity.name.scope-resolution, entity.name.class</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>type</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>string, punctuation.definition.string, constant.character</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>string</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>keyword.control.anchor.regexp, keyword.other.back-reference.regexp, keyword.operator.quantifier.regexp, keyword.operator.or.regexp, keyword.operator.negation.regexp, punctuation.definition.group.regexp, punctuation.definition.group.assertion.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp, punctuation.definition.group.capture.regexp, punctuation.definition.character-class.regexp, constant.other.character-class.range.regexp</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>string</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>constant.numeric, meta.delimiter.decimal.period.ts, constant.language.nan.ts, constant.language.infinity.ts</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>number</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>keyword.operator, storage.type.function.arrow.ts</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>operator</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>meta.brace.angle.ts, meta.brace.round.ts, meta.brace.square.ts, punctuation, constant.language.import-export-all.ts, meta.delimiter.object.comma.ts</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>punctuation</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>comment, comment.block.ts, comment.line.double-slash.ts, punctuation.definition.comment.ts</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>comment</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>comment.block.documentation.ts, other.meta.jsdoc, other.description.jsdoc</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>comment</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>entity.name.type.instance.jsdoc</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>identifier</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>entity.name.type.class.ts</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>class name</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>entity.name.type.module.ts</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>module name</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>entity.name.type.enum.ts</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>enum name</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>meta.template.expression.ts, entity.other.inherited-class.ts</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>identifier</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>variable, meta.definition.variable.name, support.variable, entity.name.variable, constant.other.placeholder</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>local name</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>entity.name.function, support.function, support.constant.handlebars, source.powershell variable.other.member, entity.name.operator.custom-literal</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>method name</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>variable.language.arguments.ts, support.type.object</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>identifier</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>entity.name.tag.inline, entity.name.tag.directive</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>HTML Element Name</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>entity.other.attribute-name</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>HTML Attribute Name</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>meta.tag string.quoted, meta.tag string.quoted punctuation.definition.string, meta.tag string.quoted</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>string</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>meta.object-literal.key</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>parameter name</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>constant.character.escape</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>string - escape character</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>entity.name.label</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>label name</string>\n        </dict>\n      </dict>\n    </array>\n  </dict>\n</plist>"
  },
  {
    "path": "TypeScriptReact.YAML-tmLanguage",
    "content": "# [PackageDev] target_format: plist, ext: tmLanguage\n# Similar to TypeScript.YAML-tmLanguage except:\n#   - Remove type assertion (cast.expr.tsx)\n#   - Add JSX expression (HTML-like expression).\n---\nname: TypeScriptReact\nscopeName: source.tsx\nfileTypes: [tsx]\nuuid: 805375ec-d614-41f5-8993-5843fe63ea82\n\nvariables:\n  # because tsx cannot have cast expression, we can say <T extends starts the type parameter of arrow\n  typeparamertStartOfArrow: |-\n    (\n      [<]\\s*{{identifier}}\\s+extends\\s*[^=>]                                                              # < typeparam extends\n    ) |\n  #possiblyMultilineArrowExpressionBeforeEndOfLine: ({{typeParameters}})?\\(\n  possiblyMultilineArrow: ((<\\s*$)|({{possiblyMultilineArrowWithoutTypeParameters}}))  # during lookup treat ( followed by line end as arrow\n  jsxTagOrAtrributeIdentifier: '[_$[:alpha:]][-_$[:alnum:].]*'\n  jsxTagNamespace: (?:({{jsxTagOrAtrributeIdentifier}})(?<!\\.|-)(:))?\n  jsxTagName: \\s*{{jsxTagNamespace}}((?:[a-z][a-z0-9]*|({{jsxTagOrAtrributeIdentifier}}))(?<!\\.|-))\n  jsxOpeningTagWithoutAttributes: (<){{jsxTagName}}?\\s*(>)\n  jsxClosingTag: (</){{jsxTagName}}?\\s*(>)\n  jsxTagStart: (<){{jsxTagName}}(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>)\n  jsxTagStartLookahead: (?={{jsxTagStart}})\n  jsxLookBehindInExpression: (?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|{{lookBehindAwait}}|{{lookBehindReturn}}|{{lookBehindDefault}}|{{lookBehindYield}}|^)\\s*\n\nrepository:\n  # Additions:\n  # expression repository need to include jsx first followed by whaterver ts grammar says\n  expressionWithoutIdentifiers:\n    patterns:\n    - include: '#jsx'\n\n  # Overrides:\n\n  # We need to override this to make sure cast is not matched from typescript\n  # We can safely include jsx because thats the first rule matched anyways so it wont impact at all\n  cast:\n    patterns:\n    - include: '#jsx'\n\n  # jsx syntax is taken from https://github.com/babel/babel-sublime\n  jsx:\n    patterns:\n    - include: '#jsx-tag-without-attributes-in-expression'\n    - include: '#jsx-tag-in-expression'\n\n  #jsx tags\n  jsx-tag-without-attributes-in-expression:\n    begin: '{{jsxLookBehindInExpression}}(?={{jsxOpeningTagWithoutAttributes}})'\n    end: (?!{{jsxOpeningTagWithoutAttributes}})\n    patterns:\n    - include: '#jsx-tag-without-attributes'\n\n  jsx-tag-without-attributes:\n    name: meta.tag.without-attributes.tsx\n    begin: '{{jsxOpeningTagWithoutAttributes}}'\n    end: '{{jsxClosingTag}}'\n    beginCaptures:\n      '1': {name: punctuation.definition.tag.begin.tsx}\n      '2': {name: entity.name.tag.namespace.tsx}\n      '3': {name: punctuation.separator.namespace.tsx}\n      '4': {name: entity.name.tag.tsx}\n      '5': {name: support.class.component.tsx}\n      '6': {name: punctuation.definition.tag.end.tsx}\n    endCaptures:\n      '1': {name: punctuation.definition.tag.begin.tsx}\n      '2': {name: entity.name.tag.namespace.tsx}\n      '3': {name: punctuation.separator.namespace.tsx}\n      '4': {name: entity.name.tag.tsx}\n      '5': {name: support.class.component.tsx}\n      '6': {name: punctuation.definition.tag.end.tsx}\n    contentName: meta.jsx.children.tsx\n    patterns:\n    - include: '#jsx-children'\n\n  jsx-tag-in-expression:\n    # We need to differentiate between the relational '<' operator and the beginning of a tag using the surrounding context.\n    begin: |-\n      (?x)\n        {{jsxLookBehindInExpression}}\n        (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow\n        {{jsxTagStartLookahead}}\n    end: (?!{{jsxTagStart}})\n    patterns:\n    - include: '#jsx-tag'\n\n  jsx-tag:\n    name: meta.tag.tsx\n    begin: '{{jsxTagStartLookahead}}'\n    end: (/>)|(?:{{jsxClosingTag}})\n    endCaptures:\n     '1': { name: punctuation.definition.tag.end.tsx }\n     '2': { name: punctuation.definition.tag.begin.tsx }\n     '3': { name: entity.name.tag.namespace.tsx }\n     '4': { name: punctuation.separator.namespace.tsx }\n     '5': { name: entity.name.tag.tsx }\n     '6': { name: support.class.component.tsx }\n     '7': { name: punctuation.definition.tag.end.tsx }\n    patterns:\n    - begin: '{{jsxTagStart}}'\n      beginCaptures:\n        '1': { name: punctuation.definition.tag.begin.tsx }\n        '2': { name: entity.name.tag.namespace.tsx }\n        '3': { name: punctuation.separator.namespace.tsx }\n        '4': { name: entity.name.tag.tsx }\n        '5': { name: support.class.component.tsx }\n      end: (?=[/]?>)\n      patterns:\n      - include: '#comment'\n      - include: '#type-arguments'\n      - include: '#jsx-tag-attributes'\n    - begin: (>)\n      beginCaptures:\n        '1': { name: punctuation.definition.tag.end.tsx }\n      end: (?=</)\n      contentName: meta.jsx.children.tsx\n      patterns:\n      - include: '#jsx-children'\n\n  #jsx children\n  jsx-children:\n    patterns:\n    - include: '#jsx-tag-without-attributes'\n    # Because this would be included from the jsx-children, this doesnt need to inspect surrounding context\n    - include: '#jsx-tag'\n    - include: '#jsx-evaluated-code'\n    - include: '#jsx-entities'\n\n  #entities and evaluated code\n  jsx-evaluated-code:\n    contentName: meta.embedded.expression.tsx\n    begin: \\{\n    end: \\}\n    beginCaptures:\n      '0': { name: punctuation.section.embedded.begin.tsx }\n    endCaptures:\n      '0': { name: punctuation.section.embedded.end.tsx }\n    patterns:\n    - include: '#expression'\n\n  jsx-entities:\n    patterns:\n    - name: constant.character.entity.tsx\n      match: (&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)\n      captures:\n        '1': {name: punctuation.definition.entity.tsx}\n        '3': {name: punctuation.definition.entity.tsx}\n\n  #jsx attributes\n  jsx-tag-attributes:\n    name: meta.tag.attributes.tsx\n    begin: \\s+\n    end: (?=[/]?>)\n    patterns:\n    - include: '#comment'\n    - include: '#jsx-tag-attribute-name'\n    - include: '#jsx-tag-attribute-assignment'\n    - include: '#jsx-string-double-quoted'\n    - include: '#jsx-string-single-quoted'\n    - include: '#jsx-evaluated-code'\n    - include: '#jsx-tag-attributes-illegal'\n\n  jsx-tag-attribute-name:\n    match: |-\n      (?x)\n        \\s*\n        (?:({{jsxTagOrAtrributeIdentifier}})(:))?\n        ([_$[:alpha:]][-_$[:alnum:]]*)\n        (?=\\s|=|/?>|/\\*|//)\n    captures:\n      '1': {name: entity.other.attribute-name.namespace.tsx}\n      '2': {name: punctuation.separator.namespace.tsx}\n      '3': {name: entity.other.attribute-name.tsx}\n\n  jsx-tag-attribute-assignment:\n    name: keyword.operator.assignment.tsx\n    match: =(?=\\s*(?:'|\"|{|/\\*|//|\\n))\n\n  jsx-string-double-quoted:\n    name: string.quoted.double.tsx\n    begin: '\"'\n    end: '\"'\n    beginCaptures:\n      '0': {name: punctuation.definition.string.begin.tsx}\n    endCaptures:\n      '0': {name: punctuation.definition.string.end.tsx}\n    patterns:\n    - include: '#jsx-entities'\n\n  jsx-string-single-quoted:\n    name: string.quoted.single.tsx\n    begin: \"'\"\n    end: \"'\"\n    beginCaptures:\n      '0': {name: punctuation.definition.string.begin.tsx}\n    endCaptures:\n      '0': {name: punctuation.definition.string.end.tsx}\n    patterns:\n    - include: '#jsx-entities'\n\n  jsx-tag-attributes-illegal:\n    name: invalid.illegal.attribute.tsx\n    match: \\S+\n\n...\n"
  },
  {
    "path": "TypeScriptReact.YAML-tmTheme",
    "content": "# VS theme settings for TypeScriptReact\r\n# These only contains additions to existing TypeScript theme\r\n\r\n---\r\nname: TypeScriptReact\r\nuuid: 8B704EF9-AF8E-402F-933C-1D46D8C49E58\r\n\r\nsettings:\r\n# Additions\r\n- scope: meta.tag string.quoted constant.character.entity.tsx, meta.tag string.quoted constant.character.entity.tsx punctuation.definition.entity.tsx\r\n  settings: { vsclassificationtype: xml literal - attribute value }\r\n\r\n- scope: meta.jsx.children.tsx, constant.character.entity.tsx, punctuation.definition.entity.tsx, invalid.illegal.bad-ampersand.tsx\r\n  settings: { vsclassificationtype: xml literal - text }\r\n\r\n- scope: invalid.illegal.attribute.tsx\r\n  settings: { vsclassificationtype: identifier }\r\n\r\n- scope: punctuation.definition.tag\r\n  settings: { vsclassificationtype: html operator }\r\n\r\n- scope: meta.tag\r\n  settings: { vsclassificationtype: HTML Element Name }\r\n...\r\n"
  },
  {
    "path": "TypeScriptReact.tmLanguage",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>name</key>\n    <string>TypeScriptReact</string>\n    <key>scopeName</key>\n    <string>source.tsx</string>\n    <key>fileTypes</key>\n    <array>\n      <string>tsx</string>\n    </array>\n    <key>uuid</key>\n    <string>805375ec-d614-41f5-8993-5843fe63ea82</string>\n    <key>patterns</key>\n    <array>\n      <dict>\n        <key>include</key>\n        <string>#directives</string>\n      </dict>\n      <dict>\n        <key>include</key>\n        <string>#statements</string>\n      </dict>\n      <dict>\n        <key>include</key>\n        <string>#shebang</string>\n      </dict>\n    </array>\n    <key>repository</key>\n    <dict>\n      <key>shebang</key>\n      <dict>\n        <key>name</key>\n        <string>comment.line.shebang.tsx</string>\n        <key>match</key>\n        <string>\\A(#!).*(?=$)</string>\n        <key>captures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.comment.tsx</string>\n          </dict>\n        </dict>\n      </dict>\n      <key>statements</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#control-statement</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#after-operator-block-as-object-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#decl-block</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#label</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-semicolon</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n        </array>\n      </dict>\n      <key>declaration</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#decorator</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#var-expr</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#function-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#class-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#interface-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#enum-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#namespace-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-alias-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#import-equals-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#import-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#export-declaration</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n        </array>\n      </dict>\n      <key>control-statement</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#switch-statement</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#for-loop</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.trycatch.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.loop.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.label.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.loop.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.flow.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.switch.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#if-statement</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.conditional.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.with.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.other.debugger.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n        </array>\n      </dict>\n      <key>label</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.label.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.separator.label.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#decl-block</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.label.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.separator.label.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>expression</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#expressionWithoutIdentifiers</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#identifiers</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#expressionPunctuations</string>\n          </dict>\n        </array>\n      </dict>\n      <key>expressionWithoutIdentifiers</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#jsx</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#regex</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#function-expression</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#class-expression</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#arrow-function</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#paren-expression-possibly-arrow</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#cast</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#ternary-expression</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#new-expr</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#instanceof-expr</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#object-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#expression-operators</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#function-call</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#support-objects</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#paren-expression</string>\n          </dict>\n        </array>\n      </dict>\n      <key>expressionPunctuations</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-accessor</string>\n          </dict>\n        </array>\n      </dict>\n      <key>decorator</key>\n      <dict>\n        <key>name</key>\n        <string>meta.decorator.tsx</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))\\@</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.decorator.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?=\\s)</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n        </array>\n      </dict>\n      <key>var-expr</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.var.expr.tsx</string>\n            <key>begin</key>\n            <string>(?=(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))</string>\n            <key>end</key>\n            <string>(?!(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?&lt;!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>begin</key>\n                <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>keyword.control.export.tsx</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>storage.modifier.tsx</string>\n                  </dict>\n                  <key>3</key>\n                  <dict>\n                    <key>name</key>\n                    <string>storage.type.tsx</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?=\\S)</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#destructuring-variable</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#var-single-variable</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#variable-initializer</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>(,)\\s*(?=$|\\/\\/)</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.separator.comma.tsx</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?&lt;!,)(((?==|;|}|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|^\\s*$))|((?&lt;=\\S)(?=\\s*$)))</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#single-line-comment-consuming-line-ending</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#comment</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#destructuring-variable</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#var-single-variable</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#punctuation-comma</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#punctuation-comma</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.var.expr.tsx</string>\n            <key>begin</key>\n            <string>(?=(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.export.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?!(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?&lt;!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>begin</key>\n                <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>keyword.control.export.tsx</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>storage.modifier.tsx</string>\n                  </dict>\n                  <key>3</key>\n                  <dict>\n                    <key>name</key>\n                    <string>storage.type.tsx</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?=\\S)</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#destructuring-const</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#var-single-const</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#variable-initializer</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>(,)\\s*(?=$|\\/\\/)</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.separator.comma.tsx</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?&lt;!,)(((?==|;|}|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|^\\s*$))|((?&lt;=\\S)(?=\\s*$)))</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#single-line-comment-consuming-line-ending</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#comment</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#destructuring-const</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#var-single-const</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#punctuation-comma</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#punctuation-comma</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.var.expr.tsx</string>\n            <key>begin</key>\n            <string>(?=(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.export.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?!(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?&lt;!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>begin</key>\n                <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>keyword.control.export.tsx</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>storage.modifier.tsx</string>\n                  </dict>\n                  <key>3</key>\n                  <dict>\n                    <key>name</key>\n                    <string>storage.type.tsx</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?=\\S)</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#var-single-const</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#variable-initializer</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>(,)\\s*((?!\\S)|(?=\\/\\/))</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.separator.comma.tsx</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?&lt;!,)(((?==|;|}|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|^\\s*$))|((?&lt;=\\S)(?=\\s*$)))</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#single-line-comment-consuming-line-ending</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#comment</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#var-single-const</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#punctuation-comma</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#punctuation-comma</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>var-single-variable</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.var-single-variable.expr.tsx</string>\n            <key>begin</key>\n            <string>(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s*\n# function assignment |\n(=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n(\n  [&lt;]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=&gt;]                                                              # &lt; typeparam extends\n) |\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)) |\n# typeannotation is fn type: &lt; | () | (... | (param: | (param, | (param? | (param= | (param) =&gt;\n(:\\s*(\n  (&lt;) |\n  ([(]\\s*(\n    ([)]) |\n    (\\.\\.\\.) |\n    ([_$[:alnum:]]+\\s*(\n      ([:,?=])|\n      ([)]\\s*=&gt;)\n    ))\n  ))\n)) |\n(:\\s*(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((&lt;\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=&gt;|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(&lt;[^&lt;&gt;]*&gt;)|[^&lt;&gt;(),=])+=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n(\n  [&lt;]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=&gt;]                                                              # &lt; typeparam extends\n) |\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.definition.variable.tsx entity.name.function.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.definiteassignment.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=$|^|[;,=}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#var-single-variable-type-annotation</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.var-single-variable.expr.tsx</string>\n            <key>begin</key>\n            <string>([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.definition.variable.tsx variable.other.constant.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.definiteassignment.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=$|^|[;,=}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#var-single-variable-type-annotation</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.var-single-variable.expr.tsx</string>\n            <key>begin</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)(\\!)?</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.definition.variable.tsx variable.other.readwrite.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.definiteassignment.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=$|^|[;,=}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#var-single-variable-type-annotation</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>var-single-const</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.var-single-variable.expr.tsx</string>\n            <key>begin</key>\n            <string>(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n# function assignment |\n(=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n(\n  [&lt;]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=&gt;]                                                              # &lt; typeparam extends\n) |\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)) |\n# typeannotation is fn type: &lt; | () | (... | (param: | (param, | (param? | (param= | (param) =&gt;\n(:\\s*(\n  (&lt;) |\n  ([(]\\s*(\n    ([)]) |\n    (\\.\\.\\.) |\n    ([_$[:alnum:]]+\\s*(\n      ([:,?=])|\n      ([)]\\s*=&gt;)\n    ))\n  ))\n)) |\n(:\\s*(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((&lt;\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=&gt;|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(&lt;[^&lt;&gt;]*&gt;)|[^&lt;&gt;(),=])+=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n(\n  [&lt;]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=&gt;]                                                              # &lt; typeparam extends\n) |\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=$|^|[;,=}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#var-single-variable-type-annotation</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.var-single-variable.expr.tsx</string>\n            <key>begin</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.definition.variable.tsx variable.other.constant.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=$|^|[;,=}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#var-single-variable-type-annotation</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>var-single-variable-type-annotation</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#type-annotation</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n        </array>\n      </dict>\n      <key>destructuring-variable</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.object-binding-pattern-variable.tsx</string>\n            <key>begin</key>\n            <string>(?&lt;!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)</string>\n            <key>end</key>\n            <string>(?=$|^|[;,=}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#object-binding-pattern</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-annotation</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.array-binding-pattern-variable.tsx</string>\n            <key>begin</key>\n            <string>(?&lt;!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)</string>\n            <key>end</key>\n            <string>(?=$|^|[;,=}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#array-binding-pattern</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-annotation</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>destructuring-const</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.object-binding-pattern-variable.tsx</string>\n            <key>begin</key>\n            <string>(?&lt;!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)</string>\n            <key>end</key>\n            <string>(?=$|^|[;,=}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#object-binding-pattern-const</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-annotation</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.array-binding-pattern-variable.tsx</string>\n            <key>begin</key>\n            <string>(?&lt;!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)</string>\n            <key>end</key>\n            <string>(?=$|^|[;,=}]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#array-binding-pattern-const</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-annotation</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>object-binding-element</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?x)(?=((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))</string>\n            <key>end</key>\n            <string>(?=,|\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#object-binding-element-propertyName</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#binding-element</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#object-binding-pattern</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#destructuring-variable-rest</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n        </array>\n      </dict>\n      <key>object-binding-element-const</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?x)(?=((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))</string>\n            <key>end</key>\n            <string>(?=,|\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#object-binding-element-propertyName</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#binding-element-const</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#object-binding-pattern-const</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#destructuring-variable-rest-const</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n        </array>\n      </dict>\n      <key>object-binding-element-propertyName</key>\n      <dict>\n        <key>begin</key>\n        <string>(?x)(?=((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))</string>\n        <key>end</key>\n        <string>(:)</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.destructuring.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#array-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#numeric-literal</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>variable.object.property.tsx</string>\n            <key>match</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)</string>\n          </dict>\n        </array>\n      </dict>\n      <key>binding-element</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#numeric-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#regex</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#object-binding-pattern</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#array-binding-pattern</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#destructuring-variable-rest</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n        </array>\n      </dict>\n      <key>binding-element-const</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#numeric-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#regex</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#object-binding-pattern-const</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#array-binding-pattern-const</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#destructuring-variable-rest-const</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n        </array>\n      </dict>\n      <key>destructuring-variable-rest</key>\n      <dict>\n        <key>match</key>\n        <string>(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)</string>\n        <key>captures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>meta.definition.variable.tsx variable.other.readwrite.tsx</string>\n          </dict>\n        </dict>\n      </dict>\n      <key>destructuring-variable-rest-const</key>\n      <dict>\n        <key>match</key>\n        <string>(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)</string>\n        <key>captures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>meta.definition.variable.tsx variable.other.constant.tsx</string>\n          </dict>\n        </dict>\n      </dict>\n      <key>object-binding-pattern</key>\n      <dict>\n        <key>begin</key>\n        <string>(?:(\\.\\.\\.)\\s*)?(\\{)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.object.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.object.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#object-binding-element</string>\n          </dict>\n        </array>\n      </dict>\n      <key>object-binding-pattern-const</key>\n      <dict>\n        <key>begin</key>\n        <string>(?:(\\.\\.\\.)\\s*)?(\\{)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.object.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.object.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#object-binding-element-const</string>\n          </dict>\n        </array>\n      </dict>\n      <key>array-binding-pattern</key>\n      <dict>\n        <key>begin</key>\n        <string>(?:(\\.\\.\\.)\\s*)?(\\[)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.array.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\]</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.array.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#binding-element</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n        </array>\n      </dict>\n      <key>array-binding-pattern-const</key>\n      <dict>\n        <key>begin</key>\n        <string>(?:(\\.\\.\\.)\\s*)?(\\[)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.array.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\]</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.array.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#binding-element-const</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n        </array>\n      </dict>\n      <key>parameter-name</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?&lt;!=|:)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n(\n  [&lt;]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=&gt;]                                                              # &lt; typeparam extends\n) |\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)) |\n# typeannotation is fn type: &lt; | () | (... | (param: | (param, | (param? | (param= | (param) =&gt;\n(:\\s*(\n  (&lt;) |\n  ([(]\\s*(\n    ([)]) |\n    (\\.\\.\\.) |\n    ([_$[:alnum:]]+\\s*(\n      ([:,?=])|\n      ([)]\\s*=&gt;)\n    ))\n  ))\n)) |\n(:\\s*(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((&lt;\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=&gt;|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(&lt;[^&lt;&gt;]*&gt;)|[^&lt;&gt;(),=])+=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n(\n  [&lt;]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=&gt;]                                                              # &lt; typeparam extends\n) |\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.rest.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.tsx variable.language.this.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.optional.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?&lt;!=|:)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.rest.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.tsx variable.language.this.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.optional.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>destructuring-parameter</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.parameter.object-binding-pattern.tsx</string>\n            <key>begin</key>\n            <string>(?&lt;!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.rest.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.binding-pattern.object.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\}</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.binding-pattern.object.tsx</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#parameter-object-binding-element</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.paramter.array-binding-pattern.tsx</string>\n            <key>begin</key>\n            <string>(?&lt;!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.rest.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.binding-pattern.array.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\]</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.binding-pattern.array.tsx</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#parameter-binding-element</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#punctuation-comma</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>parameter-object-binding-element</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?x)(?=((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))</string>\n            <key>end</key>\n            <string>(?=,|\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#object-binding-element-propertyName</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#parameter-binding-element</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#paren-expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#parameter-object-binding-pattern</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#destructuring-parameter-rest</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n        </array>\n      </dict>\n      <key>parameter-binding-element</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#numeric-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#regex</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#parameter-object-binding-pattern</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#parameter-array-binding-pattern</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#destructuring-parameter-rest</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n        </array>\n      </dict>\n      <key>destructuring-parameter-rest</key>\n      <dict>\n        <key>match</key>\n        <string>(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)</string>\n        <key>captures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>variable.parameter.tsx</string>\n          </dict>\n        </dict>\n      </dict>\n      <key>parameter-object-binding-pattern</key>\n      <dict>\n        <key>begin</key>\n        <string>(?:(\\.\\.\\.)\\s*)?(\\{)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.object.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.object.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#parameter-object-binding-element</string>\n          </dict>\n        </array>\n      </dict>\n      <key>parameter-array-binding-pattern</key>\n      <dict>\n        <key>begin</key>\n        <string>(?:(\\.\\.\\.)\\s*)?(\\[)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.array.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\]</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.binding-pattern.array.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#parameter-binding-element</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n        </array>\n      </dict>\n      <key>field-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.field.declaration.tsx</string>\n        <key>begin</key>\n        <string>(?x)(?&lt;!\\()(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(readonly)\\s+)?(?=\\s*((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?&lt;=\\})</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-annotation</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#array-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#numeric-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s*\n# function assignment |\n(=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n(\n  [&lt;]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=&gt;]                                                              # &lt; typeparam extends\n) |\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)) |\n# typeannotation is fn type: &lt; | () | (... | (param: | (param, | (param? | (param= | (param) =&gt;\n(:\\s*(\n  (&lt;) |\n  ([(]\\s*(\n    ([)]) |\n    (\\.\\.\\.) |\n    ([_$[:alnum:]]+\\s*(\n      ([:,?=])|\n      ([)]\\s*=&gt;)\n    ))\n  ))\n)) |\n(:\\s*(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((&lt;\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=&gt;|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(&lt;[^&lt;&gt;]*&gt;)|[^&lt;&gt;(),=])+=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n(\n  [&lt;]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=&gt;]                                                              # &lt; typeparam extends\n) |\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.definition.property.tsx entity.name.function.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.optional.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.definiteassignment.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.definition.property.tsx variable.object.property.tsx</string>\n            <key>match</key>\n            <string>\\#?[_$[:alpha:]][_$[:alnum:]]*</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.optional.tsx</string>\n            <key>match</key>\n            <string>\\?</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.definiteassignment.tsx</string>\n            <key>match</key>\n            <string>\\!</string>\n          </dict>\n        </array>\n      </dict>\n      <key>variable-initializer</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=&gt;\\s*$)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=$|^|[,);}\\]]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;!=|!)(=)(?!=)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=[,);}\\]]|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(of|in)\\s+))|(?=^\\s*$)|(?&lt;![\\|\\&amp;\\+\\-\\*\\/])(?&lt;=\\S)(?&lt;!=)(?=\\s*$)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>function-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.function.tsx</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?&lt;=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.export.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.tsx</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.async.tsx</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.function.tsx</string>\n          </dict>\n          <key>5</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.generator.asterisk.tsx</string>\n          </dict>\n          <key>6</key>\n          <dict>\n            <key>name</key>\n            <string>meta.definition.function.tsx entity.name.function.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?&lt;=\\})</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#function-name</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#function-body</string>\n          </dict>\n        </array>\n      </dict>\n      <key>function-expression</key>\n      <dict>\n        <key>name</key>\n        <string>meta.function.expression.tsx</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?&lt;=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.async.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.function.tsx</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.generator.asterisk.tsx</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>meta.definition.function.tsx entity.name.function.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?=;)|(?&lt;=\\})</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#function-name</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#single-line-comment-consuming-line-ending</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#function-body</string>\n          </dict>\n        </array>\n      </dict>\n      <key>function-name</key>\n      <dict>\n        <key>name</key>\n        <string>meta.definition.function.tsx entity.name.function.tsx</string>\n        <key>match</key>\n        <string>[_$[:alpha:]][_$[:alnum:]]*</string>\n      </dict>\n      <key>function-body</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-parameters</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#function-parameters</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#return-type</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-function-return-type</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#decl-block</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.generator.asterisk.tsx</string>\n            <key>match</key>\n            <string>\\*</string>\n          </dict>\n        </array>\n      </dict>\n      <key>method-declaration</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.method.declaration.tsx</string>\n            <key>begin</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.async.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\}|;|,|$)|(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#method-declaration-name</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#function-body</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.method.declaration.tsx</string>\n            <key>begin</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*))?[\\(])</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.async.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.new.tsx</string>\n              </dict>\n              <key>6</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.generator.asterisk.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\}|;|,|$)|(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#method-declaration-name</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#function-body</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.method.declaration.tsx</string>\n            <key>begin</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*))?[\\(])</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.async.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.property.tsx</string>\n              </dict>\n              <key>6</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.generator.asterisk.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\}|;|,|$)|(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#method-declaration-name</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#function-body</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>object-literal-method-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.method.declaration.tsx</string>\n        <key>begin</key>\n        <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*))?[\\(])</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.async.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.property.tsx</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.generator.asterisk.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?=\\}|;|,)|(?&lt;=\\})</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#method-declaration-name</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#function-body</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*))?[\\(])</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.async.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.property.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.generator.asterisk.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\(|\\&lt;)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#method-declaration-name</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>method-declaration-name</key>\n      <dict>\n        <key>begin</key>\n        <string>(?x)(?=((\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\&lt;])</string>\n        <key>end</key>\n        <string>(?=\\(|\\&lt;)</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#array-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#numeric-literal</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.definition.method.tsx entity.name.function.tsx</string>\n            <key>match</key>\n            <string>[_$[:alpha:]][_$[:alnum:]]*</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.optional.tsx</string>\n            <key>match</key>\n            <string>\\?</string>\n          </dict>\n        </array>\n      </dict>\n      <key>arrow-function</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.arrow.tsx</string>\n            <key>match</key>\n            <string>(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==&gt;)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.async.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.arrow.tsx</string>\n            <key>begin</key>\n            <string>(?x) (?:\n  (?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(\\basync)\n)? ((?&lt;![})!\\]])\\s*\n  (?=\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n(\n  [&lt;]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=&gt;]                                                              # &lt; typeparam extends\n) |\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  )\n)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.async.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?==&gt;|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-parameters</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#function-parameters</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#arrow-return-type</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#possibly-arrow-return-type</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.arrow.tsx</string>\n            <key>begin</key>\n            <string>=&gt;</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.function.arrow.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>((?&lt;=\\}|\\S)(?&lt;!=&gt;)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#single-line-comment-consuming-line-ending</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#decl-block</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>indexer-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.indexer.declaration.tsx</string>\n        <key>begin</key>\n        <string>(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.square.tsx</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>variable.parameter.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(\\])\\s*(\\?\\s*)?|$</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.square.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.optional.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#type-annotation</string>\n          </dict>\n        </array>\n      </dict>\n      <key>indexer-mapped-type-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.indexer.mappedtype.declaration.tsx</string>\n        <key>begin</key>\n        <string>(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.type.modifier.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.tsx</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.square.tsx</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>entity.name.type.tsx</string>\n          </dict>\n          <key>5</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.in.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(\\])([+-])?\\s*(\\?\\s*)?|$</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.square.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.type.modifier.tsx</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.optional.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(as)\\s+</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.as.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n        </array>\n      </dict>\n      <key>function-parameters</key>\n      <dict>\n        <key>name</key>\n        <string>meta.parameters.tsx</string>\n        <key>begin</key>\n        <string>\\(</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.parameters.begin.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\)</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.parameters.end.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#function-parameters-body</string>\n          </dict>\n        </array>\n      </dict>\n      <key>function-parameters-body</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#decorator</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#destructuring-parameter</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#parameter-name</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#parameter-type-annotation</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>punctuation.separator.parameter.tsx</string>\n            <key>match</key>\n            <string>,</string>\n          </dict>\n        </array>\n      </dict>\n      <key>class-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.class.tsx</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.export.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.tsx</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.tsx</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.class.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?&lt;=\\})</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#class-declaration-or-expression-patterns</string>\n          </dict>\n        </array>\n      </dict>\n      <key>class-expression</key>\n      <dict>\n        <key>name</key>\n        <string>meta.class.tsx</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[&lt;{]|\\/[\\/*])</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.class.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?&lt;=\\})</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#class-declaration-or-expression-patterns</string>\n          </dict>\n        </array>\n      </dict>\n      <key>class-declaration-or-expression-patterns</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#class-or-interface-heritage</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>[_$[:alpha:]][_$[:alnum:]]*</string>\n            <key>captures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.class.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-parameters</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#class-or-interface-body</string>\n          </dict>\n        </array>\n      </dict>\n      <key>interface-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.interface.tsx</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.export.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.tsx</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.tsx</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.interface.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?&lt;=\\})</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#class-or-interface-heritage</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>[_$[:alpha:]][_$[:alnum:]]*</string>\n            <key>captures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.interface.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-parameters</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#class-or-interface-body</string>\n          </dict>\n        </array>\n      </dict>\n      <key>class-or-interface-heritage</key>\n      <dict>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?=\\{)</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#class-or-interface-heritage</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-parameters</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#expressionWithoutIdentifiers</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.module.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.other.inherited-class.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#expressionPunctuations</string>\n          </dict>\n        </array>\n      </dict>\n      <key>class-or-interface-body</key>\n      <dict>\n        <key>begin</key>\n        <string>\\{</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#decorator</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;=:)\\s*</string>\n            <key>end</key>\n            <string>(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#method-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#indexer-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#field-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-annotation</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#access-modifier</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#property-accessor</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#async-modifier</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#after-operator-block-as-object-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#decl-block</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-semicolon</string>\n          </dict>\n        </array>\n      </dict>\n      <key>access-modifier</key>\n      <dict>\n        <key>name</key>\n        <string>storage.modifier.tsx</string>\n        <key>match</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n      </dict>\n      <key>property-accessor</key>\n      <dict>\n        <key>name</key>\n        <string>storage.type.property.tsx</string>\n        <key>match</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n      </dict>\n      <key>async-modifier</key>\n      <dict>\n        <key>name</key>\n        <string>storage.modifier.async.tsx</string>\n        <key>match</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n      </dict>\n      <key>enum-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.enum.declaration.tsx</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.export.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.tsx</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.tsx</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.enum.tsx</string>\n          </dict>\n          <key>5</key>\n          <dict>\n            <key>name</key>\n            <string>entity.name.type.enum.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?&lt;=\\})</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>\\{</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\}</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tsx</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>([_$[:alpha:]][_$[:alnum:]]*)</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>variable.other.enummember.tsx</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?=,|\\}|$)</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#comment</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#variable-initializer</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))</string>\n                <key>end</key>\n                <string>(?=,|\\}|$)</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#string</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#array-literal</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#comment</string>\n                  </dict>\n                  <dict>\n                    <key>include</key>\n                    <string>#variable-initializer</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#punctuation-comma</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>namespace-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.namespace.declaration.tsx</string>\n        <key>begin</key>\n        <string>(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.export.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.tsx</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.namespace.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?&lt;=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>entity.name.type.module.tsx</string>\n            <key>match</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-accessor</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#decl-block</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-alias-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.type.declaration.tsx</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.export.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.tsx</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.type.tsx</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>entity.name.type.alias.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-parameters</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.intrinsic.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(=)\\s*</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>import-equals-declaration</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.import-equals.external.tsx</string>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.export.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.import.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.type.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.readwrite.alias.tsx</string>\n              </dict>\n              <key>6</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.tsx</string>\n              </dict>\n              <key>7</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.require.tsx</string>\n              </dict>\n              <key>8</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.round.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.round.tsx</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#string</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.import-equals.internal.tsx</string>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.export.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.import.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.type.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.readwrite.alias.tsx</string>\n              </dict>\n              <key>6</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=;|$|^)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#single-line-comment-consuming-line-ending</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>match</key>\n                <string>([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))</string>\n                <key>captures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>entity.name.type.module.tsx</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.accessor.tsx</string>\n                  </dict>\n                  <key>3</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.accessor.optional.tsx</string>\n                  </dict>\n                </dict>\n              </dict>\n              <dict>\n                <key>name</key>\n                <string>variable.other.readwrite.tsx</string>\n                <key>match</key>\n                <string>([_$[:alpha:]][_$[:alnum:]]*)</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>import-declaration</key>\n      <dict>\n        <key>name</key>\n        <string>meta.import.tsx</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.export.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.tsx</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.import.tsx</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.type.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?&lt;!^import|[^\\._$[:alnum:]]import)(?=;|$|^)</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#single-line-comment-consuming-line-ending</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;=^import|[^\\._$[:alnum:]]import)(?!\\s*[\"'])</string>\n            <key>end</key>\n            <string>\\bfrom\\b</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.from.tsx</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#import-export-declaration</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#import-export-declaration</string>\n          </dict>\n        </array>\n      </dict>\n      <key>export-declaration</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.export.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.as.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.namespace.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.module.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.export.default.tsx</string>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.export.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.type.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.default.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#interface-declaration</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.export.tsx</string>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.export.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.type.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#import-export-declaration</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>import-export-declaration</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#import-export-block</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.from.tsx</string>\n            <key>match</key>\n            <string>\\bfrom\\b</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#import-export-assert-clause</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#import-export-clause</string>\n          </dict>\n        </array>\n      </dict>\n      <key>import-export-assert-clause</key>\n      <dict>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(with)|(assert))\\s*(\\{)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.with.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.assert.tsx</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object-literal.key.tsx</string>\n            <key>match</key>\n            <string>(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>punctuation.separator.key-value.tsx</string>\n            <key>match</key>\n            <string>:</string>\n          </dict>\n        </array>\n      </dict>\n      <key>import-export-block</key>\n      <dict>\n        <key>name</key>\n        <string>meta.block.tsx</string>\n        <key>begin</key>\n        <string>\\{</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#import-export-clause</string>\n          </dict>\n        </array>\n      </dict>\n      <key>import-export-clause</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)|((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*)|((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.type.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.default.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>constant.language.import-export-all.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.readwrite.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>string.quoted.alias.tsx</string>\n              </dict>\n              <key>12</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.as.tsx</string>\n              </dict>\n              <key>13</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.default.tsx</string>\n              </dict>\n              <key>14</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.readwrite.alias.tsx</string>\n              </dict>\n              <key>15</key>\n              <dict>\n                <key>name</key>\n                <string>string.quoted.alias.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>constant.language.import-export-all.tsx</string>\n            <key>match</key>\n            <string>\\*</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.default.tsx</string>\n            <key>match</key>\n            <string>\\b(default)\\b</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?:(\\btype)\\s+)?(?:([_$[:alpha:]][_$[:alnum:]]*)|((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.type.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.readwrite.alias.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>string.quoted.alias.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>switch-statement</key>\n      <dict>\n        <key>name</key>\n        <string>switch-statement.expr.tsx</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?=\\bswitch\\s*\\()</string>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>switch-expression.expr.tsx</string>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(switch)\\s*(\\()</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.switch.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.round.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.round.tsx</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>switch-block.expr.tsx</string>\n            <key>begin</key>\n            <string>\\{</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>name</key>\n                <string>case-clause.expr.tsx</string>\n                <key>begin</key>\n                <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>keyword.control.switch.tsx</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?=:)</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#expression</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>(:)\\s*(\\{)</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>case-clause.expr.tsx punctuation.definition.section.case-statement.tsx</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>meta.block.tsx punctuation.definition.block.tsx</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>\\}</string>\n                <key>endCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>meta.block.tsx punctuation.definition.block.tsx</string>\n                  </dict>\n                </dict>\n                <key>contentName</key>\n                <string>meta.block.tsx</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#statements</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>match</key>\n                <string>(:)</string>\n                <key>captures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>case-clause.expr.tsx punctuation.definition.section.case-statement.tsx</string>\n                  </dict>\n                </dict>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#statements</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>for-loop</key>\n      <dict>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.loop.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?&lt;=\\))</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.loop.tsx</string>\n            <key>match</key>\n            <string>await</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>\\(</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.round.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.round.tsx</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#var-expr</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#punctuation-semicolon</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>if-statement</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))</string>\n            <key>end</key>\n            <string>(?=;|$|\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(if)\\s*(\\()</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>keyword.control.conditional.tsx</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>meta.brace.round.tsx</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>\\)</string>\n                <key>endCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>meta.brace.round.tsx</string>\n                  </dict>\n                </dict>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#expression</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>name</key>\n                <string>string.regexp.tsx</string>\n                <key>begin</key>\n                <string>(?&lt;=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuvy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.definition.string.begin.tsx</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(/)([dgimsuvy]*)</string>\n                <key>endCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.definition.string.end.tsx</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>keyword.other.tsx</string>\n                  </dict>\n                </dict>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#regexp</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#statements</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>decl-block</key>\n      <dict>\n        <key>name</key>\n        <string>meta.block.tsx</string>\n        <key>begin</key>\n        <string>\\{</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#statements</string>\n          </dict>\n        </array>\n      </dict>\n      <key>after-operator-block-as-object-literal</key>\n      <dict>\n        <key>name</key>\n        <string>meta.objectliteral.tsx</string>\n        <key>begin</key>\n        <string>(?&lt;!\\+\\+|--)(?&lt;=[:=(,\\[?+!&gt;]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&amp;&amp;|\\|\\||\\*)\\s*(\\{)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#object-member</string>\n          </dict>\n        </array>\n      </dict>\n      <key>object-literal</key>\n      <dict>\n        <key>name</key>\n        <string>meta.objectliteral.tsx</string>\n        <key>begin</key>\n        <string>\\{</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#object-member</string>\n          </dict>\n        </array>\n      </dict>\n      <key>object-member</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#object-literal-method-declaration</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.tsx meta.object-literal.key.tsx</string>\n            <key>begin</key>\n            <string>(?=\\[)</string>\n            <key>end</key>\n            <string>(?=:)|((?&lt;=[\\]])(?=\\s*[\\(\\&lt;]))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#array-literal</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.tsx meta.object-literal.key.tsx</string>\n            <key>begin</key>\n            <string>(?=[\\'\\\"\\`])</string>\n            <key>end</key>\n            <string>(?=:)|((?&lt;=[\\'\\\"\\`])(?=((\\s*[\\(\\&lt;,}])|(\\s+(as|satisifies)\\s+))))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#string</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.tsx meta.object-literal.key.tsx</string>\n            <key>begin</key>\n            <string>(?x)(?=(\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$)))</string>\n            <key>end</key>\n            <string>(?=:)|(?=\\s*([\\(\\&lt;,}])|(\\s+as|satisifies\\s+))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#numeric-literal</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.method.declaration.tsx</string>\n            <key>begin</key>\n            <string>(?&lt;=[\\]\\'\\\"\\`])(?=\\s*[\\(\\&lt;])</string>\n            <key>end</key>\n            <string>(?=\\}|;|,)|(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#function-body</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.tsx</string>\n            <key>match</key>\n            <string>(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)</string>\n            <key>captures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.object-literal.key.tsx</string>\n              </dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>constant.numeric.decimal.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.tsx</string>\n            <key>match</key>\n            <string>(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n(\n  [&lt;]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=&gt;]                                                              # &lt; typeparam extends\n) |\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)))</string>\n            <key>captures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.object-literal.key.tsx</string>\n              </dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.tsx</string>\n            <key>match</key>\n            <string>(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)</string>\n            <key>captures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.object-literal.key.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.tsx</string>\n            <key>begin</key>\n            <string>\\.\\.\\.</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.spread.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=,|\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.tsx</string>\n            <key>match</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.readwrite.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(as)\\s+(const)(?=\\s*([,}]|$))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.as.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.tsx</string>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(as)|(satisfies))\\s+</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.as.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.satisfies.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=[;),}\\]:?\\-\\+\\&gt;]|\\|\\||\\&amp;\\&amp;|\\!\\=\\=|$|^|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(as|satisifies)\\s+))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.tsx</string>\n            <key>begin</key>\n            <string>(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)</string>\n            <key>end</key>\n            <string>(?=,|\\}|$|\\/\\/|\\/\\*)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.object.member.tsx</string>\n            <key>begin</key>\n            <string>:</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.object-literal.key.tsx punctuation.separator.key-value.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=,|\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>begin</key>\n                <string>(?&lt;=:)\\s*(async)?(?=\\s*(&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>storage.modifier.async.tsx</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?&lt;=\\))</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#type-parameters</string>\n                  </dict>\n                  <dict>\n                    <key>begin</key>\n                    <string>\\(</string>\n                    <key>beginCaptures</key>\n                    <dict>\n                      <key>0</key>\n                      <dict>\n                        <key>name</key>\n                        <string>meta.brace.round.tsx</string>\n                      </dict>\n                    </dict>\n                    <key>end</key>\n                    <string>\\)</string>\n                    <key>endCaptures</key>\n                    <dict>\n                      <key>0</key>\n                      <dict>\n                        <key>name</key>\n                        <string>meta.brace.round.tsx</string>\n                      </dict>\n                    </dict>\n                    <key>patterns</key>\n                    <array>\n                      <dict>\n                        <key>include</key>\n                        <string>#expression-inside-possibly-arrow-parens</string>\n                      </dict>\n                    </array>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>(?&lt;=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>storage.modifier.async.tsx</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>meta.brace.round.tsx</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>\\)</string>\n                <key>endCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>meta.brace.round.tsx</string>\n                  </dict>\n                </dict>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#expression-inside-possibly-arrow-parens</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>(?&lt;=:)\\s*(async)?\\s*(?=\\&lt;\\s*$)</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>storage.modifier.async.tsx</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(?&lt;=\\&gt;)</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#type-parameters</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>begin</key>\n                <string>(?&lt;=\\&gt;)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>meta.brace.round.tsx</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>\\)</string>\n                <key>endCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>meta.brace.round.tsx</string>\n                  </dict>\n                </dict>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#expression-inside-possibly-arrow-parens</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#possibly-arrow-return-type</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#decl-block</string>\n          </dict>\n        </array>\n      </dict>\n      <key>ternary-expression</key>\n      <dict>\n        <key>begin</key>\n        <string>(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.ternary.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\s*(:)</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.ternary.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n        </array>\n      </dict>\n      <key>function-call</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?&lt;=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))(([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;)*(?&lt;!=)\\&gt;))*(?&lt;!=)\\&gt;)*(?&lt;!=)&gt;\\s*)?\\())</string>\n            <key>end</key>\n            <string>(?&lt;=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?&lt;=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))(([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;)*(?&lt;!=)\\&gt;))*(?&lt;!=)\\&gt;)*(?&lt;!=)&gt;\\s*)?\\())</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>name</key>\n                <string>meta.function-call.tsx</string>\n                <key>begin</key>\n                <string>(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))</string>\n                <key>end</key>\n                <string>(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))(([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;)*(?&lt;!=)\\&gt;))*(?&lt;!=)\\&gt;)*(?&lt;!=)&gt;\\s*)?\\())</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#function-call-target</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#function-call-optionals</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-arguments</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#paren-expression</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?&lt;=[\\)]))(&lt;\\s*[\\{\\[\\(]\\s*$))</string>\n            <key>end</key>\n            <string>(?&lt;=\\&gt;)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?&lt;=[\\)]))(&lt;\\s*[\\{\\[\\(]\\s*$))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>name</key>\n                <string>meta.function-call.tsx</string>\n                <key>begin</key>\n                <string>(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))</string>\n                <key>end</key>\n                <string>(?=(&lt;\\s*[\\{\\[\\(]\\s*$))</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#function-call-target</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#function-call-optionals</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-arguments</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>function-call-target</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#support-function-call-identifiers</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>entity.name.function.tsx</string>\n            <key>match</key>\n            <string>(\\#?[_$[:alpha:]][_$[:alnum:]]*)</string>\n          </dict>\n        </array>\n      </dict>\n      <key>function-call-optionals</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.function-call.tsx punctuation.accessor.optional.tsx</string>\n            <key>match</key>\n            <string>\\?\\.</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.function-call.tsx keyword.operator.definiteassignment.tsx</string>\n            <key>match</key>\n            <string>\\!</string>\n          </dict>\n        </array>\n      </dict>\n      <key>support-function-call-identifiers</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#support-objects</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#object-identifiers</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-accessor</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.import.tsx</string>\n            <key>match</key>\n            <string>(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))</string>\n          </dict>\n        </array>\n      </dict>\n      <key>new-expr</key>\n      <dict>\n        <key>name</key>\n        <string>new.expr.tsx</string>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.new.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?&lt;=\\))|(?=[;),}\\]:?\\-\\+\\&gt;]|\\|\\||\\&amp;\\&amp;|\\!\\=\\=|$|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n        </array>\n      </dict>\n      <key>instanceof-expr</key>\n      <dict>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.instanceof.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?&lt;=\\))|(?=[;),}\\]:?\\-\\+\\&gt;]|\\|\\||\\&amp;\\&amp;|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&amp;\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n        </array>\n      </dict>\n      <key>paren-expression-possibly-arrow</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;=[(=,])\\s*(async)?(?=\\s*((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.async.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;=\\))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#paren-expression-possibly-arrow-with-typeparameters</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;=[(=,]|=&gt;|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*))?\\()|(&lt;)|((&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)))\\s*$)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.async.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;=\\))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#paren-expression-possibly-arrow-with-typeparameters</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#possibly-arrow-return-type</string>\n          </dict>\n        </array>\n      </dict>\n      <key>paren-expression-possibly-arrow-with-typeparameters</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#type-parameters</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>\\(</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.round.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>meta.brace.round.tsx</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#expression-inside-possibly-arrow-parens</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>expression-inside-possibly-arrow-parens</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#expressionWithoutIdentifiers</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#decorator</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#destructuring-parameter</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?&lt;!=|:)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n(\n  [&lt;]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=&gt;]                                                              # &lt; typeparam extends\n) |\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)) |\n# typeannotation is fn type: &lt; | () | (... | (param: | (param, | (param? | (param= | (param) =&gt;\n(:\\s*(\n  (&lt;) |\n  ([(]\\s*(\n    ([)]) |\n    (\\.\\.\\.) |\n    ([_$[:alnum:]]+\\s*(\n      ([:,?=])|\n      ([)]\\s*=&gt;)\n    ))\n  ))\n)) |\n(:\\s*(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((&lt;\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=&gt;|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(&lt;[^&lt;&gt;]*&gt;)|[^&lt;&gt;(),=])+=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n(\n  [&lt;]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=&gt;]                                                              # &lt; typeparam extends\n) |\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n)))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.rest.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.tsx variable.language.this.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.optional.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?&lt;!=|:)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.rest.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.tsx variable.language.this.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.optional.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-annotation</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#variable-initializer</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>punctuation.separator.parameter.tsx</string>\n            <key>match</key>\n            <string>,</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#identifiers</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#expressionPunctuations</string>\n          </dict>\n        </array>\n      </dict>\n      <key>paren-expression</key>\n      <dict>\n        <key>begin</key>\n        <string>\\(</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.round.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\)</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.round.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n        </array>\n      </dict>\n      <key>cast</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#jsx</string>\n          </dict>\n        </array>\n      </dict>\n      <key>expression-operators</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.flow.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.flow.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\*</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.generator.asterisk.tsx</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.flow.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.generator.asterisk.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.delete.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.in.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.of.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.instanceof.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.new.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#typeof-operator</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.void.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.as.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(as)|(satisfies))\\s+</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.as.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.satisfies.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=^|[;),}\\]:?\\-\\+\\&gt;]|\\|\\||\\&amp;\\&amp;|\\!\\=\\=|$|((?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(as|satisfies)\\s+)|(\\s+\\&lt;))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.spread.tsx</string>\n            <key>match</key>\n            <string>\\.\\.\\.</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.assignment.compound.tsx</string>\n            <key>match</key>\n            <string>\\*=|(?&lt;!\\()/=|%=|\\+=|\\-=</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.assignment.compound.bitwise.tsx</string>\n            <key>match</key>\n            <string>\\&amp;=|\\^=|&lt;&lt;=|&gt;&gt;=|&gt;&gt;&gt;=|\\|=</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.bitwise.shift.tsx</string>\n            <key>match</key>\n            <string>&lt;&lt;|&gt;&gt;&gt;|&gt;&gt;</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.comparison.tsx</string>\n            <key>match</key>\n            <string>===|!==|==|!=</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.relational.tsx</string>\n            <key>match</key>\n            <string>&lt;=|&gt;=|&lt;&gt;|&lt;|&gt;</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.logical.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.compound.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.arithmetic.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.logical.tsx</string>\n            <key>match</key>\n            <string>\\!|&amp;&amp;|\\|\\||\\?\\?</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.bitwise.tsx</string>\n            <key>match</key>\n            <string>\\&amp;|~|\\^|\\|</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.assignment.tsx</string>\n            <key>match</key>\n            <string>\\=</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.decrement.tsx</string>\n            <key>match</key>\n            <string>--</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.increment.tsx</string>\n            <key>match</key>\n            <string>\\+\\+</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.arithmetic.tsx</string>\n            <key>match</key>\n            <string>%|\\*|/|-|\\+</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))</string>\n            <key>end</key>\n            <string>(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.compound.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.arithmetic.tsx</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.compound.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.arithmetic.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>typeof-operator</key>\n      <dict>\n        <key>begin</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.typeof.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?=[,);}\\]=&gt;:&amp;|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#type-arguments</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n        </array>\n      </dict>\n      <key>literal</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#numeric-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#boolean-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#null-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#undefined-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#numericConstant-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#array-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#this-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#super-literal</string>\n          </dict>\n        </array>\n      </dict>\n      <key>array-literal</key>\n      <dict>\n        <key>name</key>\n        <string>meta.array.literal.tsx</string>\n        <key>begin</key>\n        <string>\\s*(\\[)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.square.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\]</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.square.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n        </array>\n      </dict>\n      <key>numeric-literal</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>constant.numeric.hex.tsx</string>\n            <key>match</key>\n            <string>\\b(?&lt;!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>constant.numeric.binary.tsx</string>\n            <key>match</key>\n            <string>\\b(?&lt;!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>constant.numeric.octal.tsx</string>\n            <key>match</key>\n            <string>\\b(?&lt;!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)\n(?&lt;!\\$)(?:\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # 1.E+3\n  (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|             # .1E+3\n  (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|                 # 1E+3\n  (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|                      # 1.1\n  (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|                                  # 1.\n  (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|                                  # .1\n  (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))                                 # 1\n)(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>constant.numeric.decimal.tsx</string>\n              </dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.delimiter.decimal.period.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>meta.delimiter.decimal.period.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>meta.delimiter.decimal.period.tsx</string>\n              </dict>\n              <key>6</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.tsx</string>\n              </dict>\n              <key>7</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.tsx</string>\n              </dict>\n              <key>8</key>\n              <dict>\n                <key>name</key>\n                <string>meta.delimiter.decimal.period.tsx</string>\n              </dict>\n              <key>9</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.tsx</string>\n              </dict>\n              <key>10</key>\n              <dict>\n                <key>name</key>\n                <string>meta.delimiter.decimal.period.tsx</string>\n              </dict>\n              <key>11</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.tsx</string>\n              </dict>\n              <key>12</key>\n              <dict>\n                <key>name</key>\n                <string>meta.delimiter.decimal.period.tsx</string>\n              </dict>\n              <key>13</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.tsx</string>\n              </dict>\n              <key>14</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.numeric.bigint.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>boolean-literal</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>constant.language.boolean.true.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>constant.language.boolean.false.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n        </array>\n      </dict>\n      <key>null-literal</key>\n      <dict>\n        <key>name</key>\n        <string>constant.language.null.tsx</string>\n        <key>match</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n      </dict>\n      <key>this-literal</key>\n      <dict>\n        <key>name</key>\n        <string>variable.language.this.tsx</string>\n        <key>match</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))this\\b(?!\\$)</string>\n      </dict>\n      <key>super-literal</key>\n      <dict>\n        <key>name</key>\n        <string>variable.language.super.tsx</string>\n        <key>match</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))super\\b(?!\\$)</string>\n      </dict>\n      <key>undefined-literal</key>\n      <dict>\n        <key>name</key>\n        <string>constant.language.undefined.tsx</string>\n        <key>match</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n      </dict>\n      <key>numericConstant-literal</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>constant.language.nan.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>constant.language.infinity.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n        </array>\n      </dict>\n      <key>support-objects</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>variable.language.arguments.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(arguments)\\b(?!\\$)</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>support.class.builtin.tsx</string>\n            <key>match</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(Array|ArrayBuffer|Atomics|BigInt|BigInt64Array|BigUint64Array|Boolean|DataView|Date|Float32Array\n  |Float64Array|Function|Generator|GeneratorFunction|Int8Array|Int16Array|Int32Array|Intl|Map|Number|Object|Proxy\n  |Reflect|RegExp|Set|SharedArrayBuffer|SIMD|String|Symbol|TypedArray\n  |Uint8Array|Uint16Array|Uint32Array|Uint8ClampedArray|WeakMap|WeakSet)\\b(?!\\$)</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>support.class.error.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))((Eval|Internal|Range|Reference|Syntax|Type|URI)?Error)\\b(?!\\$)</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>support.class.promise.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(Promise)\\b(?!\\$)</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>support.function.tsx</string>\n            <key>match</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(clear(Interval|Timeout)|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|eval|\n  isFinite|isNaN|parseFloat|parseInt|require|set(Interval|Timeout)|super|unescape|uneval)(?=\\s*\\()</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(Math)(?:\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n  (abs|acos|acosh|asin|asinh|atan|atan2|atanh|cbrt|ceil|clz32|cos|cosh|exp|\n  expm1|floor|fround|hypot|imul|log|log10|log1p|log2|max|min|pow|random|\n  round|sign|sin|sinh|sqrt|tan|tanh|trunc)\n  |\n  (E|LN10|LN2|LOG10E|LOG2E|PI|SQRT1_2|SQRT2)))?\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>support.constant.math.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>support.function.math.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>support.constant.property.math.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(console)(?:\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\n  assert|clear|count|debug|dir|error|group|groupCollapsed|groupEnd|info|log\n  |profile|profileEnd|table|time|timeEnd|timeStamp|trace|warn))?\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>support.class.console.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>support.function.console.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(JSON)(?:\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(parse|stringify))?\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>support.constant.json.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>support.function.json.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.import.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>support.variable.property.importmeta.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.new.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>support.variable.property.target.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n  (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\\())\n  |\n  (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>support.variable.property.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>support.constant.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x) (?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.)) \\b (?:\n  (document|event|navigator|performance|screen|window)\n  |\n  (AnalyserNode|ArrayBufferView|Attr|AudioBuffer|AudioBufferSourceNode|AudioContext|AudioDestinationNode|AudioListener\n  |AudioNode|AudioParam|BatteryManager|BeforeUnloadEvent|BiquadFilterNode|Blob|BufferSource|ByteString|CSS|CSSConditionRule\n  |CSSCounterStyleRule|CSSGroupingRule|CSSMatrix|CSSMediaRule|CSSPageRule|CSSPrimitiveValue|CSSRule|CSSRuleList|CSSStyleDeclaration\n  |CSSStyleRule|CSSStyleSheet|CSSSupportsRule|CSSValue|CSSValueList|CanvasGradient|CanvasImageSource|CanvasPattern\n  |CanvasRenderingContext2D|ChannelMergerNode|ChannelSplitterNode|CharacterData|ChromeWorker|CloseEvent|Comment|CompositionEvent\n  |Console|ConvolverNode|Coordinates|Credential|CredentialsContainer|Crypto|CryptoKey|CustomEvent|DOMError|DOMException\n  |DOMHighResTimeStamp|DOMImplementation|DOMString|DOMStringList|DOMStringMap|DOMTimeStamp|DOMTokenList|DataTransfer\n  |DataTransferItem|DataTransferItemList|DedicatedWorkerGlobalScope|DelayNode|DeviceProximityEvent|DirectoryEntry\n  |DirectoryEntrySync|DirectoryReader|DirectoryReaderSync|Document|DocumentFragment|DocumentTouch|DocumentType|DragEvent\n  |DynamicsCompressorNode|Element|Entry|EntrySync|ErrorEvent|Event|EventListener|EventSource|EventTarget|FederatedCredential\n  |FetchEvent|File|FileEntry|FileEntrySync|FileException|FileList|FileReader|FileReaderSync|FileSystem|FileSystemSync\n  |FontFace|FormData|GainNode|Gamepad|GamepadButton|GamepadEvent|Geolocation|GlobalEventHandlers|HTMLAnchorElement\n  |HTMLAreaElement|HTMLAudioElement|HTMLBRElement|HTMLBaseElement|HTMLBodyElement|HTMLButtonElement|HTMLCanvasElement\n  |HTMLCollection|HTMLContentElement|HTMLDListElement|HTMLDataElement|HTMLDataListElement|HTMLDialogElement|HTMLDivElement\n  |HTMLDocument|HTMLElement|HTMLEmbedElement|HTMLFieldSetElement|HTMLFontElement|HTMLFormControlsCollection|HTMLFormElement\n  |HTMLHRElement|HTMLHeadElement|HTMLHeadingElement|HTMLHtmlElement|HTMLIFrameElement|HTMLImageElement|HTMLInputElement\n  |HTMLKeygenElement|HTMLLIElement|HTMLLabelElement|HTMLLegendElement|HTMLLinkElement|HTMLMapElement|HTMLMediaElement\n  |HTMLMetaElement|HTMLMeterElement|HTMLModElement|HTMLOListElement|HTMLObjectElement|HTMLOptGroupElement|HTMLOptionElement\n  |HTMLOptionsCollection|HTMLOutputElement|HTMLParagraphElement|HTMLParamElement|HTMLPreElement|HTMLProgressElement\n  |HTMLQuoteElement|HTMLScriptElement|HTMLSelectElement|HTMLShadowElement|HTMLSourceElement|HTMLSpanElement|HTMLStyleElement\n  |HTMLTableCaptionElement|HTMLTableCellElement|HTMLTableColElement|HTMLTableDataCellElement|HTMLTableElement|HTMLTableHeaderCellElement\n  |HTMLTableRowElement|HTMLTableSectionElement|HTMLTextAreaElement|HTMLTimeElement|HTMLTitleElement|HTMLTrackElement\n  |HTMLUListElement|HTMLUnknownElement|HTMLVideoElement|HashChangeEvent|History|IDBCursor|IDBCursorWithValue|IDBDatabase\n  |IDBEnvironment|IDBFactory|IDBIndex|IDBKeyRange|IDBMutableFile|IDBObjectStore|IDBOpenDBRequest|IDBRequest|IDBTransaction\n  |IDBVersionChangeEvent|IIRFilterNode|IdentityManager|ImageBitmap|ImageBitmapFactories|ImageData|Index|InputDeviceCapabilities\n  |InputEvent|InstallEvent|InstallTrigger|KeyboardEvent|LinkStyle|LocalFileSystem|LocalFileSystemSync|Location|MIDIAccess\n  |MIDIConnectionEvent|MIDIInput|MIDIInputMap|MIDIOutputMap|MediaElementAudioSourceNode|MediaError|MediaKeyMessageEvent\n  |MediaKeySession|MediaKeyStatusMap|MediaKeySystemAccess|MediaKeySystemConfiguration|MediaKeys|MediaRecorder|MediaStream\n  |MediaStreamAudioDestinationNode|MediaStreamAudioSourceNode|MessageChannel|MessageEvent|MessagePort|MouseEvent\n  |MutationObserver|MutationRecord|NamedNodeMap|Navigator|NavigatorConcurrentHardware|NavigatorGeolocation|NavigatorID\n  |NavigatorLanguage|NavigatorOnLine|Node|NodeFilter|NodeIterator|NodeList|NonDocumentTypeChildNode|Notification\n  |OfflineAudioCompletionEvent|OfflineAudioContext|OscillatorNode|PageTransitionEvent|PannerNode|ParentNode|PasswordCredential\n  |Path2D|PaymentAddress|PaymentRequest|PaymentResponse|Performance|PerformanceEntry|PerformanceFrameTiming|PerformanceMark\n  |PerformanceMeasure|PerformanceNavigation|PerformanceNavigationTiming|PerformanceObserver|PerformanceObserverEntryList\n  |PerformanceResourceTiming|PerformanceTiming|PeriodicSyncEvent|PeriodicWave|Plugin|Point|PointerEvent|PopStateEvent\n  |PortCollection|Position|PositionError|PositionOptions|PresentationConnectionClosedEvent|PresentationConnectionList\n  |PresentationReceiver|ProcessingInstruction|ProgressEvent|PromiseRejectionEvent|PushEvent|PushRegistrationManager\n  |RTCCertificate|RTCConfiguration|RTCPeerConnection|RTCSessionDescriptionCallback|RTCStatsReport|RadioNodeList|RandomSource\n  |Range|ReadableByteStream|RenderingContext|SVGAElement|SVGAngle|SVGAnimateColorElement|SVGAnimateElement|SVGAnimateMotionElement\n  |SVGAnimateTransformElement|SVGAnimatedAngle|SVGAnimatedBoolean|SVGAnimatedEnumeration|SVGAnimatedInteger|SVGAnimatedLength\n  |SVGAnimatedLengthList|SVGAnimatedNumber|SVGAnimatedNumberList|SVGAnimatedPoints|SVGAnimatedPreserveAspectRatio\n  |SVGAnimatedRect|SVGAnimatedString|SVGAnimatedTransformList|SVGAnimationElement|SVGCircleElement|SVGClipPathElement\n  |SVGCursorElement|SVGDefsElement|SVGDescElement|SVGElement|SVGEllipseElement|SVGEvent|SVGFilterElement|SVGFontElement\n  |SVGFontFaceElement|SVGFontFaceFormatElement|SVGFontFaceNameElement|SVGFontFaceSrcElement|SVGFontFaceUriElement\n  |SVGForeignObjectElement|SVGGElement|SVGGlyphElement|SVGGradientElement|SVGHKernElement|SVGImageElement|SVGLength\n  |SVGLengthList|SVGLineElement|SVGLinearGradientElement|SVGMPathElement|SVGMaskElement|SVGMatrix|SVGMissingGlyphElement\n  |SVGNumber|SVGNumberList|SVGPathElement|SVGPatternElement|SVGPoint|SVGPolygonElement|SVGPolylineElement|SVGPreserveAspectRatio\n  |SVGRadialGradientElement|SVGRect|SVGRectElement|SVGSVGElement|SVGScriptElement|SVGSetElement|SVGStopElement|SVGStringList\n  |SVGStylable|SVGStyleElement|SVGSwitchElement|SVGSymbolElement|SVGTRefElement|SVGTSpanElement|SVGTests|SVGTextElement\n  |SVGTextPositioningElement|SVGTitleElement|SVGTransform|SVGTransformList|SVGTransformable|SVGUseElement|SVGVKernElement\n  |SVGViewElement|ServiceWorker|ServiceWorkerContainer|ServiceWorkerGlobalScope|ServiceWorkerRegistration|ServiceWorkerState\n  |ShadowRoot|SharedWorker|SharedWorkerGlobalScope|SourceBufferList|StereoPannerNode|Storage|StorageEvent|StyleSheet\n  |StyleSheetList|SubtleCrypto|SyncEvent|Text|TextMetrics|TimeEvent|TimeRanges|Touch|TouchEvent|TouchList|Transferable\n  |TreeWalker|UIEvent|USVString|VRDisplayCapabilities|ValidityState|WaveShaperNode|WebGL|WebGLActiveInfo|WebGLBuffer\n  |WebGLContextEvent|WebGLFramebuffer|WebGLProgram|WebGLRenderbuffer|WebGLRenderingContext|WebGLShader|WebGLShaderPrecisionFormat\n  |WebGLTexture|WebGLTimerQueryEXT|WebGLTransformFeedback|WebGLUniformLocation|WebGLVertexArrayObject|WebGLVertexArrayObjectOES\n  |WebSocket|WebSockets|WebVTT|WheelEvent|Window|WindowBase64|WindowEventHandlers|WindowTimers|Worker|WorkerGlobalScope\n  |WorkerLocation|WorkerNavigator|XMLHttpRequest|XMLHttpRequestEventTarget|XMLSerializer|XPathExpression|XPathResult\n  |XSLTProcessor))\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>support.variable.dom.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>support.class.dom.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n  (ATTRIBUTE_NODE|CDATA_SECTION_NODE|COMMENT_NODE|DOCUMENT_FRAGMENT_NODE|DOCUMENT_NODE|DOCUMENT_TYPE_NODE\n  |DOMSTRING_SIZE_ERR|ELEMENT_NODE|ENTITY_NODE|ENTITY_REFERENCE_NODE|HIERARCHY_REQUEST_ERR|INDEX_SIZE_ERR\n  |INUSE_ATTRIBUTE_ERR|INVALID_CHARACTER_ERR|NO_DATA_ALLOWED_ERR|NO_MODIFICATION_ALLOWED_ERR|NOT_FOUND_ERR\n  |NOT_SUPPORTED_ERR|NOTATION_NODE|PROCESSING_INSTRUCTION_NODE|TEXT_NODE|WRONG_DOCUMENT_ERR)\n  |\n  (_content|[xyz]|abbr|above|accept|acceptCharset|accessKey|action|align|[av]Link(?:color)?|all|alt|anchors|appCodeName\n  |appCore|applets|appMinorVersion|appName|appVersion|archive|areas|arguments|attributes|availHeight|availLeft|availTop\n  |availWidth|axis|background|backgroundColor|backgroundImage|below|bgColor|body|border|borderBottomWidth|borderColor\n  |borderLeftWidth|borderRightWidth|borderStyle|borderTopWidth|borderWidth|bottom|bufferDepth|callee|caller|caption\n  |cellPadding|cells|cellSpacing|ch|characterSet|charset|checked|childNodes|chOff|cite|classes|className|clear\n  |clientInformation|clip|clipBoardData|closed|code|codeBase|codeType|color|colorDepth|cols|colSpan|compact|complete\n  |components|content|controllers|cookie|cookieEnabled|cords|cpuClass|crypto|current|data|dateTime|declare|defaultCharset\n  |defaultChecked|defaultSelected|defaultStatus|defaultValue|defaultView|defer|description|dialogArguments|dialogHeight\n  |dialogLeft|dialogTop|dialogWidth|dir|directories|disabled|display|docmain|doctype|documentElement|elements|embeds\n  |enabledPlugin|encoding|enctype|entities|event|expando|external|face|fgColor|filename|firstChild|fontFamily|fontSize\n  |fontWeight|form|formName|forms|frame|frameBorder|frameElement|frames|hasFocus|hash|headers|height|history|host\n  |hostname|href|hreflang|hspace|htmlFor|httpEquiv|id|ids|ignoreCase|images|implementation|index|innerHeight|innerWidth\n  |input|isMap|label|lang|language|lastChild|lastIndex|lastMatch|lastModified|lastParen|layer[sXY]|left|leftContext\n  |lineHeight|link|linkColor|links|listStyleType|localName|location|locationbar|longDesc|lowsrc|lowSrc|marginBottom\n  |marginHeight|marginLeft|marginRight|marginTop|marginWidth|maxLength|media|menubar|method|mimeTypes|multiline|multiple\n  |name|nameProp|namespaces|namespaceURI|next|nextSibling|nodeName|nodeType|nodeValue|noHref|noResize|noShade|notationName\n  |notations|noWrap|object|offscreenBuffering|onLine|onreadystatechange|opener|opsProfile|options|oscpu|outerHeight\n  |outerWidth|ownerDocument|paddingBottom|paddingLeft|paddingRight|paddingTop|page[XY]|page[XY]Offset|parent|parentLayer\n  |parentNode|parentWindow|pathname|personalbar|pixelDepth|pkcs11|platform|plugins|port|prefix|previous|previousDibling\n  |product|productSub|profile|profileend|prompt|prompter|protocol|publicId|readOnly|readyState|referrer|rel|responseText\n  |responseXML|rev|right|rightContext|rowIndex|rows|rowSpan|rules|scheme|scope|screen[XY]|screenLeft|screenTop|scripts\n  |scrollbars|scrolling|sectionRowIndex|security|securityPolicy|selected|selectedIndex|selection|self|shape|siblingAbove\n  |siblingBelow|size|source|specified|standby|start|status|statusbar|statusText|style|styleSheets|suffixes|summary\n  |systemId|systemLanguage|tagName|tags|target|tBodies|text|textAlign|textDecoration|textIndent|textTransform|tFoot|tHead\n  |title|toolbar|top|type|undefined|uniqueID|updateInterval|URL|URLUnencoded|useMap|userAgent|userLanguage|userProfile\n  |vAlign|value|valueType|vendor|vendorSub|version|visibility|vspace|whiteSpace|width|X[MS]LDocument|zIndex))\\b(?!\\$|\\s*(&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\\()</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>support.constant.dom.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>support.variable.property.dom.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>support.class.node.tsx</string>\n            <key>match</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(Buffer|EventEmitter|Server|Pipe|Socket|REPLServer|ReadStream|WriteStream|Stream\n  |Inflate|Deflate|InflateRaw|DeflateRaw|GZip|GUnzip|Unzip|Zip)\\b(?!\\$)</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(process)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?:\n  (arch|argv|config|connected|env|execArgv|execPath|exitCode|mainModule|pid|platform|release|stderr|stdin|stdout|title|version|versions)\n  |\n  (abort|chdir|cwd|disconnect|exit|[sg]ete?[gu]id|send|[sg]etgroups|initgroups|kill|memoryUsage|nextTick|umask|uptime|hrtime)\n))?\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>support.variable.object.process.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>support.variable.property.process.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>support.function.process.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>support.type.object.module.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>support.type.object.module.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>support.type.object.module.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>support.variable.object.node.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(global|GLOBAL|root|__dirname|__filename)\\b(?!\\$)</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s*\n(?:\n (on(?:Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset|\n   Readystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove|\n   Before(?:cut|deactivate|unload|update|paste|print|editfocus|activate)|\n   Blur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help|\n   Change|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate|\n   Datasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover|\n   Dragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error|\n   Errorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort)\n ) |\n (shift|showModelessDialog|showModalDialog|showHelp|scroll|scrollX|scrollByPages|\n   scrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|\n   sup|sub|substr|substring|splice|split|send|set(?:Milliseconds|Seconds|Minutes|Hours|\n   Month|Year|FullYear|Date|UTC(?:Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|\n   Time|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|\n   savePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|\n   contextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|\n   createEventObject|to(?:GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|\n   test|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|\n   untaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|\n   print|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|\n   fileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|\n   forward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|\n   abort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|\n   releaseCapture|releaseEvents|go|get(?:Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|\n   Time|Date|TimezoneOffset|UTC(?:Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|\n   Attention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|\n   moveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back\n ) |\n (acceptNode|add|addEventListener|addTextTrack|adoptNode|after|animate|append|\n   appendChild|appendData|before|blur|canPlayType|captureStream|\n   caretPositionFromPoint|caretRangeFromPoint|checkValidity|clear|click|\n   cloneContents|cloneNode|cloneRange|close|closest|collapse|\n   compareBoundaryPoints|compareDocumentPosition|comparePoint|contains|\n   convertPointFromNode|convertQuadFromNode|convertRectFromNode|createAttribute|\n   createAttributeNS|createCaption|createCDATASection|createComment|\n   createContextualFragment|createDocument|createDocumentFragment|\n   createDocumentType|createElement|createElementNS|createEntityReference|\n   createEvent|createExpression|createHTMLDocument|createNodeIterator|\n   createNSResolver|createProcessingInstruction|createRange|createShadowRoot|\n   createTBody|createTextNode|createTFoot|createTHead|createTreeWalker|delete|\n   deleteCaption|deleteCell|deleteContents|deleteData|deleteRow|deleteTFoot|\n   deleteTHead|detach|disconnect|dispatchEvent|elementFromPoint|elementsFromPoint|\n   enableStyleSheetsForSet|entries|evaluate|execCommand|exitFullscreen|\n   exitPointerLock|expand|extractContents|fastSeek|firstChild|focus|forEach|get|\n   getAll|getAnimations|getAttribute|getAttributeNames|getAttributeNode|\n   getAttributeNodeNS|getAttributeNS|getBoundingClientRect|getBoxQuads|\n   getClientRects|getContext|getDestinationInsertionPoints|getElementById|\n   getElementsByClassName|getElementsByName|getElementsByTagName|\n   getElementsByTagNameNS|getItem|getNamedItem|getSelection|getStartDate|\n   getVideoPlaybackQuality|has|hasAttribute|hasAttributeNS|hasAttributes|\n   hasChildNodes|hasFeature|hasFocus|importNode|initEvent|insertAdjacentElement|\n   insertAdjacentHTML|insertAdjacentText|insertBefore|insertCell|insertData|\n   insertNode|insertRow|intersectsNode|isDefaultNamespace|isEqualNode|\n   isPointInRange|isSameNode|item|key|keys|lastChild|load|lookupNamespaceURI|\n   lookupPrefix|matches|move|moveAttribute|moveAttributeNode|moveChild|\n   moveNamedItem|namedItem|nextNode|nextSibling|normalize|observe|open|\n   parentNode|pause|play|postMessage|prepend|preventDefault|previousNode|\n   previousSibling|probablySupportsContext|queryCommandEnabled|\n   queryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandValue|\n   querySelector|querySelectorAll|registerContentHandler|registerElement|\n   registerProtocolHandler|releaseCapture|releaseEvents|remove|removeAttribute|\n   removeAttributeNode|removeAttributeNS|removeChild|removeEventListener|\n   removeItem|replace|replaceChild|replaceData|replaceWith|reportValidity|\n   requestFullscreen|requestPointerLock|reset|scroll|scrollBy|scrollIntoView|\n   scrollTo|seekToNextFrame|select|selectNode|selectNodeContents|set|setAttribute|\n   setAttributeNode|setAttributeNodeNS|setAttributeNS|setCapture|\n   setCustomValidity|setEnd|setEndAfter|setEndBefore|setItem|setNamedItem|\n   setRangeText|setSelectionRange|setSinkId|setStart|setStartAfter|setStartBefore|\n   slice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|\n   submit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|\n   toDataURL|toggle|toString|values|write|writeln\n ) |\n (all|catch|finally|race|reject|resolve|then\n )\n)(?=\\s*\\()</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>support.function.event-handler.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>support.function.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>support.function.dom.tsx</string>\n              </dict>\n              <key>6</key>\n              <dict>\n                <key>name</key>\n                <string>support.function.promise.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>identifiers</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#object-identifiers</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n  ((async\\s+)?(\n    (function\\s*[(&lt;*]) |\n    (function\\s+) |\n    ([_$[:alpha:]][_$[:alnum:]]*\\s*=&gt;)\n  )) |\n  ((async\\s*)?(\n    ((&lt;\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n    # sure shot arrow functions even if =&gt; is on new line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?\n  [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n  (\n    ([)]\\s*:) |                                                                                       # ():\n    ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)                                                                  # [(]param: | [(]...param:\n  )\n) |\n(\n  [&lt;]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=&gt;]                                                              # &lt; typeparam extends\n) |\n# arrow function possible to detect only with =&gt; on same line\n(\n  (&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;]|\\&lt;\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=&lt;&gt;]|=[^&lt;])*\\&gt;)*\\&gt;)*&gt;\\s*)?                                                                                 # typeparameters\n  \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)   # parameters\n  (\\s*:\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?                                                                        # return type\n  \\s*=&gt;                                                                                               # arrow operator\n)\n  ))\n))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.constant.property.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.property.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>variable.other.constant.tsx</string>\n            <key>match</key>\n            <string>([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>variable.other.readwrite.tsx</string>\n            <key>match</key>\n            <string>[_$[:alpha:]][_$[:alnum:]]*</string>\n          </dict>\n        </array>\n      </dict>\n      <key>object-identifiers</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>support.class.tsx</string>\n            <key>match</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n  (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n  (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.constant.object.property.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.object.property.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?:\n  ([[:upper:]][_$[:digit:][:upper:]]*) |\n  ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.constant.object.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.object.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>type-annotation</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.type.annotation.tsx</string>\n            <key>begin</key>\n            <string>(:)(?=\\s*\\S)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.annotation.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;![:|&amp;])(?!\\s*[|&amp;]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^&gt;])|((?&lt;=[\\}&gt;\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.type.annotation.tsx</string>\n            <key>begin</key>\n            <string>(:)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.annotation.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;![:|&amp;])((?=[,);\\}\\]]|\\/\\/)|(?==[^&gt;])|(?=^\\s*$)|((?&lt;=[\\}&gt;\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>parameter-type-annotation</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.type.annotation.tsx</string>\n            <key>begin</key>\n            <string>(:)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.annotation.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=[,)])|(?==[^&gt;])</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>return-type</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.return.type.tsx</string>\n            <key>begin</key>\n            <string>(?&lt;=\\))\\s*(:)(?=\\s*\\S)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.annotation.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;![:|&amp;])(?=$|^|[{};,]|//)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#return-type-core</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.return.type.tsx</string>\n            <key>begin</key>\n            <string>(?&lt;=\\))\\s*(:)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.annotation.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;![:|&amp;])((?=[{};,]|//|^\\s*$)|((?&lt;=\\S)(?=\\s*$)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#return-type-core</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>return-type-core</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;=[:|&amp;])(?=\\s*\\{)</string>\n            <key>end</key>\n            <string>(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type-object</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-predicate-operator</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n        </array>\n      </dict>\n      <key>arrow-return-type</key>\n      <dict>\n        <key>name</key>\n        <string>meta.return.type.arrow.tsx</string>\n        <key>begin</key>\n        <string>(?&lt;=\\))\\s*(:)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.type.annotation.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?==&gt;|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#arrow-return-type-body</string>\n          </dict>\n        </array>\n      </dict>\n      <key>possibly-arrow-return-type</key>\n      <dict>\n        <key>begin</key>\n        <string>(?&lt;=\\)|^)\\s*(:)(?=\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=&gt;)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>meta.arrow.tsx meta.return.type.arrow.tsx keyword.operator.type.annotation.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?==&gt;|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))</string>\n        <key>contentName</key>\n        <string>meta.arrow.tsx meta.return.type.arrow.tsx</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#arrow-return-type-body</string>\n          </dict>\n        </array>\n      </dict>\n      <key>arrow-return-type-body</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;=[:])(?=\\s*\\{)</string>\n            <key>end</key>\n            <string>(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type-object</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-predicate-operator</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-parameters</key>\n      <dict>\n        <key>name</key>\n        <string>meta.type.parameters.tsx</string>\n        <key>begin</key>\n        <string>(&lt;)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.typeparameters.begin.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(&gt;)</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.typeparameters.end.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>storage.modifier.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.assignment.tsx</string>\n            <key>match</key>\n            <string>(=)(?!&gt;)</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-arguments</key>\n      <dict>\n        <key>name</key>\n        <string>meta.type.parameters.tsx</string>\n        <key>begin</key>\n        <string>\\&lt;</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.typeparameters.begin.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\&gt;</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.typeparameters.end.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#type-arguments-body</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-arguments-body</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n            <key>captures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-string</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#numeric-literal</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-primitive</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-builtin-literals</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-parameters</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-tuple</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-object</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-operators</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-conditional</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-fn-type-parameters</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-paren-or-function-parameters</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-function-return-type</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-name</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-primitive</key>\n      <dict>\n        <key>name</key>\n        <string>support.type.primitive.tsx</string>\n        <key>match</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n      </dict>\n      <key>type-builtin-literals</key>\n      <dict>\n        <key>name</key>\n        <string>support.type.builtin.tsx</string>\n        <key>match</key>\n        <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n      </dict>\n      <key>type-tuple</key>\n      <dict>\n        <key>name</key>\n        <string>meta.type.tuple.tsx</string>\n        <key>begin</key>\n        <string>\\[</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.square.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\]</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.square.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.rest.tsx</string>\n            <key>match</key>\n            <string>\\.\\.\\.</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.label.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.optional.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.separator.label.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-object</key>\n      <dict>\n        <key>name</key>\n        <string>meta.object.type.tsx</string>\n        <key>begin</key>\n        <string>\\{</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.block.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#method-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#indexer-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#indexer-mapped-type-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#field-declaration</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-annotation</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>\\.\\.\\.</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.spread.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\}|;|,|$)|(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-comma</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#punctuation-semicolon</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-conditional</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(extends)\\s+</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;=:)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>begin</key>\n                <string>\\?</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>keyword.operator.ternary.tsx</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>:</string>\n                <key>endCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>keyword.operator.ternary.tsx</string>\n                  </dict>\n                </dict>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#type</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>type-paren-or-function-parameters</key>\n      <dict>\n        <key>name</key>\n        <string>meta.type.paren.cover.tsx</string>\n        <key>begin</key>\n        <string>\\(</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.round.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\)</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>meta.brace.round.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?&lt;!=|:)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n  (&lt;) |\n  ([(]\\s*(\n    ([)]) |\n    (\\.\\.\\.) |\n    ([_$[:alnum:]]+\\s*(\n      ([:,?=])|\n      ([)]\\s*=&gt;)\n    ))\n  ))\n)) |\n(:\\s*(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((&lt;\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^&lt;&gt;\\(\\)\\{\\}]|\\&lt;([^&lt;&gt;]|\\&lt;([^&lt;&gt;]|\\&lt;[^&lt;&gt;]+\\&gt;)+\\&gt;)+\\&gt;|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.rest.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.tsx variable.language.this.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.optional.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?&lt;!=|:)(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.rest.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.tsx variable.language.this.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.optional.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-annotation</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>punctuation.separator.parameter.tsx</string>\n            <key>match</key>\n            <string>,</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-fn-type-parameters</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\&lt;)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.type.constructor.tsx storage.modifier.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>meta.type.constructor.tsx keyword.control.new.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;=&gt;)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-parameters</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.type.constructor.tsx</string>\n            <key>begin</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.modifier.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.control.new.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;=\\))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#function-parameters</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.type.function.tsx</string>\n            <key>begin</key>\n            <string>(?x)(\n  (?=\n    [(]\\s*(\n      ([)]) |\n      (\\.\\.\\.) |\n      ([_$[:alnum:]]+\\s*(\n        ([:,?=])|\n        ([)]\\s*=&gt;)\n      ))\n    )\n  )\n)</string>\n            <key>end</key>\n            <string>(?&lt;=\\))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#function-parameters</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>type-function-return-type</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.type.function.return.tsx</string>\n            <key>begin</key>\n            <string>(=&gt;)(?=\\s*\\S)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.function.arrow.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;!=&gt;)(?&lt;![|&amp;])(?=[,\\]\\)\\{\\}=;&gt;:\\?]|//|$)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type-function-return-type-core</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.type.function.return.tsx</string>\n            <key>begin</key>\n            <string>=&gt;</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.function.arrow.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;!=&gt;)(?&lt;![|&amp;])((?=[,\\]\\)\\{\\}=;:\\?&gt;]|//|^\\s*$)|((?&lt;=\\S)(?=\\s*$)))</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type-function-return-type-core</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>type-function-return-type-core</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?&lt;==&gt;)(?=\\s*\\{)</string>\n            <key>end</key>\n            <string>(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type-object</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-predicate-operator</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-operators</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#typeof-operator</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#type-infer</string>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>([&amp;|])(?=\\s*\\{)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?&lt;=\\})</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type-object</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>[&amp;|]</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\S)</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.keyof.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.ternary.tsx</string>\n            <key>match</key>\n            <string>(\\?|\\:)</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.import.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))import(?=\\s*\\()</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-infer</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?</string>\n            <key>name</key>\n            <string>meta.type.infer.tsx</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.expression.infer.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.expression.extends.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>type-predicate-operator</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.asserts.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.tsx variable.language.this.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.expression.is.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.type.asserts.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.tsx variable.language.this.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.parameter.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.type.asserts.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.expression.is.tsx</string>\n            <key>match</key>\n            <string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\\.\\.\\.)|(?&lt;!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))</string>\n          </dict>\n        </array>\n      </dict>\n      <key>type-name</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(&lt;)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.module.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(&gt;)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx</string>\n              </dict>\n            </dict>\n            <key>contentName</key>\n            <string>meta.type.parameters.tsx</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type-arguments-body</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)\\s*(&lt;)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(&gt;)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx</string>\n              </dict>\n            </dict>\n            <key>contentName</key>\n            <string>meta.type.parameters.tsx</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type-arguments-body</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.module.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.accessor.optional.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>entity.name.type.tsx</string>\n            <key>match</key>\n            <string>[_$[:alpha:]][_$[:alnum:]]*</string>\n          </dict>\n        </array>\n      </dict>\n      <key>punctuation-comma</key>\n      <dict>\n        <key>name</key>\n        <string>punctuation.separator.comma.tsx</string>\n        <key>match</key>\n        <string>,</string>\n      </dict>\n      <key>punctuation-semicolon</key>\n      <dict>\n        <key>name</key>\n        <string>punctuation.terminator.statement.tsx</string>\n        <key>match</key>\n        <string>;</string>\n      </dict>\n      <key>punctuation-accessor</key>\n      <dict>\n        <key>match</key>\n        <string>(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))</string>\n        <key>captures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.accessor.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.accessor.optional.tsx</string>\n          </dict>\n        </dict>\n      </dict>\n      <key>string</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#qstring-single</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#qstring-double</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#template</string>\n          </dict>\n        </array>\n      </dict>\n      <key>qstring-double</key>\n      <dict>\n        <key>name</key>\n        <string>string.quoted.double.tsx</string>\n        <key>begin</key>\n        <string>\"</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.string.begin.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(\")|((?:[^\\\\\\n])$)</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.string.end.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>invalid.illegal.newline.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#string-character-escape</string>\n          </dict>\n        </array>\n      </dict>\n      <key>qstring-single</key>\n      <dict>\n        <key>name</key>\n        <string>string.quoted.single.tsx</string>\n        <key>begin</key>\n        <string>'</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.string.begin.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(\\')|((?:[^\\\\\\n])$)</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.string.end.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>invalid.illegal.newline.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#string-character-escape</string>\n          </dict>\n        </array>\n      </dict>\n      <key>string-character-escape</key>\n      <dict>\n        <key>name</key>\n        <string>constant.character.escape.tsx</string>\n        <key>match</key>\n        <string>\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)</string>\n      </dict>\n      <key>template</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#template-call</string>\n          </dict>\n          <dict>\n            <key>contentName</key>\n            <string>string.template.tsx</string>\n            <key>begin</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)?(`)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.tagged-template.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>string.template.tsx punctuation.definition.string.template.begin.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>`</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>string.template.tsx punctuation.definition.string.template.end.tsx</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#template-substitution-element</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#string-character-escape</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>template-call</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))(([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;)*(?&lt;!=)\\&gt;))*(?&lt;!=)\\&gt;)*(?&lt;!=)&gt;\\s*)?`)</string>\n            <key>end</key>\n            <string>(?=`)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>begin</key>\n                <string>(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))</string>\n                <key>end</key>\n                <string>(?=(&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))(([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;)*(?&lt;!=)\\&gt;))*(?&lt;!=)\\&gt;)*(?&lt;!=)&gt;\\s*)?`)</string>\n                <key>patterns</key>\n                <array>\n                  <dict>\n                    <key>include</key>\n                    <string>#support-function-call-identifiers</string>\n                  </dict>\n                  <dict>\n                    <key>name</key>\n                    <string>entity.name.function.tagged-template.tsx</string>\n                    <key>match</key>\n                    <string>([_$[:alpha:]][_$[:alnum:]]*)</string>\n                  </dict>\n                </array>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-arguments</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))(([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;|\\&lt;\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\&lt;\\&gt;\\,\\.\\[]|=&gt;|&amp;(?!&amp;)|\\|(?!\\|)))))([^&lt;&gt;\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?&lt;==)\\&gt;)*(?&lt;!=)\\&gt;))*(?&lt;!=)\\&gt;)*(?&lt;!=)&gt;\\s*)`)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.tagged-template.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=`)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#type-arguments</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>template-substitution-element</key>\n      <dict>\n        <key>name</key>\n        <string>meta.template.expression.tsx</string>\n        <key>begin</key>\n        <string>\\$\\{</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.template-expression.begin.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.template-expression.end.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n        </array>\n        <key>contentName</key>\n        <string>meta.embedded.line.tsx</string>\n      </dict>\n      <key>type-string</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#qstring-single</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#qstring-double</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#template-type</string>\n          </dict>\n        </array>\n      </dict>\n      <key>template-type</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#template-call</string>\n          </dict>\n          <dict>\n            <key>contentName</key>\n            <string>string.template.tsx</string>\n            <key>begin</key>\n            <string>([_$[:alpha:]][_$[:alnum:]]*)?(`)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.function.tagged-template.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>string.template.tsx punctuation.definition.string.template.begin.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>`</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>string.template.tsx punctuation.definition.string.template.end.tsx</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#template-type-substitution-element</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#string-character-escape</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>template-type-substitution-element</key>\n      <dict>\n        <key>name</key>\n        <string>meta.template.expression.tsx</string>\n        <key>begin</key>\n        <string>\\$\\{</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.template-expression.begin.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>\\}</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.template-expression.end.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#type</string>\n          </dict>\n        </array>\n        <key>contentName</key>\n        <string>meta.embedded.line.tsx</string>\n      </dict>\n      <key>regex</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>string.regexp.tsx</string>\n            <key>begin</key>\n            <string>(?&lt;!\\+\\+|--|})(?&lt;=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=&gt;|&amp;&amp;|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuvy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.string.begin.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(/)([dgimsuvy]*)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.string.end.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.other.tsx</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#regexp</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>string.regexp.tsx</string>\n            <key>begin</key>\n            <string>((?&lt;![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?&lt;=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuvy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.string.begin.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(/)([dgimsuvy]*)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.string.end.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.other.tsx</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#regexp</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>regexp</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>keyword.control.anchor.regexp</string>\n            <key>match</key>\n            <string>\\\\[bB]|\\^|\\$</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>\\\\[1-9]\\d*|\\\\k&lt;([a-zA-Z_$][\\w$]*)&gt;</string>\n            <key>captures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.other.back-reference.regexp</string>\n              </dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.regexp</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.quantifier.regexp</string>\n            <key>match</key>\n            <string>[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>keyword.operator.or.regexp</string>\n            <key>match</key>\n            <string>\\|</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.group.assertion.regexp</string>\n            <key>begin</key>\n            <string>(\\()((\\?=)|(\\?!)|(\\?&lt;=)|(\\?&lt;!))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.group.regexp</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.group.assertion.regexp</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>meta.assertion.look-ahead.regexp</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>meta.assertion.negative-look-ahead.regexp</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>meta.assertion.look-behind.regexp</string>\n              </dict>\n              <key>6</key>\n              <dict>\n                <key>name</key>\n                <string>meta.assertion.negative-look-behind.regexp</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(\\))</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.group.regexp</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#regexp</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.group.regexp</string>\n            <key>begin</key>\n            <string>\\((?:(\\?:)|(?:\\?&lt;([a-zA-Z_$][\\w$]*)&gt;))?</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.group.regexp</string>\n              </dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.group.no-capture.regexp</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.regexp</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.group.regexp</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#regexp</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>constant.other.character-class.set.regexp</string>\n            <key>begin</key>\n            <string>(\\[)(\\^)?</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.character-class.regexp</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.negation.regexp</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(\\])</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.character-class.regexp</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>name</key>\n                <string>constant.other.character-class.range.regexp</string>\n                <key>match</key>\n                <string>(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))</string>\n                <key>captures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>constant.character.numeric.regexp</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>constant.character.control.regexp</string>\n                  </dict>\n                  <key>3</key>\n                  <dict>\n                    <key>name</key>\n                    <string>constant.character.escape.backslash.regexp</string>\n                  </dict>\n                  <key>4</key>\n                  <dict>\n                    <key>name</key>\n                    <string>constant.character.numeric.regexp</string>\n                  </dict>\n                  <key>5</key>\n                  <dict>\n                    <key>name</key>\n                    <string>constant.character.control.regexp</string>\n                  </dict>\n                  <key>6</key>\n                  <dict>\n                    <key>name</key>\n                    <string>constant.character.escape.backslash.regexp</string>\n                  </dict>\n                </dict>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#regex-character-class</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#regex-character-class</string>\n          </dict>\n        </array>\n      </dict>\n      <key>regex-character-class</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>constant.other.character-class.regexp</string>\n            <key>match</key>\n            <string>\\\\[wWsSdDtrnvf]|\\.</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>constant.character.numeric.regexp</string>\n            <key>match</key>\n            <string>\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>constant.character.control.regexp</string>\n            <key>match</key>\n            <string>\\\\c[A-Z]</string>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>constant.character.escape.backslash.regexp</string>\n            <key>match</key>\n            <string>\\\\.</string>\n          </dict>\n        </array>\n      </dict>\n      <key>comment</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>comment.block.documentation.tsx</string>\n            <key>begin</key>\n            <string>/\\*\\*(?!/)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.comment.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\*/</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.comment.tsx</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#docblock</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>comment.block.tsx</string>\n            <key>begin</key>\n            <string>(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.comment.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.internaldeclaration.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.decorator.internaldeclaration.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>\\*/</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.comment.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.whitespace.comment.leading.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>comment.line.double-slash.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.comment.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.internaldeclaration.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.decorator.internaldeclaration.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=$)</string>\n            <key>contentName</key>\n            <string>comment.line.double-slash.tsx</string>\n          </dict>\n        </array>\n      </dict>\n      <key>single-line-comment-consuming-line-ending</key>\n      <dict>\n        <key>begin</key>\n        <string>(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.whitespace.comment.leading.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>comment.line.double-slash.tsx</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.comment.tsx</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>storage.type.internaldeclaration.tsx</string>\n          </dict>\n          <key>5</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.decorator.internaldeclaration.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?=^)</string>\n        <key>contentName</key>\n        <string>comment.line.double-slash.tsx</string>\n      </dict>\n      <key>directives</key>\n      <dict>\n        <key>name</key>\n        <string>comment.line.triple-slash.directive.tsx</string>\n        <key>begin</key>\n        <string>^(///)\\s*(?=&lt;(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/&gt;\\s*$)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.comment.tsx</string>\n          </dict>\n        </dict>\n        <key>end</key>\n        <string>(?=$)</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>meta.tag.tsx</string>\n            <key>begin</key>\n            <string>(&lt;)(reference|amd-dependency|amd-module)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.tag.directive.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.tag.directive.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>/&gt;</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.tag.directive.tsx</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>name</key>\n                <string>entity.other.attribute-name.directive.tsx</string>\n                <key>match</key>\n                <string>path|types|no-default-lib|lib|name|resolution-mode</string>\n              </dict>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.assignment.tsx</string>\n                <key>match</key>\n                <string>=</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#string</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>docblock</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>match</key>\n            <string>(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>constant.language.access-type.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)\n((@)author)\n\\s+\n(\n  [^@\\s&lt;&gt;*/]\n  (?:[^@&lt;&gt;*/]|\\*[^/])*\n)\n(?:\n  \\s*\n  (&lt;)\n  ([^&gt;\\s]+)\n  (&gt;)\n)?</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.instance.jsdoc</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.bracket.angle.begin.jsdoc</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>constant.other.email.link.underline.jsdoc</string>\n              </dict>\n              <key>6</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.bracket.angle.end.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+)    # &lt;that namepath&gt;\n\\s+ (as) \\s+              # as\n((?:[^@\\s*/]|\\*[^/])+)    # &lt;this namepath&gt;</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.instance.jsdoc</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>keyword.operator.control.jsdoc</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.instance.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>meta.example.jsdoc</string>\n            <key>begin</key>\n            <string>((@)example)\\s+</string>\n            <key>end</key>\n            <string>(?=@|\\*/)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>match</key>\n                <string>^\\s\\*\\s+</string>\n              </dict>\n              <dict>\n                <key>contentName</key>\n                <string>constant.other.description.jsdoc</string>\n                <key>begin</key>\n                <string>\\G(&lt;)caption(&gt;)</string>\n                <key>beginCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>entity.name.tag.inline.jsdoc</string>\n                  </dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.definition.bracket.angle.begin.jsdoc</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.definition.bracket.angle.end.jsdoc</string>\n                  </dict>\n                </dict>\n                <key>end</key>\n                <string>(&lt;/)caption(&gt;)|(?=\\*/)</string>\n                <key>endCaptures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>entity.name.tag.inline.jsdoc</string>\n                  </dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.definition.bracket.angle.begin.jsdoc</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.definition.bracket.angle.end.jsdoc</string>\n                  </dict>\n                </dict>\n              </dict>\n              <dict>\n                <key>match</key>\n                <string>[^\\s@*](?:[^*]|\\*[^/])*</string>\n                <key>captures</key>\n                <dict>\n                  <key>0</key>\n                  <dict>\n                    <key>name</key>\n                    <string>source.embedded.tsx</string>\n                  </dict>\n                </dict>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>constant.language.symbol-type.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)\n((@)see)\n\\s+\n(?:\n  # URL\n  (\n    (?=https?://)\n    (?:[^\\s*]|\\*[^/])+\n  )\n  |\n  # JSDoc namepath\n  (\n    (?!\n      # Avoid matching bare URIs (also acceptable as links)\n      https?://\n      |\n      # Avoid matching {@inline tags}; we match those below\n      (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n      {@(?:link|linkcode|linkplain|tutorial)\\b\n    )\n    # Matched namepath\n    (?:[^@\\s*/]|\\*[^/])+\n  )\n)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.link.underline.jsdoc</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.instance.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n  [A-Za-z_$]         # First character: non-numeric word character\n  [\\w$.\\[\\]]*        # Rest of identifier\n  (?:                # Possible list of additional identifiers\n    \\s* , \\s*\n    [A-Za-z_$]\n    [\\w$.\\[\\]]*\n  )*\n)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?x)((@)template)\\s+(?={)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#jsdoctype</string>\n              </dict>\n              <dict>\n                <key>name</key>\n                <string>variable.other.jsdoc</string>\n                <key>match</key>\n                <string>([A-Za-z_$][\\w$.\\[\\]]*)</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)\n(\n  (@)\n  (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n  [A-Za-z_$]\n  [\\w$.\\[\\]]*\n)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>((@)typedef)\\s+(?={)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#jsdoctype</string>\n              </dict>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.instance.jsdoc</string>\n                <key>match</key>\n                <string>(?:[^@\\s*/]|\\*[^/])+</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#jsdoctype</string>\n              </dict>\n              <dict>\n                <key>name</key>\n                <string>variable.other.jsdoc</string>\n                <key>match</key>\n                <string>([A-Za-z_$][\\w$.\\[\\]]*)</string>\n              </dict>\n              <dict>\n                <key>name</key>\n                <string>variable.other.jsdoc</string>\n                <key>match</key>\n                <string>(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n  (?:\\[\\])?                                        # Foo[ ].bar properties within an array\n  \\.                                                # Foo.Bar namespaced parameter\n  [\\w$]+\n)*\n(?:\n  \\s*\n  (=)                                                # [foo=bar] Default parameter value\n  \\s*\n  (\n    # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n    (?&gt;\n      \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" |                      # [foo=\"bar\"] Double-quoted\n      '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' |                      # [foo='bar'] Single-quoted\n      \\[ (?:(?:\\*(?!/))|[^*])*? \\] |                                # [foo=[1,2]] Array literal\n      (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*   # Everything else\n    )*\n  )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))</string>\n                <key>captures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.definition.optional-value.begin.bracket.square.jsdoc</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>keyword.operator.assignment.jsdoc</string>\n                  </dict>\n                  <key>3</key>\n                  <dict>\n                    <key>name</key>\n                    <string>source.embedded.tsx</string>\n                  </dict>\n                  <key>4</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.definition.optional-value.end.bracket.square.jsdoc</string>\n                  </dict>\n                  <key>5</key>\n                  <dict>\n                    <key>name</key>\n                    <string>invalid.illegal.syntax.jsdoc</string>\n                  </dict>\n                </dict>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(?x)\n(\n  (@)\n  (?:define|enum|exception|export|extends|lends|implements|modifies\n  |namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n  |yields?)\n)\n\\s+(?={)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#jsdoctype</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>(?x)\n(\n  (@)\n  (?:alias|augments|callback|constructs|emits|event|fires|exports?\n  |extends|external|function|func|host|lends|listens|interface|memberof!?\n  |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n  (?:\n    [^{}@\\s*] | \\*[^/]\n  )+\n)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.instance.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>contentName</key>\n            <string>variable.other.jsdoc</string>\n            <key>begin</key>\n            <string>((@)(?:default(?:value)?|license|version))\\s+(([''\"]))</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.jsdoc</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.string.begin.jsdoc</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(\\3)|(?=$|\\*/)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.jsdoc</string>\n              </dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.string.end.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>variable.other.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>storage.type.class.jsdoc</string>\n            <key>match</key>\n            <string>(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#inline-tags</string>\n          </dict>\n          <dict>\n            <key>match</key>\n            <string>((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.block.tag.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>brackets</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>{</string>\n            <key>end</key>\n            <string>}|(?=\\*/)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#brackets</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>\\[</string>\n            <key>end</key>\n            <string>\\]|(?=\\*/)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#brackets</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>inline-tags</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>constant.other.description.jsdoc</string>\n            <key>match</key>\n            <string>(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.bracket.square.begin.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.bracket.square.end.jsdoc</string>\n              </dict>\n            </dict>\n          </dict>\n          <dict>\n            <key>name</key>\n            <string>entity.name.type.instance.jsdoc</string>\n            <key>begin</key>\n            <string>({)((@)(?:link(?:code|plain)?|tutorial))\\s*</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.bracket.curly.begin.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>storage.type.class.jsdoc</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.inline.tag.jsdoc</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>}|(?=\\*/)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.bracket.curly.end.jsdoc</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>match</key>\n                <string>\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?</string>\n                <key>captures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>variable.other.link.underline.jsdoc</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.separator.pipe.jsdoc</string>\n                  </dict>\n                </dict>\n              </dict>\n              <dict>\n                <key>match</key>\n                <string>\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?</string>\n                <key>captures</key>\n                <dict>\n                  <key>1</key>\n                  <dict>\n                    <key>name</key>\n                    <string>variable.other.description.jsdoc</string>\n                  </dict>\n                  <key>2</key>\n                  <dict>\n                    <key>name</key>\n                    <string>punctuation.separator.pipe.jsdoc</string>\n                  </dict>\n                </dict>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>jsdoctype</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>invalid.illegal.type.jsdoc</string>\n            <key>match</key>\n            <string>\\G{(?:[^}*]|\\*[^/}])+$</string>\n          </dict>\n          <dict>\n            <key>contentName</key>\n            <string>entity.name.type.instance.jsdoc</string>\n            <key>begin</key>\n            <string>\\G({)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>0</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.instance.jsdoc</string>\n              </dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.bracket.curly.begin.jsdoc</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>((}))\\s*|(?=\\*/)</string>\n            <key>endCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.type.instance.jsdoc</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.bracket.curly.end.jsdoc</string>\n              </dict>\n            </dict>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#brackets</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>jsx</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#jsx-tag-without-attributes-in-expression</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#jsx-tag-in-expression</string>\n          </dict>\n        </array>\n      </dict>\n      <key>jsx-tag-without-attributes-in-expression</key>\n      <dict>\n        <key>begin</key>\n        <string>(?&lt;!\\+\\+|--)(?&lt;=[({\\[,?=&gt;:*]|&amp;&amp;|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(&lt;)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?&lt;!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?&lt;!\\.|-))?\\s*(&gt;))</string>\n        <key>end</key>\n        <string>(?!(&lt;)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?&lt;!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?&lt;!\\.|-))?\\s*(&gt;))</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#jsx-tag-without-attributes</string>\n          </dict>\n        </array>\n      </dict>\n      <key>jsx-tag-without-attributes</key>\n      <dict>\n        <key>name</key>\n        <string>meta.tag.without-attributes.tsx</string>\n        <key>begin</key>\n        <string>(&lt;)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?&lt;!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?&lt;!\\.|-))?\\s*(&gt;)</string>\n        <key>end</key>\n        <string>(&lt;/)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?&lt;!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?&lt;!\\.|-))?\\s*(&gt;)</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.tag.begin.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>entity.name.tag.namespace.tsx</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.separator.namespace.tsx</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>entity.name.tag.tsx</string>\n          </dict>\n          <key>5</key>\n          <dict>\n            <key>name</key>\n            <string>support.class.component.tsx</string>\n          </dict>\n          <key>6</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.tag.end.tsx</string>\n          </dict>\n        </dict>\n        <key>endCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.tag.begin.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>entity.name.tag.namespace.tsx</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.separator.namespace.tsx</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>entity.name.tag.tsx</string>\n          </dict>\n          <key>5</key>\n          <dict>\n            <key>name</key>\n            <string>support.class.component.tsx</string>\n          </dict>\n          <key>6</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.tag.end.tsx</string>\n          </dict>\n        </dict>\n        <key>contentName</key>\n        <string>meta.jsx.children.tsx</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#jsx-children</string>\n          </dict>\n        </array>\n      </dict>\n      <key>jsx-tag-in-expression</key>\n      <dict>\n        <key>begin</key>\n        <string>(?x)\n  (?&lt;!\\+\\+|--)(?&lt;=[({\\[,?=&gt;:*]|&amp;&amp;|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*\n  (?!&lt;\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=&gt;])|,)) # look ahead is not type parameter of arrow\n  (?=(&lt;)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?&lt;!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?&lt;!\\.|-))(?=((&lt;\\s*)|(\\s+))(?!\\?)|\\/?&gt;))</string>\n        <key>end</key>\n        <string>(?!(&lt;)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?&lt;!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?&lt;!\\.|-))(?=((&lt;\\s*)|(\\s+))(?!\\?)|\\/?&gt;))</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#jsx-tag</string>\n          </dict>\n        </array>\n      </dict>\n      <key>jsx-tag</key>\n      <dict>\n        <key>name</key>\n        <string>meta.tag.tsx</string>\n        <key>begin</key>\n        <string>(?=(&lt;)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?&lt;!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?&lt;!\\.|-))(?=((&lt;\\s*)|(\\s+))(?!\\?)|\\/?&gt;))</string>\n        <key>end</key>\n        <string>(/&gt;)|(?:(&lt;/)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?&lt;!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?&lt;!\\.|-))?\\s*(&gt;))</string>\n        <key>endCaptures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.tag.end.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.tag.begin.tsx</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>entity.name.tag.namespace.tsx</string>\n          </dict>\n          <key>4</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.separator.namespace.tsx</string>\n          </dict>\n          <key>5</key>\n          <dict>\n            <key>name</key>\n            <string>entity.name.tag.tsx</string>\n          </dict>\n          <key>6</key>\n          <dict>\n            <key>name</key>\n            <string>support.class.component.tsx</string>\n          </dict>\n          <key>7</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.tag.end.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>begin</key>\n            <string>(&lt;)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?&lt;!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?&lt;!\\.|-))(?=((&lt;\\s*)|(\\s+))(?!\\?)|\\/?&gt;)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.tag.begin.tsx</string>\n              </dict>\n              <key>2</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.tag.namespace.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.separator.namespace.tsx</string>\n              </dict>\n              <key>4</key>\n              <dict>\n                <key>name</key>\n                <string>entity.name.tag.tsx</string>\n              </dict>\n              <key>5</key>\n              <dict>\n                <key>name</key>\n                <string>support.class.component.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=[/]?&gt;)</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#comment</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#type-arguments</string>\n              </dict>\n              <dict>\n                <key>include</key>\n                <string>#jsx-tag-attributes</string>\n              </dict>\n            </array>\n          </dict>\n          <dict>\n            <key>begin</key>\n            <string>(&gt;)</string>\n            <key>beginCaptures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.tag.end.tsx</string>\n              </dict>\n            </dict>\n            <key>end</key>\n            <string>(?=&lt;/)</string>\n            <key>contentName</key>\n            <string>meta.jsx.children.tsx</string>\n            <key>patterns</key>\n            <array>\n              <dict>\n                <key>include</key>\n                <string>#jsx-children</string>\n              </dict>\n            </array>\n          </dict>\n        </array>\n      </dict>\n      <key>jsx-children</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#jsx-tag-without-attributes</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#jsx-tag</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#jsx-evaluated-code</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#jsx-entities</string>\n          </dict>\n        </array>\n      </dict>\n      <key>jsx-evaluated-code</key>\n      <dict>\n        <key>contentName</key>\n        <string>meta.embedded.expression.tsx</string>\n        <key>begin</key>\n        <string>\\{</string>\n        <key>end</key>\n        <string>\\}</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.section.embedded.begin.tsx</string>\n          </dict>\n        </dict>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.section.embedded.end.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#expression</string>\n          </dict>\n        </array>\n      </dict>\n      <key>jsx-entities</key>\n      <dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>name</key>\n            <string>constant.character.entity.tsx</string>\n            <key>match</key>\n            <string>(&amp;)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)</string>\n            <key>captures</key>\n            <dict>\n              <key>1</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.entity.tsx</string>\n              </dict>\n              <key>3</key>\n              <dict>\n                <key>name</key>\n                <string>punctuation.definition.entity.tsx</string>\n              </dict>\n            </dict>\n          </dict>\n        </array>\n      </dict>\n      <key>jsx-tag-attributes</key>\n      <dict>\n        <key>name</key>\n        <string>meta.tag.attributes.tsx</string>\n        <key>begin</key>\n        <string>\\s+</string>\n        <key>end</key>\n        <string>(?=[/]?&gt;)</string>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#comment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#jsx-tag-attribute-name</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#jsx-tag-attribute-assignment</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#jsx-string-double-quoted</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#jsx-string-single-quoted</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#jsx-evaluated-code</string>\n          </dict>\n          <dict>\n            <key>include</key>\n            <string>#jsx-tag-attributes-illegal</string>\n          </dict>\n        </array>\n      </dict>\n      <key>jsx-tag-attribute-name</key>\n      <dict>\n        <key>match</key>\n        <string>(?x)\n  \\s*\n  (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?\n  ([_$[:alpha:]][-_$[:alnum:]]*)\n  (?=\\s|=|/?&gt;|/\\*|//)</string>\n        <key>captures</key>\n        <dict>\n          <key>1</key>\n          <dict>\n            <key>name</key>\n            <string>entity.other.attribute-name.namespace.tsx</string>\n          </dict>\n          <key>2</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.separator.namespace.tsx</string>\n          </dict>\n          <key>3</key>\n          <dict>\n            <key>name</key>\n            <string>entity.other.attribute-name.tsx</string>\n          </dict>\n        </dict>\n      </dict>\n      <key>jsx-tag-attribute-assignment</key>\n      <dict>\n        <key>name</key>\n        <string>keyword.operator.assignment.tsx</string>\n        <key>match</key>\n        <string>=(?=\\s*(?:'|\"|{|/\\*|//|\\n))</string>\n      </dict>\n      <key>jsx-string-double-quoted</key>\n      <dict>\n        <key>name</key>\n        <string>string.quoted.double.tsx</string>\n        <key>begin</key>\n        <string>\"</string>\n        <key>end</key>\n        <string>\"</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.string.begin.tsx</string>\n          </dict>\n        </dict>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.string.end.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#jsx-entities</string>\n          </dict>\n        </array>\n      </dict>\n      <key>jsx-string-single-quoted</key>\n      <dict>\n        <key>name</key>\n        <string>string.quoted.single.tsx</string>\n        <key>begin</key>\n        <string>'</string>\n        <key>end</key>\n        <string>'</string>\n        <key>beginCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.string.begin.tsx</string>\n          </dict>\n        </dict>\n        <key>endCaptures</key>\n        <dict>\n          <key>0</key>\n          <dict>\n            <key>name</key>\n            <string>punctuation.definition.string.end.tsx</string>\n          </dict>\n        </dict>\n        <key>patterns</key>\n        <array>\n          <dict>\n            <key>include</key>\n            <string>#jsx-entities</string>\n          </dict>\n        </array>\n      </dict>\n      <key>jsx-tag-attributes-illegal</key>\n      <dict>\n        <key>name</key>\n        <string>invalid.illegal.attribute.tsx</string>\n        <key>match</key>\n        <string>\\S+</string>\n      </dict>\n    </dict>\n  </dict>\n</plist>"
  },
  {
    "path": "TypeScriptReact.tmTheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>name</key>\n    <string>TypeScriptReact</string>\n    <key>uuid</key>\n    <string>8B704EF9-AF8E-402F-933C-1D46D8C49E58</string>\n    <key>settings</key>\n    <array>\n      <dict>\n        <key>scope</key>\n        <string>storage.modifier, storage.type, keyword.other, keyword.operator.expression, keyword.operator.new, keyword.generator.asterisk, punctuation.definition.template-expression</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>keyword</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>constant.language, variable.language</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>keyword</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>keyword.control, keyword.operator.expression.delete, keyword.other.using, keyword.other.operator, entity.name.operator</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>keyword - control</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>support.class, support.type, entity.name.type, entity.name.namespace, entity.other.attribute, entity.name.scope-resolution, entity.name.class</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>type</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>string, punctuation.definition.string, constant.character</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>string</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>keyword.control.anchor.regexp, keyword.other.back-reference.regexp, keyword.operator.quantifier.regexp, keyword.operator.or.regexp, keyword.operator.negation.regexp, punctuation.definition.group.regexp, punctuation.definition.group.assertion.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp, punctuation.definition.group.capture.regexp, punctuation.definition.character-class.regexp, constant.other.character-class.range.regexp</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>string</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>constant.numeric, meta.delimiter.decimal.period.tsx, constant.language.nan.tsx, constant.language.infinity.tsx</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>number</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>keyword.operator, storage.type.function.arrow.tsx</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>operator</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>meta.brace.angle.tsx, meta.brace.round.tsx, meta.brace.square.tsx, punctuation, constant.language.import-export-all.tsx, meta.delimiter.object.comma.tsx</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>punctuation</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>comment, comment.block.tsx, comment.line.double-slash.tsx, punctuation.definition.comment.tsx</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>comment</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>comment.block.documentation.tsx, other.meta.jsdoc, other.description.jsdoc</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>comment</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>entity.name.type.instance.jsdoc</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>identifier</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>entity.name.type.class.tsx</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>class name</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>entity.name.type.module.tsx</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>module name</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>entity.name.type.enum.tsx</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>enum name</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>meta.template.expression.tsx, entity.other.inherited-class.tsx</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>identifier</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>variable, meta.definition.variable.name, support.variable, entity.name.variable, constant.other.placeholder</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>local name</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>entity.name.function, support.function, support.constant.handlebars, source.powershell variable.other.member, entity.name.operator.custom-literal</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>method name</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>variable.language.arguments.tsx, support.type.object</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>identifier</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>entity.name.tag.inline, entity.name.tag.directive</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>HTML Element Name</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>entity.other.attribute-name</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>HTML Attribute Name</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>meta.tag string.quoted, meta.tag string.quoted punctuation.definition.string, meta.tag string.quoted</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>string</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>meta.object-literal.key</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>parameter name</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>constant.character.escape</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>string - escape character</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>entity.name.label</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>label name</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>meta.tag string.quoted constant.character.entity.tsx, meta.tag string.quoted constant.character.entity.tsx punctuation.definition.entity.tsx</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>xml literal - attribute value</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>meta.jsx.children.tsx, constant.character.entity.tsx, punctuation.definition.entity.tsx, invalid.illegal.bad-ampersand.tsx</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>xml literal - text</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>invalid.illegal.attribute.tsx</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>identifier</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>punctuation.definition.tag</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>html operator</string>\n        </dict>\n      </dict>\n      <dict>\n        <key>scope</key>\n        <string>meta.tag</string>\n        <key>settings</key>\n        <dict>\n          <key>vsclassificationtype</key>\n          <string>HTML Element Name</string>\n        </dict>\n      </dict>\n    </array>\n  </dict>\n</plist>"
  },
  {
    "path": "build/build.ts",
    "content": "import fs = require('fs');\nimport path = require('path');\nimport yaml = require('js-yaml');\nimport plist = require('plist');\n\nenum Language {\n    TypeScript = \"TypeScript\",\n    TypeScriptReact = \"TypeScriptReact\"\n}\n\nenum Extension {\n    TmLanguage = \"tmLanguage\",\n    TmTheme = \"tmTheme\",\n    YamlTmLanguage = \"YAML-tmLanguage\",\n    YamlTmTheme = \"YAML-tmTheme\"\n}\n\nfunction file(language: Language, extension: Extension) {\n    return path.join(__dirname, '..', `${language}.${extension}`);\n}\n\nfunction writePlistFile(grammar: TmGrammar | TmTheme, fileName: string) {\n    const text = plist.build(grammar);\n    fs.writeFileSync(fileName, text);\n}\n\nfunction readYaml(fileName: string) {\n    const text = fs.readFileSync(fileName, \"utf8\");\n    return yaml.load(text);\n}\n\nfunction changeTsToTsx(str: string) {\n    return str.replace(/\\.ts/g, '.tsx');\n}\n\nfunction transformGrammarRule(rule: any, propertyNames: string[], transformProperty: (ruleProperty: string) => string) {\n    for (const propertyName of propertyNames) {\n        const value = rule[propertyName];\n        if (typeof value === 'string') {\n            rule[propertyName] = transformProperty(value);\n        }\n    }\n\n    for (var propertyName in rule) {\n        const value = rule[propertyName];\n        if (typeof value === 'object') {\n            transformGrammarRule(value, propertyNames, transformProperty);\n        }\n    }\n}\n\nfunction transformGrammarRepository(grammar: TmGrammar, propertyNames: string[], transformProperty: (ruleProperty: string) => string) {\n    const repository = grammar.repository;\n    for (let key in repository) {\n        transformGrammarRule(repository[key], propertyNames, transformProperty);\n    }\n}\n\nfunction getTsxGrammar() {\n    let variables: MapLike<string>;\n    const tsxUpdatesBeforeTransformation = readYaml(file(Language.TypeScriptReact, Extension.YamlTmLanguage)) as TmGrammar;\n    const grammar = getTsGrammar(tsGrammarVariables => {\n        variables = tsGrammarVariables;\n        for (const variableName in tsxUpdatesBeforeTransformation.variables) {\n            variables[variableName] = tsxUpdatesBeforeTransformation.variables[variableName];\n        }\n        return variables;\n    });\n    const tsxUpdates = updateGrammarVariables(tsxUpdatesBeforeTransformation, variables!);\n\n    // Update name, file types, scope name and uuid\n    grammar.name = tsxUpdates.name;\n    grammar.scopeName = tsxUpdates.scopeName;\n    grammar.fileTypes = tsxUpdates.fileTypes;\n    grammar.uuid = tsxUpdates.uuid;\n\n    // Update scope names to .tsx\n    transformGrammarRepository(grammar, [\"name\", \"contentName\"], changeTsToTsx);\n\n    // Add repository items\n    const repository = grammar.repository;\n    const updatesRepository = tsxUpdates.repository;\n    for (let key in updatesRepository) {\n        switch(key) {\n            case \"expressionWithoutIdentifiers\":\n                // Update expression\n                (repository[key] as TmGrammarRepositoryPatterns).patterns.unshift((updatesRepository[key] as TmGrammarRepositoryPatterns).patterns[0]);\n                break;\n            default:\n                // Add jsx\n                repository[key] = updatesRepository[key];\n        }\n    }\n\n    return grammar;\n}\n\nfunction getTsGrammar(getVariables: (tsGrammarVariables: MapLike<string>) => MapLike<string>) {\n    const tsGrammarBeforeTransformation = readYaml(file(Language.TypeScript, Extension.YamlTmLanguage)) as TmGrammar;\n    return updateGrammarVariables(tsGrammarBeforeTransformation, getVariables(tsGrammarBeforeTransformation.variables as MapLike<string>));\n}\n\nfunction replacePatternVariables(pattern: string, variableReplacers: VariableReplacer[]) {\n    let result = pattern;\n    for (const [variableName, value] of variableReplacers) {\n        result = result.replace(variableName, value);\n    }\n    return result;\n}\n\ntype VariableReplacer = [RegExp, string];\nfunction updateGrammarVariables(grammar: TmGrammar, variables: MapLike<string>) {\n    delete grammar.variables;\n    const variableReplacers: VariableReplacer[] = [];\n    for (const variableName in variables) {\n        // Replace the pattern with earlier variables\n        const pattern = replacePatternVariables(variables[variableName], variableReplacers);\n        variableReplacers.push([new RegExp(`{{${variableName}}}`, \"gim\"), pattern]);\n    }\n    transformGrammarRepository(\n        grammar,\n        [\"begin\", \"end\", \"match\"],\n        pattern => replacePatternVariables(pattern, variableReplacers)\n    );\n    return grammar;\n}\n\nfunction buildGrammar() {\n    const tsGrammar = getTsGrammar(grammarVariables => grammarVariables);\n\n    // Write TypeScript.tmLanguage\n    writePlistFile(tsGrammar, file(Language.TypeScript, Extension.TmLanguage));\n\n    // Write TypeScriptReact.tmLangauge\n    const tsxGrammar = getTsxGrammar();\n    writePlistFile(tsxGrammar, file(Language.TypeScriptReact, Extension.TmLanguage));\n}\n\nfunction changeTsToTsxTheme(theme: TmTheme) {\n    const tsxUpdates = readYaml(file(Language.TypeScriptReact, Extension.YamlTmTheme)) as TmTheme;\n\n    // Update name, uuid\n    theme.name = tsxUpdates.name;\n    theme.uuid = tsxUpdates.uuid;\n\n    // Update scope names to .tsx\n    const settings = theme.settings;\n    for (let i = 0; i < settings.length; i++) {\n        settings[i].scope = changeTsToTsx(settings[i].scope);\n    }\n\n    // Add additional setting items\n    theme.settings = theme.settings.concat(tsxUpdates.settings);\n\n    return theme;\n}\n\nfunction buildTheme() {\n    const tsTheme = readYaml(file(Language.TypeScript, Extension.YamlTmTheme)) as TmTheme;\n\n    // Write TypeScript.tmTheme\n    writePlistFile(tsTheme, file(Language.TypeScript, Extension.TmTheme));\n\n    // Write TypeScriptReact.thTheme\n    const tsxTheme = changeTsToTsxTheme(tsTheme);\n    writePlistFile(tsxTheme, file(Language.TypeScriptReact, Extension.TmTheme));\n}\n\nbuildGrammar();\nbuildTheme();"
  },
  {
    "path": "build/index.d.ts",
    "content": "declare module \"plist\" {\r\n    export function build(json: any): string;\r\n}\r\n\r\ndeclare interface MapLike<T> {\r\n    [s: string]: T;\r\n}\r\n\r\ndeclare interface TmGrammarRuleName {\r\n    name: string;\r\n}\r\n\r\ndeclare interface TmGrammarRule {\r\n    name?: string;\r\n}\r\ndeclare interface TmGrammarMatchRule extends TmGrammarRule {\r\n    match: string;\r\n    captures: MapLike<TmGrammarRuleName>;\r\n}\r\ndeclare interface TmGrammarBeginEndRule extends TmGrammarRule {\r\n    contentName?: string;\r\n    begin: string;\r\n    end: string;\r\n    beginCaptures?: MapLike<TmGrammarRuleName>;\r\n    endCaptures?: MapLike<TmGrammarRuleName>;\r\n    patterns: AnyTmGrammarRule[];\r\n}\r\ndeclare interface TmGrammarIncludeRule extends TmGrammarRule {\r\n    include: string;\r\n}\r\ndeclare type AnyTmGrammarRule = TmGrammarMatchRule | TmGrammarBeginEndRule | TmGrammarIncludeRule;\r\ndeclare interface TmGrammarRepositoryPatterns {\r\n    patterns: AnyTmGrammarRule[];\r\n}\r\ndeclare type TmGrammarRepositaryRule = AnyTmGrammarRule | TmGrammarRepositoryPatterns;\r\ndeclare interface TmGrammar {\r\n    name: string;\r\n    scopeName: string;\r\n    fileTypes: string[];\r\n    uuid: string;\r\n    variables?: MapLike<string>;\r\n    patterns?: AnyTmGrammarRule[];\r\n    repository: MapLike<TmGrammarRepositaryRule>;\r\n}\r\n\r\ndeclare interface TmThemeSetting {\r\n    scope: string;\r\n    settings: { vsclassificationtype: string; };\r\n}\r\ndeclare interface TmTheme {\r\n    name: string;\r\n    uuid: string;\r\n    settings: TmThemeSetting[];\r\n}"
  },
  {
    "path": "build/tsconfig.json",
    "content": "{\n    \"compilerOptions\": {\n        \"lib\": [\"ES2023\"],\n        \"target\": \"ES2023\",\n        \"module\": \"nodenext\",\n        \"strict\": true,\n        \"skipLibCheck\": true\n    },\n    \"exclude\": [\n        \"node_modules\"\n    ]\n}\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"typescript-tmlanguage\",\n  \"version\": \"1.0.0\",\n  \"private\": true,\n  \"description\": \"TextMate grammar files for TypeScript for VS Code, Sublime Text, and Atom\",\n  \"scripts\": {\n    \"build\": \"npm run build:grammar && npm run build:tests\",\n    \"build:grammar\": \"tsc -b build -v && node build/build.js\",\n    \"build:tests\": \"tsc -b tests -v\",\n    \"pretest\": \"npm run build\",\n    \"test\": \"node --test tests/test.js\",\n    \"diff\": \"cross-env-shell $DIFF tests/baselines tests/generated\",\n    \"accept\": \"cpx 'tests/generated/*' tests/baselines\"\n  },\n  \"devDependencies\": {\n    \"@types/js-yaml\": \"^4.0.9\",\n    \"@types/node\": \"^24.10.1\",\n    \"cpx2\": \"^8.0.0\",\n    \"cross-env\": \"^10.1.0\",\n    \"js-yaml\": \"^4.1.1\",\n    \"plist\": \"^3.1.0\",\n    \"typescript\": \"^5.9.3\",\n    \"vscode-oniguruma\": \"^2.0.1\",\n    \"vscode-textmate\": \"^9.2.1\"\n  },\n  \"engines\": {\n    \"node\": \">= 20.9\"\n  }\n}\n"
  },
  {
    "path": "tests/baselines/Abstracts.baseline.txt",
    "content": "original file\n-----------------------------------\nabstract class Animal {\n\t  public age: number;\n\t  public yearsLeft() { return 20 - this.age; }\n\t  abstract makeSound(): string;\n}\n\nclass Cow extends Animal {\n\t  makeSound() { return \"Moo\"; }\n}\n\nclass Cat extends Animal {\n\t  makeSound() { return \"Meow\"; }\n}\n\nlet cow = new Cow();\ncow.makeSound();\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>abstract class Animal {\n ^^^^^^^^\n source.ts meta.class.ts storage.modifier.ts\n         ^\n         source.ts meta.class.ts\n          ^^^^^\n          source.ts meta.class.ts storage.type.class.ts\n               ^\n               source.ts meta.class.ts\n                ^^^^^^\n                source.ts meta.class.ts entity.name.type.class.ts\n                      ^\n                      source.ts meta.class.ts\n                       ^\n                       source.ts meta.class.ts punctuation.definition.block.ts\n>\t  public age: number;\n ^^^\n source.ts meta.class.ts\n    ^^^^^^\n    source.ts meta.class.ts storage.modifier.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^^^\n           source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                ^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                      ^\n                      source.ts meta.class.ts punctuation.terminator.statement.ts\n>\t  public yearsLeft() { return 20 - this.age; }\n ^^^\n source.ts meta.class.ts\n    ^^^^^^\n    source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts\n           ^^^^^^^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                         ^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                ^^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.arithmetic.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                     ^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n                                          ^^^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\t  abstract makeSound(): string;\n ^^^\n source.ts meta.class.ts\n    ^^^^^^^^\n    source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts\n             ^^^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                          ^^^^^^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                                ^\n                                source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>class Cow extends Animal {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                  ^\n                  source.ts meta.class.ts\n                   ^^^^^^\n                   source.ts meta.class.ts entity.other.inherited-class.ts\n                         ^\n                         source.ts meta.class.ts\n                          ^\n                          source.ts meta.class.ts punctuation.definition.block.ts\n>\t  makeSound() { return \"Moo\"; }\n ^^^\n source.ts meta.class.ts meta.method.declaration.ts\n    ^^^^^^^^^\n    source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                  ^^^^^^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                          ^^^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>class Cat extends Animal {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                  ^\n                  source.ts meta.class.ts\n                   ^^^^^^\n                   source.ts meta.class.ts entity.other.inherited-class.ts\n                         ^\n                         source.ts meta.class.ts\n                          ^\n                          source.ts meta.class.ts punctuation.definition.block.ts\n>\t  makeSound() { return \"Meow\"; }\n ^^^\n source.ts meta.class.ts meta.method.declaration.ts\n    ^^^^^^^^^\n    source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                  ^^^^^^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                          ^^^^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>let cow = new Cow();\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^^^\n           source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n              ^\n              source.ts meta.var.expr.ts new.expr.ts\n               ^^^\n               source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                  ^\n                  source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n>cow.makeSound();\n ^^^\n source.ts meta.function-call.ts variable.other.object.ts\n    ^\n    source.ts meta.function-call.ts punctuation.accessor.ts\n     ^^^^^^^^^\n     source.ts meta.function-call.ts entity.name.function.ts\n              ^\n              source.ts meta.brace.round.ts\n               ^\n               source.ts meta.brace.round.ts\n                ^\n                source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/ArrowFunctionInsideTypeAssertion.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has type assertion\n// Issue: https://github.com/Microsoft/TypeScript-Sublime-Plugin/issues/292\n\nvar object = {\n    setTransform: <(domNode: HTMLElement, desiredValue: string) => void>null,\n    setDisplay: (domNode: HTMLElement, desiredValue: string) => {\n        if (domNode.style.display !== desiredValue) {\n            domNode.style.display = desiredValue;\n        }\n    }\n}\n\nfunction f(x: string | ((value: string) => number)) {\n    if (typeof x === \"string\") {\n        return +x\n    }\n    else {\n        let f = <(v: string) => number> x\n        return f(\"hello world\")\n    }\n}\n\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has type assertion\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>// Issue: https://github.com/Microsoft/TypeScript-Sublime-Plugin/issues/292\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>var object = {\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    setTransform: <(domNode: HTMLElement, desiredValue: string) => void>null,\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.brace.angle.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                     ^^^^^^^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                              ^^^^^^^^^^^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts\n                                           ^^^^^^^^^^^^\n                                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                                       ^\n                                                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                        ^\n                                                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                         ^^^^^^\n                                                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                               ^\n                                                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                ^\n                                                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts\n                                                                 ^^\n                                                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                                   ^\n                                                                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.return.ts\n                                                                    ^^^^\n                                                                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.return.ts support.type.primitive.ts\n                                                                        ^\n                                                                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.brace.angle.ts\n                                                                         ^^^^\n                                                                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.language.null.ts\n                                                                             ^\n                                                                             source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>    setDisplay: (domNode: HTMLElement, desiredValue: string) => {\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts entity.name.function.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^^^^^^^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                           ^^^^^^^^^^^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts\n                                        ^^^^^^^^^^^^\n                                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                                                      ^^^^^^\n                                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                            ^\n                                                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                             ^\n                                                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n                                                              ^^\n                                                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                                ^\n                                                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n                                                                 ^\n                                                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>        if (domNode.style.display !== desiredValue) {\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts\n         ^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts keyword.control.conditional.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n             ^^^^^^^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts variable.other.object.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n                     ^^^^^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts support.variable.property.dom.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n                           ^^^^^^^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts support.variable.property.dom.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts\n                                   ^^^\n                                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts keyword.operator.comparison.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts\n                                       ^^^^^^^^^^^^\n                                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>            domNode.style.display = desiredValue;\n ^^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.block.ts\n             ^^^^^^^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.block.ts variable.other.object.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.accessor.ts\n                     ^^^^^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.block.ts support.variable.property.dom.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.accessor.ts\n                           ^^^^^^^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.block.ts support.variable.property.dom.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.block.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.block.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.block.ts\n                                     ^^^^^^^^^^^^\n                                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>        }\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>function f(x: string | ((value: string) => number)) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n               ^^^^^^\n               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                          ^^^^^\n                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                 ^^^^^^\n                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts\n                                         ^^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                           ^\n                                           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                            ^^^^^^\n                                            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts support.type.primitive.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                    ^\n                                                    source.ts meta.function.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    if (typeof x === \"string\") {\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^\n     source.ts meta.function.ts meta.block.ts keyword.control.conditional.ts\n       ^\n       source.ts meta.function.ts meta.block.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n         ^^^^^^\n         source.ts meta.function.ts meta.block.ts keyword.operator.expression.typeof.ts\n               ^\n               source.ts meta.function.ts meta.block.ts\n                ^\n                source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts\n                  ^^^\n                  source.ts meta.function.ts meta.block.ts keyword.operator.comparison.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                       ^^^^^^\n                       source.ts meta.function.ts meta.block.ts string.quoted.double.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>        return +x\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.function.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.block.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.block.ts keyword.operator.arithmetic.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n>    }\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n     ^\n     source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    else {\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.conditional.ts\n         ^\n         source.ts meta.function.ts meta.block.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>        let f = <(v: string) => number> x\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n         ^^^\n         source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                      ^^^^^^\n                      source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts\n                              ^^\n                              source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.function.return.ts\n                                 ^^^^^^\n                                 source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.function.return.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n>        return f(\"hello world\")\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.function.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.block.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                   ^^^^^^^^^^^\n                   source.ts meta.function.ts meta.block.ts meta.block.ts string.quoted.double.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.block.ts meta.brace.round.ts\n>    }\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n     ^\n     source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/AsConstSatisfies.baseline.txt",
    "content": "original file\n-----------------------------------\nlet a = {} as const satisfies {};\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let a = {} as const satisfies {};\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^^\n            source.ts meta.var.expr.ts keyword.control.as.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^^^^\n               source.ts meta.var.expr.ts entity.name.type.ts\n                    ^\n                    source.ts meta.var.expr.ts\n                     ^^^^^^^^^\n                     source.ts meta.var.expr.ts keyword.control.satisfies.ts\n                              ^\n                              source.ts meta.var.expr.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.object.type.ts punctuation.definition.block.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.object.type.ts punctuation.definition.block.ts\n                                 ^\n                                 source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Comments.baseline.txt",
    "content": "original file\n-----------------------------------\n/*\nTests for comments in general.\n\nPull requests:\n\t- https://github.com/Microsoft/TypeScript-Sublime-Plugin/pull/307\n\t- https://github.com/Microsoft/TypeScript-Sublime-Plugin/pull/308\n*/\n\nvar /* comment */ x: string = \"yahoo\";\nvar x /* comment */: string = \"yahoo\";\nvar x: /* comment */ string = \"yahoo\";\nvar x: string /* comment */ = \"yahoo\";\nvar x: string = /* comment */ \"yahoo\";\nvar x: string = \"yahoo\" /* comment */;\nvar x: string = \"yahoo\"; /* comment */\n\nvar /* comment */ x: string = \"yahoo\"\nvar x /* comment */: string = \"yahoo\"\nvar x: /* comment */ string = \"yahoo\"\nvar x: string /* comment */ = \"yahoo\"\nvar x: string = /* comment */ \"yahoo\"\nvar x: string = \"yahoo\" /* comment */\n\n/**/ interface i extends i1, i2, i3 {}\ninterface /**/ i extends i1, i2, i3 {}\ninterface i /**/ extends i1, i2, i3 {}\ninterface i extends /**/ i1, i2, i3 {}\ninterface i extends i1 /**/, i2, i3 {}\ninterface i extends i1, /**/ i2, i3 {}\ninterface i extends i1, i2 /**/, i3 {}\ninterface i extends i1, i2, /**/ i3 {}\ninterface i extends i1, i2, i3 /**/ {}\n/**/ interface /**/ i /**/ extends /**/ i1, /**/ i2, /**/ i3 /**/ {}\n/**/ interface /**/ i /**/ extends /**/ i1 /**/ , /**/ i2 /**/ , /**/ i3 /**/ {}\n\n/**/class i extends c1,c2,c3{}\nclass/**/i extends c1,c2,c3{}\nclass i/**/extends c1,c2,c3{}\nclass i extends/**/c1,c2,c3{}\nclass i extends c1/**/,c2,c3{}\nclass i extends c1,/**/c2,c3{}\nclass i extends c1,c2/**/,c3{}\nclass i extends c1,c2,/**/c3{}\nclass i extends c1,c2,c3/**/{}\n/**/class/**/i/**/extends/**/c1,/**/c2,/**/c3/**/{}\n/**/class/**/i/**/extends/**/c1/**/,/**/c2/**/,/**/c3/**/{}\n\ninterface KeyValuePair/**/<K, V> extends Array<K | V> { 0: K; 1: V; }\ninterface KeyValuePair<K, V>/**/extends Array<K | V> { 0: K; 1: V; }\ninterface KeyValuePair<K, V> extends/**/Array<K | V> { 0: K; 1: V; }\ninterface KeyValuePair<K, V> extends Array/**/<K | V> { 0: K; 1: V; }\ninterface KeyValuePair<K, V> extends Array<K | V>/**/{ 0: K; 1: V; }\n\ninterface G/**/<extends_, _extends extends Function> {\n    f<V extends U>(x: V): V;\n}\ninterface G<extends_, _extends/**/extends Function> {\n    f<V extends U>(x: V): V;\n}\ninterface G<extends_, _extends extends/**/Function> {\n    f<V extends U>(x: V): V;\n}\n\nvar x/*comments*/=new String();\nvar x=/*comments*/new String();\nvar x= new/*comments*/String();\n\nvar x /* comments */ = new String();\nvar x = /* comments */ new String();\nvar x = new /* comments */ String();\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/*\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n>Tests for comments in general.\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.ts\n>\n ^\n source.ts comment.block.ts\n>Pull requests:\n ^^^^^^^^^^^^^^^\n source.ts comment.block.ts\n>\t- https://github.com/Microsoft/TypeScript-Sublime-Plugin/pull/307\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.ts\n>\t- https://github.com/Microsoft/TypeScript-Sublime-Plugin/pull/308\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.ts\n>*/\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n>\n ^\n source.ts\n>var /* comment */ x: string = \"yahoo\";\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^\n     source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n       ^^^^^^^^^\n       source.ts meta.var.expr.ts comment.block.ts\n                ^^\n                source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                      ^^^^^^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                             ^\n                             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                              ^\n                              source.ts meta.var.expr.ts\n                               ^\n                               source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                ^^^^^\n                                source.ts meta.var.expr.ts string.quoted.double.ts\n                                     ^\n                                     source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                      ^\n                                      source.ts punctuation.terminator.statement.ts\n>var x /* comment */: string = \"yahoo\";\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts comment.block.ts punctuation.definition.comment.ts\n         ^^^^^^^^^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts comment.block.ts\n                  ^^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts comment.block.ts punctuation.definition.comment.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                      ^^^^^^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                             ^\n                             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                              ^\n                              source.ts meta.var.expr.ts\n                               ^\n                               source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                ^^^^^\n                                source.ts meta.var.expr.ts string.quoted.double.ts\n                                     ^\n                                     source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                      ^\n                                      source.ts punctuation.terminator.statement.ts\n>var x: /* comment */ string = \"yahoo\";\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts comment.block.ts punctuation.definition.comment.ts\n          ^^^^^^^^^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts comment.block.ts\n                   ^^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts comment.block.ts punctuation.definition.comment.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                      ^^^^^^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                             ^\n                             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                              ^\n                              source.ts meta.var.expr.ts\n                               ^\n                               source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                ^^^^^\n                                source.ts meta.var.expr.ts string.quoted.double.ts\n                                     ^\n                                     source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                      ^\n                                      source.ts punctuation.terminator.statement.ts\n>var x: string /* comment */ = \"yahoo\";\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n               ^^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts comment.block.ts punctuation.definition.comment.ts\n                 ^^^^^^^^^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts comment.block.ts\n                          ^^\n                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts comment.block.ts punctuation.definition.comment.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                             ^\n                             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                              ^\n                              source.ts meta.var.expr.ts\n                               ^\n                               source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                ^^^^^\n                                source.ts meta.var.expr.ts string.quoted.double.ts\n                                     ^\n                                     source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                      ^\n                                      source.ts punctuation.terminator.statement.ts\n>var x: string = /* comment */ \"yahoo\";\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^^\n                 source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n                   ^^^^^^^^^\n                   source.ts meta.var.expr.ts comment.block.ts\n                            ^^\n                            source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n                              ^\n                              source.ts meta.var.expr.ts\n                               ^\n                               source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                ^^^^^\n                                source.ts meta.var.expr.ts string.quoted.double.ts\n                                     ^\n                                     source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                      ^\n                                      source.ts punctuation.terminator.statement.ts\n>var x: string = \"yahoo\" /* comment */;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                  ^^^^^\n                  source.ts meta.var.expr.ts string.quoted.double.ts\n                       ^\n                       source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts meta.var.expr.ts\n                         ^^\n                         source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n                           ^^^^^^^^^\n                           source.ts meta.var.expr.ts comment.block.ts\n                                    ^^\n                                    source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n                                      ^\n                                      source.ts punctuation.terminator.statement.ts\n>var x: string = \"yahoo\"; /* comment */\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                  ^^^^^\n                  source.ts meta.var.expr.ts string.quoted.double.ts\n                       ^\n                       source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts\n                         ^\n                         source.ts\n                          ^^\n                          source.ts comment.block.ts punctuation.definition.comment.ts\n                            ^^^^^^^^^\n                            source.ts comment.block.ts\n                                     ^^\n                                     source.ts comment.block.ts punctuation.definition.comment.ts\n>\n ^\n source.ts\n>var /* comment */ x: string = \"yahoo\"\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^\n     source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n       ^^^^^^^^^\n       source.ts meta.var.expr.ts comment.block.ts\n                ^^\n                source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                      ^^^^^^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                             ^\n                             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                              ^\n                              source.ts meta.var.expr.ts\n                               ^\n                               source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                ^^^^^\n                                source.ts meta.var.expr.ts string.quoted.double.ts\n                                     ^\n                                     source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>var x /* comment */: string = \"yahoo\"\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts comment.block.ts punctuation.definition.comment.ts\n         ^^^^^^^^^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts comment.block.ts\n                  ^^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts comment.block.ts punctuation.definition.comment.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                      ^^^^^^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                             ^\n                             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                              ^\n                              source.ts meta.var.expr.ts\n                               ^\n                               source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                ^^^^^\n                                source.ts meta.var.expr.ts string.quoted.double.ts\n                                     ^\n                                     source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>var x: /* comment */ string = \"yahoo\"\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts comment.block.ts punctuation.definition.comment.ts\n          ^^^^^^^^^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts comment.block.ts\n                   ^^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts comment.block.ts punctuation.definition.comment.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                      ^^^^^^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                             ^\n                             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                              ^\n                              source.ts meta.var.expr.ts\n                               ^\n                               source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                ^^^^^\n                                source.ts meta.var.expr.ts string.quoted.double.ts\n                                     ^\n                                     source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>var x: string /* comment */ = \"yahoo\"\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n               ^^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts comment.block.ts punctuation.definition.comment.ts\n                 ^^^^^^^^^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts comment.block.ts\n                          ^^\n                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts comment.block.ts punctuation.definition.comment.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                             ^\n                             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                              ^\n                              source.ts meta.var.expr.ts\n                               ^\n                               source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                ^^^^^\n                                source.ts meta.var.expr.ts string.quoted.double.ts\n                                     ^\n                                     source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>var x: string = /* comment */ \"yahoo\"\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^^\n                 source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n                   ^^^^^^^^^\n                   source.ts meta.var.expr.ts comment.block.ts\n                            ^^\n                            source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n                              ^\n                              source.ts meta.var.expr.ts\n                               ^\n                               source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                ^^^^^\n                                source.ts meta.var.expr.ts string.quoted.double.ts\n                                     ^\n                                     source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>var x: string = \"yahoo\" /* comment */\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                  ^^^^^\n                  source.ts meta.var.expr.ts string.quoted.double.ts\n                       ^\n                       source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts meta.var.expr.ts\n                         ^^\n                         source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n                           ^^^^^^^^^\n                           source.ts meta.var.expr.ts comment.block.ts\n                                    ^^\n                                    source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n>\n ^\n source.ts\n>/**/ interface i extends i1, i2, i3 {}\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^^\n   source.ts comment.block.ts punctuation.definition.comment.ts\n     ^\n     source.ts\n      ^^^^^^^^^\n      source.ts meta.interface.ts storage.type.interface.ts\n               ^\n               source.ts meta.interface.ts\n                ^\n                source.ts meta.interface.ts entity.name.type.interface.ts\n                 ^\n                 source.ts meta.interface.ts\n                  ^^^^^^^\n                  source.ts meta.interface.ts storage.modifier.ts\n                         ^\n                         source.ts meta.interface.ts\n                          ^^\n                          source.ts meta.interface.ts entity.other.inherited-class.ts\n                            ^\n                            source.ts meta.interface.ts punctuation.separator.comma.ts\n                             ^\n                             source.ts meta.interface.ts\n                              ^^\n                              source.ts meta.interface.ts entity.other.inherited-class.ts\n                                ^\n                                source.ts meta.interface.ts punctuation.separator.comma.ts\n                                 ^\n                                 source.ts meta.interface.ts\n                                  ^^\n                                  source.ts meta.interface.ts entity.other.inherited-class.ts\n                                    ^\n                                    source.ts meta.interface.ts\n                                     ^\n                                     source.ts meta.interface.ts punctuation.definition.block.ts\n                                      ^\n                                      source.ts meta.interface.ts punctuation.definition.block.ts\n>interface /**/ i extends i1, i2, i3 {}\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^\n           source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n             ^^\n             source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n               ^\n               source.ts meta.interface.ts\n                ^\n                source.ts meta.interface.ts entity.name.type.interface.ts\n                 ^\n                 source.ts meta.interface.ts\n                  ^^^^^^^\n                  source.ts meta.interface.ts storage.modifier.ts\n                         ^\n                         source.ts meta.interface.ts\n                          ^^\n                          source.ts meta.interface.ts entity.other.inherited-class.ts\n                            ^\n                            source.ts meta.interface.ts punctuation.separator.comma.ts\n                             ^\n                             source.ts meta.interface.ts\n                              ^^\n                              source.ts meta.interface.ts entity.other.inherited-class.ts\n                                ^\n                                source.ts meta.interface.ts punctuation.separator.comma.ts\n                                 ^\n                                 source.ts meta.interface.ts\n                                  ^^\n                                  source.ts meta.interface.ts entity.other.inherited-class.ts\n                                    ^\n                                    source.ts meta.interface.ts\n                                     ^\n                                     source.ts meta.interface.ts punctuation.definition.block.ts\n                                      ^\n                                      source.ts meta.interface.ts punctuation.definition.block.ts\n>interface i /**/ extends i1, i2, i3 {}\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^^\n             source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n               ^^\n               source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                 ^\n                 source.ts meta.interface.ts\n                  ^^^^^^^\n                  source.ts meta.interface.ts storage.modifier.ts\n                         ^\n                         source.ts meta.interface.ts\n                          ^^\n                          source.ts meta.interface.ts entity.other.inherited-class.ts\n                            ^\n                            source.ts meta.interface.ts punctuation.separator.comma.ts\n                             ^\n                             source.ts meta.interface.ts\n                              ^^\n                              source.ts meta.interface.ts entity.other.inherited-class.ts\n                                ^\n                                source.ts meta.interface.ts punctuation.separator.comma.ts\n                                 ^\n                                 source.ts meta.interface.ts\n                                  ^^\n                                  source.ts meta.interface.ts entity.other.inherited-class.ts\n                                    ^\n                                    source.ts meta.interface.ts\n                                     ^\n                                     source.ts meta.interface.ts punctuation.definition.block.ts\n                                      ^\n                                      source.ts meta.interface.ts punctuation.definition.block.ts\n>interface i extends /**/ i1, i2, i3 {}\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^^^^^^^\n             source.ts meta.interface.ts storage.modifier.ts\n                    ^\n                    source.ts meta.interface.ts\n                     ^^\n                     source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                       ^^\n                       source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                         ^\n                         source.ts meta.interface.ts\n                          ^^\n                          source.ts meta.interface.ts entity.other.inherited-class.ts\n                            ^\n                            source.ts meta.interface.ts punctuation.separator.comma.ts\n                             ^\n                             source.ts meta.interface.ts\n                              ^^\n                              source.ts meta.interface.ts entity.other.inherited-class.ts\n                                ^\n                                source.ts meta.interface.ts punctuation.separator.comma.ts\n                                 ^\n                                 source.ts meta.interface.ts\n                                  ^^\n                                  source.ts meta.interface.ts entity.other.inherited-class.ts\n                                    ^\n                                    source.ts meta.interface.ts\n                                     ^\n                                     source.ts meta.interface.ts punctuation.definition.block.ts\n                                      ^\n                                      source.ts meta.interface.ts punctuation.definition.block.ts\n>interface i extends i1 /**/, i2, i3 {}\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^^^^^^^\n             source.ts meta.interface.ts storage.modifier.ts\n                    ^\n                    source.ts meta.interface.ts\n                     ^^\n                     source.ts meta.interface.ts entity.other.inherited-class.ts\n                       ^\n                       source.ts meta.interface.ts\n                        ^^\n                        source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                          ^^\n                          source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                            ^\n                            source.ts meta.interface.ts punctuation.separator.comma.ts\n                             ^\n                             source.ts meta.interface.ts\n                              ^^\n                              source.ts meta.interface.ts entity.other.inherited-class.ts\n                                ^\n                                source.ts meta.interface.ts punctuation.separator.comma.ts\n                                 ^\n                                 source.ts meta.interface.ts\n                                  ^^\n                                  source.ts meta.interface.ts entity.other.inherited-class.ts\n                                    ^\n                                    source.ts meta.interface.ts\n                                     ^\n                                     source.ts meta.interface.ts punctuation.definition.block.ts\n                                      ^\n                                      source.ts meta.interface.ts punctuation.definition.block.ts\n>interface i extends i1, /**/ i2, i3 {}\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^^^^^^^\n             source.ts meta.interface.ts storage.modifier.ts\n                    ^\n                    source.ts meta.interface.ts\n                     ^^\n                     source.ts meta.interface.ts entity.other.inherited-class.ts\n                       ^\n                       source.ts meta.interface.ts punctuation.separator.comma.ts\n                        ^\n                        source.ts meta.interface.ts\n                         ^^\n                         source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                           ^^\n                           source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                             ^\n                             source.ts meta.interface.ts\n                              ^^\n                              source.ts meta.interface.ts entity.other.inherited-class.ts\n                                ^\n                                source.ts meta.interface.ts punctuation.separator.comma.ts\n                                 ^\n                                 source.ts meta.interface.ts\n                                  ^^\n                                  source.ts meta.interface.ts entity.other.inherited-class.ts\n                                    ^\n                                    source.ts meta.interface.ts\n                                     ^\n                                     source.ts meta.interface.ts punctuation.definition.block.ts\n                                      ^\n                                      source.ts meta.interface.ts punctuation.definition.block.ts\n>interface i extends i1, i2 /**/, i3 {}\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^^^^^^^\n             source.ts meta.interface.ts storage.modifier.ts\n                    ^\n                    source.ts meta.interface.ts\n                     ^^\n                     source.ts meta.interface.ts entity.other.inherited-class.ts\n                       ^\n                       source.ts meta.interface.ts punctuation.separator.comma.ts\n                        ^\n                        source.ts meta.interface.ts\n                         ^^\n                         source.ts meta.interface.ts entity.other.inherited-class.ts\n                           ^\n                           source.ts meta.interface.ts\n                            ^^\n                            source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                              ^^\n                              source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                ^\n                                source.ts meta.interface.ts punctuation.separator.comma.ts\n                                 ^\n                                 source.ts meta.interface.ts\n                                  ^^\n                                  source.ts meta.interface.ts entity.other.inherited-class.ts\n                                    ^\n                                    source.ts meta.interface.ts\n                                     ^\n                                     source.ts meta.interface.ts punctuation.definition.block.ts\n                                      ^\n                                      source.ts meta.interface.ts punctuation.definition.block.ts\n>interface i extends i1, i2, /**/ i3 {}\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^^^^^^^\n             source.ts meta.interface.ts storage.modifier.ts\n                    ^\n                    source.ts meta.interface.ts\n                     ^^\n                     source.ts meta.interface.ts entity.other.inherited-class.ts\n                       ^\n                       source.ts meta.interface.ts punctuation.separator.comma.ts\n                        ^\n                        source.ts meta.interface.ts\n                         ^^\n                         source.ts meta.interface.ts entity.other.inherited-class.ts\n                           ^\n                           source.ts meta.interface.ts punctuation.separator.comma.ts\n                            ^\n                            source.ts meta.interface.ts\n                             ^^\n                             source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                               ^^\n                               source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                 ^\n                                 source.ts meta.interface.ts\n                                  ^^\n                                  source.ts meta.interface.ts entity.other.inherited-class.ts\n                                    ^\n                                    source.ts meta.interface.ts\n                                     ^\n                                     source.ts meta.interface.ts punctuation.definition.block.ts\n                                      ^\n                                      source.ts meta.interface.ts punctuation.definition.block.ts\n>interface i extends i1, i2, i3 /**/ {}\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^^^^^^^\n             source.ts meta.interface.ts storage.modifier.ts\n                    ^\n                    source.ts meta.interface.ts\n                     ^^\n                     source.ts meta.interface.ts entity.other.inherited-class.ts\n                       ^\n                       source.ts meta.interface.ts punctuation.separator.comma.ts\n                        ^\n                        source.ts meta.interface.ts\n                         ^^\n                         source.ts meta.interface.ts entity.other.inherited-class.ts\n                           ^\n                           source.ts meta.interface.ts punctuation.separator.comma.ts\n                            ^\n                            source.ts meta.interface.ts\n                             ^^\n                             source.ts meta.interface.ts entity.other.inherited-class.ts\n                               ^\n                               source.ts meta.interface.ts\n                                ^^\n                                source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                  ^^\n                                  source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                    ^\n                                    source.ts meta.interface.ts\n                                     ^\n                                     source.ts meta.interface.ts punctuation.definition.block.ts\n                                      ^\n                                      source.ts meta.interface.ts punctuation.definition.block.ts\n>/**/ interface /**/ i /**/ extends /**/ i1, /**/ i2, /**/ i3 /**/ {}\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^^\n   source.ts comment.block.ts punctuation.definition.comment.ts\n     ^\n     source.ts\n      ^^^^^^^^^\n      source.ts meta.interface.ts storage.type.interface.ts\n               ^\n               source.ts meta.interface.ts\n                ^^\n                source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                  ^^\n                  source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                    ^\n                    source.ts meta.interface.ts\n                     ^\n                     source.ts meta.interface.ts entity.name.type.interface.ts\n                      ^\n                      source.ts meta.interface.ts\n                       ^^\n                       source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                         ^^\n                         source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                           ^\n                           source.ts meta.interface.ts\n                            ^^^^^^^\n                            source.ts meta.interface.ts storage.modifier.ts\n                                   ^\n                                   source.ts meta.interface.ts\n                                    ^^\n                                    source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                      ^^\n                                      source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                        ^\n                                        source.ts meta.interface.ts\n                                         ^^\n                                         source.ts meta.interface.ts entity.other.inherited-class.ts\n                                           ^\n                                           source.ts meta.interface.ts punctuation.separator.comma.ts\n                                            ^\n                                            source.ts meta.interface.ts\n                                             ^^\n                                             source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                               ^^\n                                               source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                                 ^\n                                                 source.ts meta.interface.ts\n                                                  ^^\n                                                  source.ts meta.interface.ts entity.other.inherited-class.ts\n                                                    ^\n                                                    source.ts meta.interface.ts punctuation.separator.comma.ts\n                                                     ^\n                                                     source.ts meta.interface.ts\n                                                      ^^\n                                                      source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                                        ^^\n                                                        source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                                          ^\n                                                          source.ts meta.interface.ts\n                                                           ^^\n                                                           source.ts meta.interface.ts entity.other.inherited-class.ts\n                                                             ^\n                                                             source.ts meta.interface.ts\n                                                              ^^\n                                                              source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                                                ^^\n                                                                source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                                                  ^\n                                                                  source.ts meta.interface.ts\n                                                                   ^\n                                                                   source.ts meta.interface.ts punctuation.definition.block.ts\n                                                                    ^\n                                                                    source.ts meta.interface.ts punctuation.definition.block.ts\n>/**/ interface /**/ i /**/ extends /**/ i1 /**/ , /**/ i2 /**/ , /**/ i3 /**/ {}\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^^\n   source.ts comment.block.ts punctuation.definition.comment.ts\n     ^\n     source.ts\n      ^^^^^^^^^\n      source.ts meta.interface.ts storage.type.interface.ts\n               ^\n               source.ts meta.interface.ts\n                ^^\n                source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                  ^^\n                  source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                    ^\n                    source.ts meta.interface.ts\n                     ^\n                     source.ts meta.interface.ts entity.name.type.interface.ts\n                      ^\n                      source.ts meta.interface.ts\n                       ^^\n                       source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                         ^^\n                         source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                           ^\n                           source.ts meta.interface.ts\n                            ^^^^^^^\n                            source.ts meta.interface.ts storage.modifier.ts\n                                   ^\n                                   source.ts meta.interface.ts\n                                    ^^\n                                    source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                      ^^\n                                      source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                        ^\n                                        source.ts meta.interface.ts\n                                         ^^\n                                         source.ts meta.interface.ts entity.other.inherited-class.ts\n                                           ^\n                                           source.ts meta.interface.ts\n                                            ^^\n                                            source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                              ^^\n                                              source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                                ^\n                                                source.ts meta.interface.ts\n                                                 ^\n                                                 source.ts meta.interface.ts punctuation.separator.comma.ts\n                                                  ^\n                                                  source.ts meta.interface.ts\n                                                   ^^\n                                                   source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                                     ^^\n                                                     source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                                       ^\n                                                       source.ts meta.interface.ts\n                                                        ^^\n                                                        source.ts meta.interface.ts entity.other.inherited-class.ts\n                                                          ^\n                                                          source.ts meta.interface.ts\n                                                           ^^\n                                                           source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                                             ^^\n                                                             source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                                               ^\n                                                               source.ts meta.interface.ts\n                                                                ^\n                                                                source.ts meta.interface.ts punctuation.separator.comma.ts\n                                                                 ^\n                                                                 source.ts meta.interface.ts\n                                                                  ^^\n                                                                  source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                                                    ^^\n                                                                    source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                                                      ^\n                                                                      source.ts meta.interface.ts\n                                                                       ^^\n                                                                       source.ts meta.interface.ts entity.other.inherited-class.ts\n                                                                         ^\n                                                                         source.ts meta.interface.ts\n                                                                          ^^\n                                                                          source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                                                            ^^\n                                                                            source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                                                              ^\n                                                                              source.ts meta.interface.ts\n                                                                               ^\n                                                                               source.ts meta.interface.ts punctuation.definition.block.ts\n                                                                                ^\n                                                                                source.ts meta.interface.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>/**/class i extends c1,c2,c3{}\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^^\n   source.ts comment.block.ts punctuation.definition.comment.ts\n     ^^^^^\n     source.ts meta.class.ts storage.type.class.ts\n          ^\n          source.ts meta.class.ts\n           ^\n           source.ts meta.class.ts entity.name.type.class.ts\n            ^\n            source.ts meta.class.ts\n             ^^^^^^^\n             source.ts meta.class.ts storage.modifier.ts\n                    ^\n                    source.ts meta.class.ts\n                     ^^\n                     source.ts meta.class.ts entity.other.inherited-class.ts\n                       ^\n                       source.ts meta.class.ts punctuation.separator.comma.ts\n                        ^^\n                        source.ts meta.class.ts entity.other.inherited-class.ts\n                          ^\n                          source.ts meta.class.ts punctuation.separator.comma.ts\n                           ^^\n                           source.ts meta.class.ts entity.other.inherited-class.ts\n                             ^\n                             source.ts meta.class.ts punctuation.definition.block.ts\n                              ^\n                              source.ts meta.class.ts punctuation.definition.block.ts\n>class/**/i extends c1,c2,c3{}\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^^\n      source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n        ^^\n        source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n          ^\n          source.ts meta.class.ts entity.name.type.class.ts\n           ^\n           source.ts meta.class.ts\n            ^^^^^^^\n            source.ts meta.class.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts\n                    ^^\n                    source.ts meta.class.ts entity.other.inherited-class.ts\n                      ^\n                      source.ts meta.class.ts punctuation.separator.comma.ts\n                       ^^\n                       source.ts meta.class.ts entity.other.inherited-class.ts\n                         ^\n                         source.ts meta.class.ts punctuation.separator.comma.ts\n                          ^^\n                          source.ts meta.class.ts entity.other.inherited-class.ts\n                            ^\n                            source.ts meta.class.ts punctuation.definition.block.ts\n                             ^\n                             source.ts meta.class.ts punctuation.definition.block.ts\n>class i/**/extends c1,c2,c3{}\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^^\n        source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n          ^^\n          source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n            ^^^^^^^\n            source.ts meta.class.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts\n                    ^^\n                    source.ts meta.class.ts entity.other.inherited-class.ts\n                      ^\n                      source.ts meta.class.ts punctuation.separator.comma.ts\n                       ^^\n                       source.ts meta.class.ts entity.other.inherited-class.ts\n                         ^\n                         source.ts meta.class.ts punctuation.separator.comma.ts\n                          ^^\n                          source.ts meta.class.ts entity.other.inherited-class.ts\n                            ^\n                            source.ts meta.class.ts punctuation.definition.block.ts\n                             ^\n                             source.ts meta.class.ts punctuation.definition.block.ts\n>class i extends/**/c1,c2,c3{}\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^^^^^^^\n         source.ts meta.class.ts storage.modifier.ts\n                ^^\n                source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                  ^^\n                  source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                    ^^\n                    source.ts meta.class.ts entity.other.inherited-class.ts\n                      ^\n                      source.ts meta.class.ts punctuation.separator.comma.ts\n                       ^^\n                       source.ts meta.class.ts entity.other.inherited-class.ts\n                         ^\n                         source.ts meta.class.ts punctuation.separator.comma.ts\n                          ^^\n                          source.ts meta.class.ts entity.other.inherited-class.ts\n                            ^\n                            source.ts meta.class.ts punctuation.definition.block.ts\n                             ^\n                             source.ts meta.class.ts punctuation.definition.block.ts\n>class i extends c1/**/,c2,c3{}\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^^^^^^^\n         source.ts meta.class.ts storage.modifier.ts\n                ^\n                source.ts meta.class.ts\n                 ^^\n                 source.ts meta.class.ts entity.other.inherited-class.ts\n                   ^^\n                   source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                     ^^\n                     source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                       ^\n                       source.ts meta.class.ts punctuation.separator.comma.ts\n                        ^^\n                        source.ts meta.class.ts entity.other.inherited-class.ts\n                          ^\n                          source.ts meta.class.ts punctuation.separator.comma.ts\n                           ^^\n                           source.ts meta.class.ts entity.other.inherited-class.ts\n                             ^\n                             source.ts meta.class.ts punctuation.definition.block.ts\n                              ^\n                              source.ts meta.class.ts punctuation.definition.block.ts\n>class i extends c1,/**/c2,c3{}\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^^^^^^^\n         source.ts meta.class.ts storage.modifier.ts\n                ^\n                source.ts meta.class.ts\n                 ^^\n                 source.ts meta.class.ts entity.other.inherited-class.ts\n                   ^\n                   source.ts meta.class.ts punctuation.separator.comma.ts\n                    ^^\n                    source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                      ^^\n                      source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                        ^^\n                        source.ts meta.class.ts entity.other.inherited-class.ts\n                          ^\n                          source.ts meta.class.ts punctuation.separator.comma.ts\n                           ^^\n                           source.ts meta.class.ts entity.other.inherited-class.ts\n                             ^\n                             source.ts meta.class.ts punctuation.definition.block.ts\n                              ^\n                              source.ts meta.class.ts punctuation.definition.block.ts\n>class i extends c1,c2/**/,c3{}\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^^^^^^^\n         source.ts meta.class.ts storage.modifier.ts\n                ^\n                source.ts meta.class.ts\n                 ^^\n                 source.ts meta.class.ts entity.other.inherited-class.ts\n                   ^\n                   source.ts meta.class.ts punctuation.separator.comma.ts\n                    ^^\n                    source.ts meta.class.ts entity.other.inherited-class.ts\n                      ^^\n                      source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                        ^^\n                        source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                          ^\n                          source.ts meta.class.ts punctuation.separator.comma.ts\n                           ^^\n                           source.ts meta.class.ts entity.other.inherited-class.ts\n                             ^\n                             source.ts meta.class.ts punctuation.definition.block.ts\n                              ^\n                              source.ts meta.class.ts punctuation.definition.block.ts\n>class i extends c1,c2,/**/c3{}\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^^^^^^^\n         source.ts meta.class.ts storage.modifier.ts\n                ^\n                source.ts meta.class.ts\n                 ^^\n                 source.ts meta.class.ts entity.other.inherited-class.ts\n                   ^\n                   source.ts meta.class.ts punctuation.separator.comma.ts\n                    ^^\n                    source.ts meta.class.ts entity.other.inherited-class.ts\n                      ^\n                      source.ts meta.class.ts punctuation.separator.comma.ts\n                       ^^\n                       source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                         ^^\n                         source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                           ^^\n                           source.ts meta.class.ts entity.other.inherited-class.ts\n                             ^\n                             source.ts meta.class.ts punctuation.definition.block.ts\n                              ^\n                              source.ts meta.class.ts punctuation.definition.block.ts\n>class i extends c1,c2,c3/**/{}\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^^^^^^^\n         source.ts meta.class.ts storage.modifier.ts\n                ^\n                source.ts meta.class.ts\n                 ^^\n                 source.ts meta.class.ts entity.other.inherited-class.ts\n                   ^\n                   source.ts meta.class.ts punctuation.separator.comma.ts\n                    ^^\n                    source.ts meta.class.ts entity.other.inherited-class.ts\n                      ^\n                      source.ts meta.class.ts punctuation.separator.comma.ts\n                       ^^\n                       source.ts meta.class.ts entity.other.inherited-class.ts\n                         ^^\n                         source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                           ^^\n                           source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                             ^\n                             source.ts meta.class.ts punctuation.definition.block.ts\n                              ^\n                              source.ts meta.class.ts punctuation.definition.block.ts\n>/**/class/**/i/**/extends/**/c1,/**/c2,/**/c3/**/{}\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^^\n   source.ts comment.block.ts punctuation.definition.comment.ts\n     ^^^^^\n     source.ts meta.class.ts storage.type.class.ts\n          ^^\n          source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n            ^^\n            source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n              ^\n              source.ts meta.class.ts entity.name.type.class.ts\n               ^^\n               source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                 ^^\n                 source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                   ^^^^^^^\n                   source.ts meta.class.ts storage.modifier.ts\n                          ^^\n                          source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                            ^^\n                            source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                              ^^\n                              source.ts meta.class.ts entity.other.inherited-class.ts\n                                ^\n                                source.ts meta.class.ts punctuation.separator.comma.ts\n                                 ^^\n                                 source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                   ^^\n                                   source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                     ^^\n                                     source.ts meta.class.ts entity.other.inherited-class.ts\n                                       ^\n                                       source.ts meta.class.ts punctuation.separator.comma.ts\n                                        ^^\n                                        source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                          ^^\n                                          source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                            ^^\n                                            source.ts meta.class.ts entity.other.inherited-class.ts\n                                              ^^\n                                              source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                                ^^\n                                                source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                                  ^\n                                                  source.ts meta.class.ts punctuation.definition.block.ts\n                                                   ^\n                                                   source.ts meta.class.ts punctuation.definition.block.ts\n>/**/class/**/i/**/extends/**/c1/**/,/**/c2/**/,/**/c3/**/{}\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^^\n   source.ts comment.block.ts punctuation.definition.comment.ts\n     ^^^^^\n     source.ts meta.class.ts storage.type.class.ts\n          ^^\n          source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n            ^^\n            source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n              ^\n              source.ts meta.class.ts entity.name.type.class.ts\n               ^^\n               source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                 ^^\n                 source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                   ^^^^^^^\n                   source.ts meta.class.ts storage.modifier.ts\n                          ^^\n                          source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                            ^^\n                            source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                              ^^\n                              source.ts meta.class.ts entity.other.inherited-class.ts\n                                ^^\n                                source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                  ^^\n                                  source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                    ^\n                                    source.ts meta.class.ts punctuation.separator.comma.ts\n                                     ^^\n                                     source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                       ^^\n                                       source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                         ^^\n                                         source.ts meta.class.ts entity.other.inherited-class.ts\n                                           ^^\n                                           source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                             ^^\n                                             source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                               ^\n                                               source.ts meta.class.ts punctuation.separator.comma.ts\n                                                ^^\n                                                source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                                  ^^\n                                                  source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                                    ^^\n                                                    source.ts meta.class.ts entity.other.inherited-class.ts\n                                                      ^^\n                                                      source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                                        ^^\n                                                        source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                                          ^\n                                                          source.ts meta.class.ts punctuation.definition.block.ts\n                                                           ^\n                                                           source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>interface KeyValuePair/**/<K, V> extends Array<K | V> { 0: K; 1: V; }\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^^^^^^^^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n                       ^^\n                       source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                         ^^\n                         source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                           ^\n                           source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                            ^\n                            source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                             ^\n                             source.ts meta.interface.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                              ^\n                              source.ts meta.interface.ts meta.type.parameters.ts\n                               ^\n                               source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                                ^\n                                source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                 ^\n                                 source.ts meta.interface.ts\n                                  ^^^^^^^\n                                  source.ts meta.interface.ts storage.modifier.ts\n                                         ^\n                                         source.ts meta.interface.ts\n                                          ^^^^^\n                                          source.ts meta.interface.ts support.class.builtin.ts\n                                               ^\n                                               source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                ^\n                                                source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                                                 ^\n                                                 source.ts meta.interface.ts meta.type.parameters.ts\n                                                  ^\n                                                  source.ts meta.interface.ts meta.type.parameters.ts keyword.operator.type.ts\n                                                   ^\n                                                   source.ts meta.interface.ts meta.type.parameters.ts\n                                                    ^\n                                                    source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                                                     ^\n                                                     source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                      ^\n                                                      source.ts meta.interface.ts\n                                                       ^\n                                                       source.ts meta.interface.ts punctuation.definition.block.ts\n                                                        ^\n                                                        source.ts meta.interface.ts meta.field.declaration.ts\n                                                         ^\n                                                         source.ts meta.interface.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                                                          ^\n                                                          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                           ^\n                                                           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                            ^\n                                                            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                             ^\n                                                             source.ts meta.interface.ts punctuation.terminator.statement.ts\n                                                              ^\n                                                              source.ts meta.interface.ts meta.field.declaration.ts\n                                                               ^\n                                                               source.ts meta.interface.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                                                                ^\n                                                                source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                 ^\n                                                                 source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                                  ^\n                                                                  source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                                   ^\n                                                                   source.ts meta.interface.ts punctuation.terminator.statement.ts\n                                                                    ^\n                                                                    source.ts meta.interface.ts\n                                                                     ^\n                                                                     source.ts meta.interface.ts punctuation.definition.block.ts\n>interface KeyValuePair<K, V>/**/extends Array<K | V> { 0: K; 1: V; }\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^^^^^^^^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n                       ^\n                       source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                        ^\n                        source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                         ^\n                         source.ts meta.interface.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                          ^\n                          source.ts meta.interface.ts meta.type.parameters.ts\n                           ^\n                           source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                            ^\n                            source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                             ^^\n                             source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                               ^^\n                               source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                 ^^^^^^^\n                                 source.ts meta.interface.ts storage.modifier.ts\n                                        ^\n                                        source.ts meta.interface.ts\n                                         ^^^^^\n                                         source.ts meta.interface.ts support.class.builtin.ts\n                                              ^\n                                              source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                               ^\n                                               source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                                                ^\n                                                source.ts meta.interface.ts meta.type.parameters.ts\n                                                 ^\n                                                 source.ts meta.interface.ts meta.type.parameters.ts keyword.operator.type.ts\n                                                  ^\n                                                  source.ts meta.interface.ts meta.type.parameters.ts\n                                                   ^\n                                                   source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                                                    ^\n                                                    source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                     ^\n                                                     source.ts meta.interface.ts\n                                                      ^\n                                                      source.ts meta.interface.ts punctuation.definition.block.ts\n                                                       ^\n                                                       source.ts meta.interface.ts meta.field.declaration.ts\n                                                        ^\n                                                        source.ts meta.interface.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                                                         ^\n                                                         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                          ^\n                                                          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                           ^\n                                                           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                            ^\n                                                            source.ts meta.interface.ts punctuation.terminator.statement.ts\n                                                             ^\n                                                             source.ts meta.interface.ts meta.field.declaration.ts\n                                                              ^\n                                                              source.ts meta.interface.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                                                               ^\n                                                               source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                ^\n                                                                source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                                 ^\n                                                                 source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                                  ^\n                                                                  source.ts meta.interface.ts punctuation.terminator.statement.ts\n                                                                   ^\n                                                                   source.ts meta.interface.ts\n                                                                    ^\n                                                                    source.ts meta.interface.ts punctuation.definition.block.ts\n>interface KeyValuePair<K, V> extends/**/Array<K | V> { 0: K; 1: V; }\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^^^^^^^^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n                       ^\n                       source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                        ^\n                        source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                         ^\n                         source.ts meta.interface.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                          ^\n                          source.ts meta.interface.ts meta.type.parameters.ts\n                           ^\n                           source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                            ^\n                            source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                             ^\n                             source.ts meta.interface.ts\n                              ^^^^^^^\n                              source.ts meta.interface.ts storage.modifier.ts\n                                     ^^\n                                     source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                       ^^\n                                       source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                         ^^^^^\n                                         source.ts meta.interface.ts support.class.builtin.ts\n                                              ^\n                                              source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                               ^\n                                               source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                                                ^\n                                                source.ts meta.interface.ts meta.type.parameters.ts\n                                                 ^\n                                                 source.ts meta.interface.ts meta.type.parameters.ts keyword.operator.type.ts\n                                                  ^\n                                                  source.ts meta.interface.ts meta.type.parameters.ts\n                                                   ^\n                                                   source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                                                    ^\n                                                    source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                     ^\n                                                     source.ts meta.interface.ts\n                                                      ^\n                                                      source.ts meta.interface.ts punctuation.definition.block.ts\n                                                       ^\n                                                       source.ts meta.interface.ts meta.field.declaration.ts\n                                                        ^\n                                                        source.ts meta.interface.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                                                         ^\n                                                         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                          ^\n                                                          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                           ^\n                                                           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                            ^\n                                                            source.ts meta.interface.ts punctuation.terminator.statement.ts\n                                                             ^\n                                                             source.ts meta.interface.ts meta.field.declaration.ts\n                                                              ^\n                                                              source.ts meta.interface.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                                                               ^\n                                                               source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                ^\n                                                                source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                                 ^\n                                                                 source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                                  ^\n                                                                  source.ts meta.interface.ts punctuation.terminator.statement.ts\n                                                                   ^\n                                                                   source.ts meta.interface.ts\n                                                                    ^\n                                                                    source.ts meta.interface.ts punctuation.definition.block.ts\n>interface KeyValuePair<K, V> extends Array/**/<K | V> { 0: K; 1: V; }\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^^^^^^^^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n                       ^\n                       source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                        ^\n                        source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                         ^\n                         source.ts meta.interface.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                          ^\n                          source.ts meta.interface.ts meta.type.parameters.ts\n                           ^\n                           source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                            ^\n                            source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                             ^\n                             source.ts meta.interface.ts\n                              ^^^^^^^\n                              source.ts meta.interface.ts storage.modifier.ts\n                                     ^\n                                     source.ts meta.interface.ts\n                                      ^^^^^\n                                      source.ts meta.interface.ts support.class.builtin.ts\n                                           ^^\n                                           source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                             ^^\n                                             source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                               ^\n                                               source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                ^\n                                                source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                                                 ^\n                                                 source.ts meta.interface.ts meta.type.parameters.ts\n                                                  ^\n                                                  source.ts meta.interface.ts meta.type.parameters.ts keyword.operator.type.ts\n                                                   ^\n                                                   source.ts meta.interface.ts meta.type.parameters.ts\n                                                    ^\n                                                    source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                                                     ^\n                                                     source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                      ^\n                                                      source.ts meta.interface.ts\n                                                       ^\n                                                       source.ts meta.interface.ts punctuation.definition.block.ts\n                                                        ^\n                                                        source.ts meta.interface.ts meta.field.declaration.ts\n                                                         ^\n                                                         source.ts meta.interface.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                                                          ^\n                                                          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                           ^\n                                                           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                            ^\n                                                            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                             ^\n                                                             source.ts meta.interface.ts punctuation.terminator.statement.ts\n                                                              ^\n                                                              source.ts meta.interface.ts meta.field.declaration.ts\n                                                               ^\n                                                               source.ts meta.interface.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                                                                ^\n                                                                source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                 ^\n                                                                 source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                                  ^\n                                                                  source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                                   ^\n                                                                   source.ts meta.interface.ts punctuation.terminator.statement.ts\n                                                                    ^\n                                                                    source.ts meta.interface.ts\n                                                                     ^\n                                                                     source.ts meta.interface.ts punctuation.definition.block.ts\n>interface KeyValuePair<K, V> extends Array<K | V>/**/{ 0: K; 1: V; }\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^^^^^^^^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n                       ^\n                       source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                        ^\n                        source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                         ^\n                         source.ts meta.interface.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                          ^\n                          source.ts meta.interface.ts meta.type.parameters.ts\n                           ^\n                           source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                            ^\n                            source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                             ^\n                             source.ts meta.interface.ts\n                              ^^^^^^^\n                              source.ts meta.interface.ts storage.modifier.ts\n                                     ^\n                                     source.ts meta.interface.ts\n                                      ^^^^^\n                                      source.ts meta.interface.ts support.class.builtin.ts\n                                           ^\n                                           source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                            ^\n                                            source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                                             ^\n                                             source.ts meta.interface.ts meta.type.parameters.ts\n                                              ^\n                                              source.ts meta.interface.ts meta.type.parameters.ts keyword.operator.type.ts\n                                               ^\n                                               source.ts meta.interface.ts meta.type.parameters.ts\n                                                ^\n                                                source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                                                 ^\n                                                 source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                  ^^\n                                                  source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                                    ^^\n                                                    source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                                                      ^\n                                                      source.ts meta.interface.ts punctuation.definition.block.ts\n                                                       ^\n                                                       source.ts meta.interface.ts meta.field.declaration.ts\n                                                        ^\n                                                        source.ts meta.interface.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                                                         ^\n                                                         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                          ^\n                                                          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                           ^\n                                                           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                            ^\n                                                            source.ts meta.interface.ts punctuation.terminator.statement.ts\n                                                             ^\n                                                             source.ts meta.interface.ts meta.field.declaration.ts\n                                                              ^\n                                                              source.ts meta.interface.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                                                               ^\n                                                               source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                ^\n                                                                source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                                 ^\n                                                                 source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                                  ^\n                                                                  source.ts meta.interface.ts punctuation.terminator.statement.ts\n                                                                   ^\n                                                                   source.ts meta.interface.ts\n                                                                    ^\n                                                                    source.ts meta.interface.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>interface G/**/<extends_, _extends extends Function> {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^^\n            source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n              ^^\n              source.ts meta.interface.ts comment.block.ts punctuation.definition.comment.ts\n                ^\n                source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                 ^^^^^^^^\n                 source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                         ^\n                         source.ts meta.interface.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                          ^\n                          source.ts meta.interface.ts meta.type.parameters.ts\n                           ^^^^^^^^\n                           source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                                   ^\n                                   source.ts meta.interface.ts meta.type.parameters.ts\n                                    ^^^^^^^\n                                    source.ts meta.interface.ts meta.type.parameters.ts storage.modifier.ts\n                                           ^\n                                           source.ts meta.interface.ts meta.type.parameters.ts\n                                            ^^^^^^^^\n                                            source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                                                    ^\n                                                    source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                     ^\n                                                     source.ts meta.interface.ts\n                                                      ^\n                                                      source.ts meta.interface.ts punctuation.definition.block.ts\n>    f<V extends U>(x: V): V;\n ^^^^\n source.ts meta.interface.ts meta.method.declaration.ts\n     ^\n     source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n      ^\n      source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n       ^\n       source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts entity.name.type.ts\n        ^\n        source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts\n         ^^^^^^^\n         source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                ^\n                source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts\n                 ^\n                 source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                  ^\n                  source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                   ^\n                   source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                    ^\n                    source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                       ^\n                       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                        ^\n                        source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                         ^\n                         source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                          ^\n                          source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n                           ^\n                           source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n                            ^\n                            source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>interface G<extends_, _extends/**/extends Function> {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n             ^^^^^^^^\n             source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                     ^\n                     source.ts meta.interface.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                      ^\n                      source.ts meta.interface.ts meta.type.parameters.ts\n                       ^^^^^^^^\n                       source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                               ^^\n                               source.ts meta.interface.ts meta.type.parameters.ts comment.block.ts punctuation.definition.comment.ts\n                                 ^^\n                                 source.ts meta.interface.ts meta.type.parameters.ts comment.block.ts punctuation.definition.comment.ts\n                                   ^^^^^^^\n                                   source.ts meta.interface.ts meta.type.parameters.ts storage.modifier.ts\n                                          ^\n                                          source.ts meta.interface.ts meta.type.parameters.ts\n                                           ^^^^^^^^\n                                           source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                                                   ^\n                                                   source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                    ^\n                                                    source.ts meta.interface.ts\n                                                     ^\n                                                     source.ts meta.interface.ts punctuation.definition.block.ts\n>    f<V extends U>(x: V): V;\n ^^^^\n source.ts meta.interface.ts meta.method.declaration.ts\n     ^\n     source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n      ^\n      source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n       ^\n       source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts entity.name.type.ts\n        ^\n        source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts\n         ^^^^^^^\n         source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                ^\n                source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts\n                 ^\n                 source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                  ^\n                  source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                   ^\n                   source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                    ^\n                    source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                       ^\n                       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                        ^\n                        source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                         ^\n                         source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                          ^\n                          source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n                           ^\n                           source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n                            ^\n                            source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>interface G<extends_, _extends extends/**/Function> {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n             ^^^^^^^^\n             source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                     ^\n                     source.ts meta.interface.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                      ^\n                      source.ts meta.interface.ts meta.type.parameters.ts\n                       ^^^^^^^^\n                       source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                               ^\n                               source.ts meta.interface.ts meta.type.parameters.ts\n                                ^^^^^^^\n                                source.ts meta.interface.ts meta.type.parameters.ts storage.modifier.ts\n                                       ^^\n                                       source.ts meta.interface.ts meta.type.parameters.ts comment.block.ts punctuation.definition.comment.ts\n                                         ^^\n                                         source.ts meta.interface.ts meta.type.parameters.ts comment.block.ts punctuation.definition.comment.ts\n                                           ^^^^^^^^\n                                           source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                                                   ^\n                                                   source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                    ^\n                                                    source.ts meta.interface.ts\n                                                     ^\n                                                     source.ts meta.interface.ts punctuation.definition.block.ts\n>    f<V extends U>(x: V): V;\n ^^^^\n source.ts meta.interface.ts meta.method.declaration.ts\n     ^\n     source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n      ^\n      source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n       ^\n       source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts entity.name.type.ts\n        ^\n        source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts\n         ^^^^^^^\n         source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                ^\n                source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts\n                 ^\n                 source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                  ^\n                  source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                   ^\n                   source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                    ^\n                    source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                       ^\n                       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                        ^\n                        source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                         ^\n                         source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                          ^\n                          source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n                           ^\n                           source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n                            ^\n                            source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>var x/*comments*/=new String();\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts comment.block.ts punctuation.definition.comment.ts\n        ^^^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts comment.block.ts\n                ^^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts comment.block.ts punctuation.definition.comment.ts\n                  ^\n                  source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                   ^^^\n                   source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n                      ^\n                      source.ts meta.var.expr.ts new.expr.ts\n                       ^^^^^^\n                       source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts support.class.builtin.ts\n                             ^\n                             source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts punctuation.terminator.statement.ts\n>var x=/*comments*/new String();\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts keyword.operator.assignment.ts\n       ^^\n       source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n         ^^^^^^^^\n         source.ts meta.var.expr.ts comment.block.ts\n                 ^^\n                 source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n                   ^^^\n                   source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n                      ^\n                      source.ts meta.var.expr.ts new.expr.ts\n                       ^^^^^^\n                       source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts support.class.builtin.ts\n                             ^\n                             source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts punctuation.terminator.statement.ts\n>var x= new/*comments*/String();\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts keyword.operator.assignment.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^\n        source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n           ^^\n           source.ts meta.var.expr.ts new.expr.ts comment.block.ts punctuation.definition.comment.ts\n             ^^^^^^^^\n             source.ts meta.var.expr.ts new.expr.ts comment.block.ts\n                     ^^\n                     source.ts meta.var.expr.ts new.expr.ts comment.block.ts punctuation.definition.comment.ts\n                       ^^^^^^\n                       source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts support.class.builtin.ts\n                             ^\n                             source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>var x /* comments */ = new String();\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts comment.block.ts punctuation.definition.comment.ts\n         ^^^^^^^^^^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts comment.block.ts\n                   ^^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts comment.block.ts punctuation.definition.comment.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                      ^\n                      source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                       ^\n                       source.ts meta.var.expr.ts\n                        ^^^\n                        source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n                           ^\n                           source.ts meta.var.expr.ts new.expr.ts\n                            ^^^^^^\n                            source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts support.class.builtin.ts\n                                  ^\n                                  source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts punctuation.terminator.statement.ts\n>var x = /* comments */ new String();\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^\n         source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n           ^^^^^^^^^^\n           source.ts meta.var.expr.ts comment.block.ts\n                     ^^\n                     source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n                       ^\n                       source.ts meta.var.expr.ts\n                        ^^^\n                        source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n                           ^\n                           source.ts meta.var.expr.ts new.expr.ts\n                            ^^^^^^\n                            source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts support.class.builtin.ts\n                                  ^\n                                  source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts punctuation.terminator.statement.ts\n>var x = new /* comments */ String();\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^\n         source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n            ^\n            source.ts meta.var.expr.ts new.expr.ts\n             ^^\n             source.ts meta.var.expr.ts new.expr.ts comment.block.ts punctuation.definition.comment.ts\n               ^^^^^^^^^^\n               source.ts meta.var.expr.ts new.expr.ts comment.block.ts\n                         ^^\n                         source.ts meta.var.expr.ts new.expr.ts comment.block.ts punctuation.definition.comment.ts\n                           ^\n                           source.ts meta.var.expr.ts new.expr.ts\n                            ^^^^^^\n                            source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts support.class.builtin.ts\n                                  ^\n                                  source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/FunctionMethodOverloads.baseline.txt",
    "content": "original file\n-----------------------------------\n/* Function overload tests */\nexport function testFunctionOverload(p: number): new() => any\nexport function testFunctionOverload(p: string)\nexport function testFunctionOverload(p: string [])\nexport function testFunctionOverload(p: {})\nexport function testFunctionOverload(p: {a: A, b:B} | string [])\nexport function testFunctionOverload(p: any): new() => any {\n    throw new Error(\"\")\n}\n\nexport function testFunctionOverloadWithSemicolon(p: number): new () => any;\nexport function testFunctionOverloadWithSemicolon(p: string);\nexport function testFunctionOverloadWithSemicolon(p: string[]);\nexport function testFunctionOverloadWithSemicolon(p: {});\nexport function testFunctionOverloadWithSemicolon(p: { a: A, b: B } | string[]);\nexport function testFunctionOverloadWithSemicolon(p: any): new () => any {\n    throw new Error(\"\")\n}\n\n\nclass testClass {\n    /* Function overload tests */\n    public testMethodOverload(p: number): new() => any\n    public testMethodOverload(p: string)\n    public testMethodOverload(p: string [])\n    public testMethodOverload(p: {})\n    public testMethodOverload(p: {a: A, b:B} | string [])\n    public testMethodOverload(p: any): new() => any {\n        throw new Error(\"\")\n    }\n\n    public testMethodOverloadWithSemicolon(p: number): new () => any;\n    public testMethodOverloadWithSemicolon(p: string);\n    public testMethodOverloadWithSemicolon(p: string[]);\n    public testMethodOverloadWithSemicolon(p: {});\n    public testMethodOverloadWithSemicolon(p: { a: A, b: B } | string[]);\n    public testMethodOverloadWithSemicolon(p: any): new () => any {\n        throw new Error(\"\")\n    }\n}\n\ninterface I {\n    foo(): number\n    bar(): string;\n}\n\nabstract class C {\n    abstract foo()\n    abstract bar()\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/* Function overload tests */\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.block.ts\n                            ^^\n                            source.ts comment.block.ts punctuation.definition.comment.ts\n>export function testFunctionOverload(p: number): new() => any\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                         ^^^^^^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                               ^\n                                               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                ^\n                                                source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.return.type.ts\n                                                  ^^^\n                                                  source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts keyword.control.new.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.return.type.ts\n                                                        ^^\n                                                        source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                                                           ^^^\n                                                           source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts support.type.primitive.ts\n>export function testFunctionOverload(p: string)\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                         ^^^^^^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                               ^\n                                               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>export function testFunctionOverload(p: string [])\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                         ^^^^^^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                               ^\n                                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                ^\n                                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>export function testFunctionOverload(p: {})\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                          ^\n                                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                           ^\n                                           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>export function testFunctionOverload(p: {a: A, b:B} | string [])\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                          ^\n                                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                           ^\n                                           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                            ^\n                                            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                             ^\n                                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                              ^\n                                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.separator.comma.ts\n                                               ^\n                                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                                                ^\n                                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                       ^^^^^^\n                                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>export function testFunctionOverload(p: any): new() => any {\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                         ^^^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                            ^\n                                            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                             ^\n                                             source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                              ^\n                                              source.ts meta.function.ts meta.return.type.ts\n                                               ^^^\n                                               source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts keyword.control.new.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.return.type.ts\n                                                     ^^\n                                                     source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                                                        ^^^\n                                                        source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts support.type.primitive.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    throw new Error(\"\")\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.trycatch.ts\n          ^\n          source.ts meta.function.ts meta.block.ts\n           ^^^\n           source.ts meta.function.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n              ^\n              source.ts meta.function.ts meta.block.ts new.expr.ts\n               ^^^^^\n               source.ts meta.function.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>export function testFunctionOverloadWithSemicolon(p: number): new () => any;\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                      ^^^^^^\n                                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.return.type.ts\n                                                               ^^^\n                                                               source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts keyword.control.new.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.return.type.ts\n                                                                      ^^\n                                                                      source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                                        ^\n                                                                        source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                                                                         ^^^\n                                                                         source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts support.type.primitive.ts\n                                                                            ^\n                                                                            source.ts punctuation.terminator.statement.ts\n>export function testFunctionOverloadWithSemicolon(p: string);\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                      ^^^^^^\n                                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                             ^\n                                                             source.ts punctuation.terminator.statement.ts\n>export function testFunctionOverloadWithSemicolon(p: string[]);\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                      ^^^^^^\n                                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                               ^\n                                                               source.ts punctuation.terminator.statement.ts\n>export function testFunctionOverloadWithSemicolon(p: {});\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                         ^\n                                                         source.ts punctuation.terminator.statement.ts\n>export function testFunctionOverloadWithSemicolon(p: { a: A, b: B } | string[]);\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.separator.comma.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                                       ^^^^^^\n                                                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                             ^\n                                                                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                              ^\n                                                                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                               ^\n                                                                               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                                ^\n                                                                                source.ts punctuation.terminator.statement.ts\n>export function testFunctionOverloadWithSemicolon(p: any): new () => any {\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                      ^^^\n                                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.return.type.ts\n                                                            ^^^\n                                                            source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts keyword.control.new.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.return.type.ts\n                                                                   ^^\n                                                                   source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                                                                      ^^^\n                                                                      source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts support.type.primitive.ts\n                                                                         ^\n                                                                         source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    throw new Error(\"\")\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.trycatch.ts\n          ^\n          source.ts meta.function.ts meta.block.ts\n           ^^^\n           source.ts meta.function.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n              ^\n              source.ts meta.function.ts meta.block.ts new.expr.ts\n               ^^^^^\n               source.ts meta.function.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>\n ^\n source.ts\n>class testClass {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n                ^\n                source.ts meta.class.ts\n                 ^\n                 source.ts meta.class.ts punctuation.definition.block.ts\n>    /* Function overload tests */\n ^^^^\n source.ts meta.class.ts\n     ^^\n     source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n       ^^^^^^^^^^^^^^^^^^^^^^^^^\n       source.ts meta.class.ts comment.block.ts\n                                ^^\n                                source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n>    public testMethodOverload(p: number): new() => any\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                  ^^^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                           ^^^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts keyword.control.new.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                 ^^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts\n                                                    ^^^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts support.type.primitive.ts\n>    public testMethodOverload(p: string)\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                  ^^^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>    public testMethodOverload(p: string [])\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                  ^^^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>    public testMethodOverload(p: {})\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>    public testMethodOverload(p: {a: A, b:B} | string [])\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.separator.comma.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                ^^^^^^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>    public testMethodOverload(p: any): new() => any {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                  ^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                        ^^^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts keyword.control.new.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                              ^^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts\n                                                 ^^^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts support.type.primitive.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        throw new Error(\"\")\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.trycatch.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n               ^^^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts\n                   ^^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>    public testMethodOverloadWithSemicolon(p: number): new () => any;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                               ^^^^^^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                        ^^^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts keyword.control.new.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                              ^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                               ^^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                                 ^\n                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts\n                                                                  ^^^\n                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts support.type.primitive.ts\n                                                                     ^\n                                                                     source.ts meta.class.ts punctuation.terminator.statement.ts\n>    public testMethodOverloadWithSemicolon(p: string);\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                               ^^^^^^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                      ^\n                                                      source.ts meta.class.ts punctuation.terminator.statement.ts\n>    public testMethodOverloadWithSemicolon(p: string[]);\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                               ^^^^^^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                        ^\n                                                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>    public testMethodOverloadWithSemicolon(p: {});\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                  ^\n                                                  source.ts meta.class.ts punctuation.terminator.statement.ts\n>    public testMethodOverloadWithSemicolon(p: { a: A, b: B } | string[]);\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.separator.comma.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                          ^\n                                                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                              ^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n                                                               ^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                                ^^^^^^\n                                                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                      ^\n                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                       ^\n                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                        ^\n                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                         ^\n                                                                         source.ts meta.class.ts punctuation.terminator.statement.ts\n>    public testMethodOverloadWithSemicolon(p: any): new () => any {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                               ^^^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                     ^^^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts keyword.control.new.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                          ^\n                                                          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                            ^^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                              ^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts\n                                                               ^^^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts support.type.primitive.ts\n                                                                  ^\n                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts\n                                                                   ^\n                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        throw new Error(\"\")\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.trycatch.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n               ^^^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts\n                   ^^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>interface I {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^\n             source.ts meta.interface.ts punctuation.definition.block.ts\n>    foo(): number\n ^^^^\n source.ts meta.interface.ts meta.method.declaration.ts\n     ^^^\n     source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n          ^\n          source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n            ^^^^^^\n            source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n>    bar(): string;\n ^^^^\n source.ts meta.interface.ts meta.method.declaration.ts\n     ^^^\n     source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n          ^\n          source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n            ^^^^^^\n            source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>abstract class C {\n ^^^^^^^^\n source.ts meta.class.ts storage.modifier.ts\n         ^\n         source.ts meta.class.ts\n          ^^^^^\n          source.ts meta.class.ts storage.type.class.ts\n               ^\n               source.ts meta.class.ts\n                ^\n                source.ts meta.class.ts entity.name.type.class.ts\n                 ^\n                 source.ts meta.class.ts\n                  ^\n                  source.ts meta.class.ts punctuation.definition.block.ts\n>    abstract foo()\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts\n              ^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>    abstract bar()\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts\n              ^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/FunctionMethodParameters.baseline.txt",
    "content": "original file\n-----------------------------------\n/* Function parameter tests */\nfunction testFunctionParamType(\n    m1: string, \n    m2: {},\n    m3: any [],\n    m4: {a: A, b: B},\n    m5: () => void,\n    m6: (x:(string), y:[number, string]) => number,\n    m7: Array<number>,\n    m8: [number, number],\n    m9: {a: A, b: B} | [number, number], \n    m10: (() => void) | string[]): number {\n    return m6.length;\n}\n\nclass testClass {\n    /* method param type tests */\n    public testMethodParamType(\n        m1: string, \n        m2: {},\n        m3: any [],\n        m4: {a: A, b: B},\n        m5: () => void,\n        m6: (x:(string), y:[number, string]) => number,\n        m7: Array<number>,\n        m8: [number, number],\n        m9: {a: A, b: B} | [number, number], \n        m10: (() => void) | string[]): number {\n        return m6.length;\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/* Function parameter tests */\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.block.ts\n                             ^^\n                             source.ts comment.block.ts punctuation.definition.comment.ts\n>function testFunctionParamType(\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^^^^^^^^^^^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n>    m1: string, \n ^^^^\n source.ts meta.function.ts meta.parameters.ts\n     ^^\n     source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n       ^\n       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n         ^^^^^^\n         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                ^^\n                source.ts meta.function.ts meta.parameters.ts\n>    m2: {},\n ^^^^\n source.ts meta.function.ts meta.parameters.ts\n     ^^\n     source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n       ^\n       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n         ^\n         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n>    m3: any [],\n ^^^^\n source.ts meta.function.ts meta.parameters.ts\n     ^^\n     source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n       ^\n       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n         ^^^\n         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n>    m4: {a: A, b: B},\n ^^^^\n source.ts meta.function.ts meta.parameters.ts\n     ^^\n     source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n       ^\n       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n         ^\n         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.separator.comma.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n>    m5: () => void,\n ^^^^\n source.ts meta.function.ts meta.parameters.ts\n     ^^\n     source.ts meta.function.ts meta.parameters.ts entity.name.function.ts\n       ^\n       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n         ^\n         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n          ^\n          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n            ^^\n            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts\n               ^^^^\n               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts support.type.primitive.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n>    m6: (x:(string), y:[number, string]) => number,\n ^^^^\n source.ts meta.function.ts meta.parameters.ts\n     ^^\n     source.ts meta.function.ts meta.parameters.ts entity.name.function.ts\n       ^\n       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n         ^\n         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n          ^\n          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n             ^^^^^^\n             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts support.type.primitive.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                         ^^^^^^\n                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts\n                                 ^^^^^^\n                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                          ^^\n                                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                            ^\n                                            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts\n                                             ^^^^^^\n                                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts support.type.primitive.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n>    m7: Array<number>,\n ^^^^\n source.ts meta.function.ts meta.parameters.ts\n     ^^\n     source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n       ^\n       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n         ^^^^^\n         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n               ^^^^^^\n               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n>    m8: [number, number],\n ^^^^\n source.ts meta.function.ts meta.parameters.ts\n     ^^\n     source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n       ^\n       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n         ^\n         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n          ^^^^^^\n          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts\n                  ^^^^^^\n                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n>    m9: {a: A, b: B} | [number, number], \n ^^^^\n source.ts meta.function.ts meta.parameters.ts\n     ^^\n     source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n       ^\n       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n         ^\n         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.separator.comma.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                         ^^^^^^\n                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts\n                                 ^^^^^^\n                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                         ^^\n                                         source.ts meta.function.ts meta.parameters.ts\n>    m10: (() => void) | string[]): number {\n ^^^^\n source.ts meta.function.ts meta.parameters.ts\n     ^^^\n     source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n        ^\n        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n         ^\n         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n          ^\n          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts\n              ^^\n              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                 ^^^^\n                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                         ^^^^^^\n                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                  ^\n                                  source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                   ^\n                                   source.ts meta.function.ts meta.return.type.ts\n                                    ^^^^^^\n                                    source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n                                          ^\n                                          source.ts meta.function.ts meta.return.type.ts\n                                           ^\n                                           source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    return m6.length;\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^^\n            source.ts meta.function.ts meta.block.ts variable.other.object.ts\n              ^\n              source.ts meta.function.ts meta.block.ts punctuation.accessor.ts\n               ^^^^^^\n               source.ts meta.function.ts meta.block.ts support.variable.property.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>class testClass {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n                ^\n                source.ts meta.class.ts\n                 ^\n                 source.ts meta.class.ts punctuation.definition.block.ts\n>    /* method param type tests */\n ^^^^\n source.ts meta.class.ts\n     ^^\n     source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n       ^^^^^^^^^^^^^^^^^^^^^^^^^\n       source.ts meta.class.ts comment.block.ts\n                                ^^\n                                source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n>    public testMethodParamType(\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n>        m1: string, \n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                    ^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n>        m2: {},\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n>        m3: any [],\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n             ^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n>        m4: {a: A, b: B},\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.separator.comma.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n>        m5: () => void,\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts entity.name.function.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                ^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts\n                   ^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n>        m6: (x:(string), y:[number, string]) => number,\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts entity.name.function.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                             ^^^^^^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts\n                                     ^^^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                              ^^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts\n                                                 ^^^^^^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts support.type.primitive.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n>        m7: Array<number>,\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts support.type.primitive.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n>        m8: [number, number],\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n              ^^^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts\n                      ^^^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n>        m9: {a: A, b: B} | [number, number], \n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.separator.comma.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                             ^^^^^^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts\n                                     ^^^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                             ^^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n>        m10: (() => void) | string[]): number {\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n         ^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts\n                  ^^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                     ^^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts support.type.primitive.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                             ^^^^^^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                        ^^^^^^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        return m6.length;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                ^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.object.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts support.variable.property.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/FunctionMethodReturnTypes.baseline.txt",
    "content": "original file\n-----------------------------------\n/* Function return type tests */\nexport function testFunctionReturnType1(): string [] { return [\"\"] }\nexport function testFunctionReturnType2(): {} { return {} }\nexport function testFunctionReturnType3(): {a: A, b: B} { return {a: {m: \"\" }, b: {m1: \"\" }} }\nexport function testFunctionReturnType4(): [number, number] { return [1, 1] }\nexport function testFunctionReturnType5(): Array<A> { return [{ m: \"\" }] }\nexport function testFunctionReturnType6(): new () => number { throw new Error(\"\"); }\nexport function testFunctionReturnType7(): (() => number) { throw new Error(\"\"); }\nexport function testFunctionReturnType8(): (() => number) [] { throw new Error(\"\"); }\nexport function testFunctionReturnType9(): (() => number) | (() => string) { throw new Error(\"\"); }\nexport function testFunctionReturnType10(): {a: A, b: B} [] { return [{a: {m: \"\" }, b: {m1: \"\" }}] }\nexport function testFunctionReturnType11(): number | string { return 1 }\nexport function testFunctionReturnType12(): number | string [] { return }\nexport function testFunctionReturnType13(): [number, number] | string [] { return [\"\"] }\n\nclass TestClass {\n    /* method return type tests */\n    public testMethodReturnType1(): string [] { return [\"\"] }\n    public testMethodReturnType2(): {} { return {} }\n    public testMethodReturnType3(): {a: A, b: B} { return {a: {m: \"\" }, b: {m1: \"\" }} }\n    public testMethodReturnType4(): [number, number] { return [1, 1] }\n    public testMethodReturnType5(): Array<A> { return [{ m: \"\" }] }\n    public testMethodReturnType6(): new () => number { throw new Error(\"\"); }\n    public testMethodReturnType7(): (() => number) { throw new Error(\"\"); }\n    public testMethodReturnType8(): (() => number) [] { throw new Error(\"\"); }\n    public testMethodReturnType9(): (() => number) | (() => string) { throw new Error(\"\"); }\n    public testMethodReturnType10(): {a: A, b: B} [] { return [{a: {m: \"\" }, b: {m1: \"\" }}] }\n    public testMethodReturnType11(): number | string { return 1 }\n    public testMethodReturnType12(): number | string [] { return }\n    public testMethodReturnType13(): [number, number] | string [] { return [\"\"] }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/* Function return type tests */\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.block.ts\n                               ^^\n                               source.ts comment.block.ts punctuation.definition.comment.ts\n>export function testFunctionReturnType1(): string [] { return [\"\"] }\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                          ^\n                                          source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                           ^\n                                           source.ts meta.function.ts meta.return.type.ts\n                                            ^^^^^^\n                                            source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.return.type.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.return.type.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.block.ts\n                                                        ^^^^^^\n                                                        source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.block.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>export function testFunctionReturnType2(): {} { return {} }\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                          ^\n                                          source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                           ^\n                                           source.ts meta.function.ts meta.return.type.ts\n                                            ^\n                                            source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                                             ^\n                                             source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                                              ^\n                                              source.ts meta.function.ts meta.return.type.ts\n                                               ^\n                                               source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                ^\n                                                source.ts meta.function.ts meta.block.ts\n                                                 ^^^^^^\n                                                 source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.block.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.block.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>export function testFunctionReturnType3(): {a: A, b: B} { return {a: {m: \"\" }, b: {m1: \"\" }} }\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                          ^\n                                          source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                           ^\n                                           source.ts meta.function.ts meta.return.type.ts\n                                            ^\n                                            source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                                             ^\n                                             source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                              ^\n                                              source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                               ^\n                                               source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                ^\n                                                source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.separator.comma.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.return.type.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.block.ts\n                                                           ^^^^^^\n                                                           source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.block.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                       ^\n                                                                       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                                        ^\n                                                                        source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                                         ^\n                                                                         source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                           ^\n                                                                           source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                            ^\n                                                                            source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                                             ^\n                                                                             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                              ^\n                                                                              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                                                                               ^\n                                                                               source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n                                                                                ^\n                                                                                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                                                 ^\n                                                                                 source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                                                  ^\n                                                                                  source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                                                                                   ^\n                                                                                   source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                                    ^^\n                                                                                    source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                                                      ^\n                                                                                      source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                                                       ^\n                                                                                       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                                                        ^\n                                                                                        source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                                         ^\n                                                                                         source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                          ^\n                                                                                          source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                                                           ^\n                                                                                           source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                                            ^\n                                                                                            source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                                             ^\n                                                                                             source.ts meta.function.ts meta.block.ts\n                                                                                              ^\n                                                                                              source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>export function testFunctionReturnType4(): [number, number] { return [1, 1] }\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                          ^\n                                          source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                           ^\n                                           source.ts meta.function.ts meta.return.type.ts\n                                            ^\n                                            source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                             ^^^^^^\n                                             source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts support.type.primitive.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts\n                                                     ^^^^^^\n                                                     source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts support.type.primitive.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.return.type.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts\n                                                               ^^^^^^\n                                                               source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.block.ts meta.array.literal.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                       ^\n                                                                       source.ts meta.function.ts meta.block.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                                                        ^\n                                                                        source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                         ^\n                                                                         source.ts meta.function.ts meta.block.ts meta.array.literal.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.block.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                                                           ^\n                                                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                            ^\n                                                                            source.ts meta.function.ts meta.block.ts\n                                                                             ^\n                                                                             source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>export function testFunctionReturnType5(): Array<A> { return [{ m: \"\" }] }\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                          ^\n                                          source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                           ^\n                                           source.ts meta.function.ts meta.return.type.ts\n                                            ^^^^^\n                                            source.ts meta.function.ts meta.return.type.ts entity.name.type.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts entity.name.type.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.return.type.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.block.ts\n                                                       ^^^^^^\n                                                       source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                                                       ^\n                                                                       source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                        ^\n                                                                        source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                         ^\n                                                                         source.ts meta.function.ts meta.block.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>export function testFunctionReturnType6(): new () => number { throw new Error(\"\"); }\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                          ^\n                                          source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                           ^\n                                           source.ts meta.function.ts meta.return.type.ts\n                                            ^^^\n                                            source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts keyword.control.new.ts\n                                               ^\n                                               source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts\n                                                ^\n                                                source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.return.type.ts\n                                                   ^^\n                                                   source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                                                      ^^^^^^\n                                                      source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts support.type.primitive.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts\n                                                               ^^^^^\n                                                               source.ts meta.function.ts meta.block.ts keyword.control.trycatch.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.block.ts\n                                                                     ^^^\n                                                                     source.ts meta.function.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                                                                        ^\n                                                                        source.ts meta.function.ts meta.block.ts new.expr.ts\n                                                                         ^^^^^\n                                                                         source.ts meta.function.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                                                                              ^\n                                                                              source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                               ^\n                                                                               source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                                ^\n                                                                                source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                 ^\n                                                                                 source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                                  ^\n                                                                                  source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n                                                                                   ^\n                                                                                   source.ts meta.function.ts meta.block.ts\n                                                                                    ^\n                                                                                    source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>export function testFunctionReturnType7(): (() => number) { throw new Error(\"\"); }\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                          ^\n                                          source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                           ^\n                                           source.ts meta.function.ts meta.return.type.ts\n                                            ^\n                                            source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                              ^\n                                              source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                               ^\n                                               source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts\n                                                ^^\n                                                source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                                   ^^^^^^\n                                                   source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts support.type.primitive.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.return.type.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.block.ts\n                                                             ^^^^^\n                                                             source.ts meta.function.ts meta.block.ts keyword.control.trycatch.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.block.ts\n                                                                   ^^^\n                                                                   source.ts meta.function.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.block.ts new.expr.ts\n                                                                       ^^^^^\n                                                                       source.ts meta.function.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                                                                            ^\n                                                                            source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                             ^\n                                                                             source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                              ^\n                                                                              source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                               ^\n                                                                               source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                                ^\n                                                                                source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n                                                                                 ^\n                                                                                 source.ts meta.function.ts meta.block.ts\n                                                                                  ^\n                                                                                  source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>export function testFunctionReturnType8(): (() => number) [] { throw new Error(\"\"); }\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                          ^\n                                          source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                           ^\n                                           source.ts meta.function.ts meta.return.type.ts\n                                            ^\n                                            source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                              ^\n                                              source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                               ^\n                                               source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts\n                                                ^^\n                                                source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                                   ^^^^^^\n                                                   source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts support.type.primitive.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.return.type.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.return.type.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.block.ts\n                                                                ^^^^^\n                                                                source.ts meta.function.ts meta.block.ts keyword.control.trycatch.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.block.ts\n                                                                      ^^^\n                                                                      source.ts meta.function.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                                                                         ^\n                                                                         source.ts meta.function.ts meta.block.ts new.expr.ts\n                                                                          ^^^^^\n                                                                          source.ts meta.function.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                                                                               ^\n                                                                               source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                                ^\n                                                                                source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                                 ^\n                                                                                 source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                  ^\n                                                                                  source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                                   ^\n                                                                                   source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n                                                                                    ^\n                                                                                    source.ts meta.function.ts meta.block.ts\n                                                                                     ^\n                                                                                     source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>export function testFunctionReturnType9(): (() => number) | (() => string) { throw new Error(\"\"); }\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                          ^\n                                          source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                           ^\n                                           source.ts meta.function.ts meta.return.type.ts\n                                            ^\n                                            source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                              ^\n                                              source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                               ^\n                                               source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts\n                                                ^^\n                                                source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                                   ^^^^^^\n                                                   source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts support.type.primitive.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.return.type.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.return.type.ts keyword.operator.type.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.return.type.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts\n                                                                 ^^\n                                                                 source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                                                    ^^^^^^\n                                                                    source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts support.type.primitive.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.return.type.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                                           ^\n                                                                           source.ts meta.function.ts meta.return.type.ts\n                                                                            ^\n                                                                            source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                                             ^\n                                                                             source.ts meta.function.ts meta.block.ts\n                                                                              ^^^^^\n                                                                              source.ts meta.function.ts meta.block.ts keyword.control.trycatch.ts\n                                                                                   ^\n                                                                                   source.ts meta.function.ts meta.block.ts\n                                                                                    ^^^\n                                                                                    source.ts meta.function.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                                                                                       ^\n                                                                                       source.ts meta.function.ts meta.block.ts new.expr.ts\n                                                                                        ^^^^^\n                                                                                        source.ts meta.function.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                                                                                             ^\n                                                                                             source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                                              ^\n                                                                                              source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                                               ^\n                                                                                               source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                                ^\n                                                                                                source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                                                 ^\n                                                                                                 source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n                                                                                                  ^\n                                                                                                  source.ts meta.function.ts meta.block.ts\n                                                                                                   ^\n                                                                                                   source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>export function testFunctionReturnType10(): {a: A, b: B} [] { return [{a: {m: \"\" }, b: {m1: \"\" }}] }\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                          ^\n                                          source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                           ^\n                                           source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                            ^\n                                            source.ts meta.function.ts meta.return.type.ts\n                                             ^\n                                             source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                                              ^\n                                              source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                               ^\n                                               source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                ^\n                                                source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.separator.comma.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.return.type.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.return.type.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts\n                                                               ^^^^^^\n                                                               source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.block.ts meta.array.literal.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                       ^\n                                                                       source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                        ^\n                                                                        source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                                         ^\n                                                                         source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                                                           ^\n                                                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                            ^\n                                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                                             ^\n                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                                              ^\n                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                                               ^\n                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                                ^\n                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                 ^\n                                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                                                  ^\n                                                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                                   ^\n                                                                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                                                                                    ^\n                                                                                    source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts\n                                                                                     ^\n                                                                                     source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                                                      ^\n                                                                                      source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                                                       ^\n                                                                                       source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                                                                        ^\n                                                                                        source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                                         ^^\n                                                                                         source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                                                           ^\n                                                                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                                                            ^\n                                                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                                                             ^\n                                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                                              ^\n                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                               ^\n                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                                                                ^\n                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                                                 ^\n                                                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                                                  ^\n                                                                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                                                   ^\n                                                                                                   source.ts meta.function.ts meta.block.ts\n                                                                                                    ^\n                                                                                                    source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>export function testFunctionReturnType11(): number | string { return 1 }\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                          ^\n                                          source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                           ^\n                                           source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                            ^\n                                            source.ts meta.function.ts meta.return.type.ts\n                                             ^^^^^^\n                                             source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.return.type.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.return.type.ts keyword.operator.type.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.return.type.ts\n                                                      ^^^^^^\n                                                      source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.return.type.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts\n                                                               ^^^^^^\n                                                               source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.block.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts\n                                                                       ^\n                                                                       source.ts meta.function.ts meta.block.ts\n                                                                        ^\n                                                                        source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>export function testFunctionReturnType12(): number | string [] { return }\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                          ^\n                                          source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                           ^\n                                           source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                            ^\n                                            source.ts meta.function.ts meta.return.type.ts\n                                             ^^^^^^\n                                             source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.return.type.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.return.type.ts keyword.operator.type.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.return.type.ts\n                                                      ^^^^^^\n                                                      source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.return.type.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.return.type.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.block.ts\n                                                                  ^^^^^^\n                                                                  source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n                                                                        ^\n                                                                        source.ts meta.function.ts meta.block.ts\n                                                                         ^\n                                                                         source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>export function testFunctionReturnType13(): [number, number] | string [] { return [\"\"] }\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                          ^\n                                          source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                           ^\n                                           source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                            ^\n                                            source.ts meta.function.ts meta.return.type.ts\n                                             ^\n                                             source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                              ^^^^^^\n                                              source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts support.type.primitive.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts\n                                                      ^^^^^^\n                                                      source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts support.type.primitive.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.return.type.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.return.type.ts keyword.operator.type.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.return.type.ts\n                                                                ^^^^^^\n                                                                source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.return.type.ts\n                                                                       ^\n                                                                       source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                        ^\n                                                                        source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                         ^\n                                                                         source.ts meta.function.ts meta.return.type.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                                           ^\n                                                                           source.ts meta.function.ts meta.block.ts\n                                                                            ^^^^^^\n                                                                            source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n                                                                                  ^\n                                                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts\n                                                                                   ^\n                                                                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                                    ^\n                                                                                    source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                                     ^\n                                                                                     source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                      ^\n                                                                                      source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                                       ^\n                                                                                       source.ts meta.function.ts meta.block.ts\n                                                                                        ^\n                                                                                        source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>class TestClass {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n                ^\n                source.ts meta.class.ts\n                 ^\n                 source.ts meta.class.ts punctuation.definition.block.ts\n>    /* method return type tests */\n ^^^^\n source.ts meta.class.ts\n     ^^\n     source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n       source.ts meta.class.ts comment.block.ts\n                                 ^^\n                                 source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n>    public testMethodReturnType1(): string [] { return [\"\"] }\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                     ^^^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                 ^^^^^^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                          ^\n                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    public testMethodReturnType2(): {} { return {} }\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                          ^^^^^^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    public testMethodReturnType3(): {a: A, b: B} { return {a: {m: \"\" }, b: {m1: \"\" }} }\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts punctuation.separator.comma.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                    ^^^^^^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n                                                          ^\n                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                              ^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                                                               ^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                ^\n                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                                 ^\n                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                                  ^\n                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                                   ^\n                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                    ^\n                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                     ^\n                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                                      ^\n                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                       ^\n                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                                                                        ^\n                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts\n                                                                         ^\n                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                                          ^\n                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                                           ^\n                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                                                                            ^\n                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                             ^^\n                                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                                               ^\n                                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                                                ^\n                                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                                                 ^\n                                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                                  ^\n                                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                   ^\n                                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                                                    ^\n                                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                                     ^\n                                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                                      ^\n                                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                                                       ^\n                                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    public testMethodReturnType4(): [number, number] { return [1, 1] }\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                      ^^^^^^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts support.type.primitive.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts\n                                              ^^^^^^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts support.type.primitive.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                        ^^^^^^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n                                                              ^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts\n                                                               ^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                ^\n                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                                                 ^\n                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                  ^\n                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts\n                                                                   ^\n                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                                                    ^\n                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                     ^\n                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                                      ^\n                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    public testMethodReturnType5(): Array<A> { return [{ m: \"\" }] }\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                     ^^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts entity.name.type.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                ^^^^^^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts\n                                                          ^\n                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                              ^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                               ^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                                                ^\n                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                 ^\n                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                  ^\n                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                                   ^\n                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    public testMethodReturnType6(): new () => number { throw new Error(\"\"); }\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                     ^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts keyword.control.new.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                            ^^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts\n                                               ^^^^^^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts support.type.primitive.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                        ^^^^^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.trycatch.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                              ^^^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                                                                 ^\n                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts\n                                                                  ^^^^^\n                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                                                                       ^\n                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                        ^\n                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                         ^\n                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                          ^\n                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                           ^\n                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n                                                                            ^\n                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                                             ^\n                                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    public testMethodReturnType7(): (() => number) { throw new Error(\"\"); }\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts\n                                         ^^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                            ^^^^^^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts support.type.primitive.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                      ^^^^^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.trycatch.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                            ^^^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                                                               ^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts\n                                                                ^^^^^\n                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                                                                     ^\n                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                      ^\n                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                       ^\n                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                        ^\n                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                         ^\n                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n                                                                          ^\n                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                                           ^\n                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    public testMethodReturnType8(): (() => number) [] { throw new Error(\"\"); }\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts\n                                         ^^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                            ^^^^^^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts support.type.primitive.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                         ^^^^^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.trycatch.ts\n                                                              ^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                               ^^^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                                                                  ^\n                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts\n                                                                   ^^^^^\n                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                                                                        ^\n                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                         ^\n                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                          ^\n                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                           ^\n                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                            ^\n                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n                                                                             ^\n                                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                                              ^\n                                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    public testMethodReturnType9(): (() => number) | (() => string) { throw new Error(\"\"); }\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts\n                                         ^^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                            ^^^^^^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts support.type.primitive.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts\n                                                          ^^\n                                                          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                                             ^^^^^^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.type.function.return.ts support.type.primitive.ts\n                                                                   ^\n                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                                    ^\n                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                                     ^\n                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                                                      ^\n                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                                       ^^^^^\n                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.trycatch.ts\n                                                                            ^\n                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                                             ^^^\n                                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                                                                                ^\n                                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts\n                                                                                 ^^^^^\n                                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                                                                                      ^\n                                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                                       ^\n                                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                                        ^\n                                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                         ^\n                                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                                          ^\n                                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n                                                                                           ^\n                                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                                                            ^\n                                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    public testMethodReturnType10(): {a: A, b: B} [] { return [{a: {m: \"\" }, b: {m1: \"\" }}] }\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts punctuation.separator.comma.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                        ^^^^^^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n                                                              ^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts\n                                                               ^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                ^\n                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                 ^\n                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                                  ^\n                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                                   ^\n                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                                                    ^\n                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                     ^\n                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                                      ^\n                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                                       ^\n                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                                        ^\n                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                         ^\n                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                          ^\n                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                                           ^\n                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                            ^\n                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                                                                             ^\n                                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts\n                                                                              ^\n                                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                                               ^\n                                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                                                ^\n                                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                                                                 ^\n                                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                                  ^^\n                                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                                                    ^\n                                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                                                     ^\n                                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                                                      ^\n                                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                                       ^\n                                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                        ^\n                                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                                                         ^\n                                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                                          ^\n                                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                                           ^\n                                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                                            ^\n                                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                                                             ^\n                                                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    public testMethodReturnType11(): number | string { return 1 }\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                      ^^^^^^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                               ^^^^^^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                        ^^^^^^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n                                                              ^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                               ^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n                                                                ^\n                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                                 ^\n                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    public testMethodReturnType12(): number | string [] { return }\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                      ^^^^^^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                               ^^^^^^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                                          ^\n                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                           ^^^^^^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n                                                                 ^\n                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                                  ^\n                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    public testMethodReturnType13(): [number, number] | string [] { return [\"\"] }\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                       ^^^^^^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts support.type.primitive.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts\n                                               ^^^^^^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts support.type.primitive.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                         ^^^^^^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                                                               ^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                                ^\n                                                                source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                 ^\n                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                  ^\n                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                                   ^\n                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                                                    ^\n                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                                     ^^^^^^\n                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n                                                                           ^\n                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts\n                                                                            ^\n                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                             ^\n                                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                              ^\n                                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                               ^\n                                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                                ^\n                                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                                                 ^\n                                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue10.baseline.txt",
    "content": "original file\n-----------------------------------\nenum Hello {\n    A,\n    B\n}\n\nclass World {\n    normal() {\n        let x = 5;\n        console.log(\"hello\");\n    }\n\n    [Hello.A]() {\n        let x = 5;\n        console.log(\"hello\");\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>enum Hello {\n ^^^^\n source.ts meta.enum.declaration.ts storage.type.enum.ts\n     ^\n     source.ts meta.enum.declaration.ts\n      ^^^^^\n      source.ts meta.enum.declaration.ts entity.name.type.enum.ts\n           ^\n           source.ts meta.enum.declaration.ts\n            ^\n            source.ts meta.enum.declaration.ts punctuation.definition.block.ts\n>    A,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n      ^\n      source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    B\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n>}\n ^\n source.ts meta.enum.declaration.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>class World {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n            ^\n            source.ts meta.class.ts\n             ^\n             source.ts meta.class.ts punctuation.definition.block.ts\n>    normal() {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        let x = 5;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>        console.log(\"hello\");\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts support.class.console.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                      ^^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>    [Hello.A]() {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n      ^^^^^\n      source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.object.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts punctuation.accessor.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.constant.property.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        let x = 5;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>        console.log(\"hello\");\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts support.class.console.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                      ^^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue1006.baseline.txt",
    "content": "original file\n-----------------------------------\nconst a = /.*/v;\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const a = /.*/v;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts string.regexp.ts\n           ^\n           source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n            ^\n            source.ts meta.var.expr.ts string.regexp.ts constant.other.character-class.regexp\n             ^\n             source.ts meta.var.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n              ^\n              source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n               ^\n               source.ts meta.var.expr.ts string.regexp.ts keyword.other.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue11.baseline.txt",
    "content": "original file\n-----------------------------------\nfor (var i=0; i<10; i++) {\n    var x = 1;\n    var p = \"\";\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>for (var i=0; i<10; i++) {\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^\n      source.ts meta.var.expr.ts storage.type.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts constant.numeric.decimal.ts\n             ^\n             source.ts punctuation.terminator.statement.ts\n              ^\n              source.ts\n               ^\n               source.ts variable.other.readwrite.ts\n                ^\n                source.ts keyword.operator.relational.ts\n                 ^^\n                 source.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n                    ^\n                    source.ts\n                     ^\n                     source.ts variable.other.readwrite.ts\n                      ^^\n                      source.ts keyword.operator.increment.ts\n                        ^\n                        source.ts meta.brace.round.ts\n                         ^\n                         source.ts\n                          ^\n                          source.ts meta.block.ts punctuation.definition.block.ts\n>    var x = 1;\n ^^^^\n source.ts meta.block.ts\n     ^^^\n     source.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.block.ts meta.var.expr.ts\n         ^\n         source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.block.ts meta.var.expr.ts\n             ^\n             source.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n              ^\n              source.ts meta.block.ts punctuation.terminator.statement.ts\n>    var p = \"\";\n ^^^^\n source.ts meta.block.ts\n     ^^^\n     source.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.block.ts meta.var.expr.ts\n         ^\n         source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.block.ts meta.var.expr.ts\n             ^\n             source.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n              ^\n              source.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n               ^\n               source.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue110.baseline.txt",
    "content": "original file\n-----------------------------------\nlet number1 = 0x100   \nlet number2 = 14e15\nlet number3 = 10.42e41.5 \nlet number4 = 4\nlet number5 = 51.4\nlet number6 = 12.4E10.2\nlet number7 = 14.6e+10\nlet number8 = 12E4\nlet number9 = 10e10\nlet number10 = 14e14.5\nlet number11 = 12E-10\nlet number12 = 13.4e-14.2\nlet number13 = 14.12\nlet number14 = 10.2E+4\nlet number6 = 5.00567789e+2\nlet i = 1, j = 1e3\n\n/*\n\n  Testing comments\n*/\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let number1 = 0x100   \n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^^^^\n               source.ts meta.var.expr.ts constant.numeric.hex.ts\n                    ^^^\n                    source.ts meta.var.expr.ts\n>let number2 = 14e15\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^^^^\n               source.ts meta.var.expr.ts constant.numeric.decimal.ts\n>let number3 = 10.42e41.5 \n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^\n               source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.var.expr.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n                  ^^^^^\n                  source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                       ^\n                       source.ts meta.var.expr.ts punctuation.accessor.ts\n                        ^\n                        source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                         ^\n                         source.ts meta.var.expr.ts\n>let number4 = 4\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts constant.numeric.decimal.ts\n>let number5 = 51.4\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^\n               source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.var.expr.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n                  ^\n                  source.ts meta.var.expr.ts constant.numeric.decimal.ts\n>let number6 = 12.4E10.2\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^\n               source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.var.expr.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n                  ^^^^\n                  source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                      ^\n                      source.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^\n                       source.ts meta.var.expr.ts constant.numeric.decimal.ts\n>let number7 = 14.6e+10\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^\n               source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.var.expr.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n                  ^^^^^\n                  source.ts meta.var.expr.ts constant.numeric.decimal.ts\n>let number8 = 12E4\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^^^\n               source.ts meta.var.expr.ts constant.numeric.decimal.ts\n>let number9 = 10e10\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^^^^\n               source.ts meta.var.expr.ts constant.numeric.decimal.ts\n>let number10 = 14e14.5\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^^^^^\n                source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                     ^\n                     source.ts meta.var.expr.ts punctuation.accessor.ts\n                      ^\n                      source.ts meta.var.expr.ts constant.numeric.decimal.ts\n>let number11 = 12E-10\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^^^^^^\n                source.ts meta.var.expr.ts constant.numeric.decimal.ts\n>let number12 = 13.4e-14.2\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^^\n                source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.var.expr.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n                   ^^^^^\n                   source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                        ^\n                        source.ts meta.var.expr.ts punctuation.accessor.ts\n                         ^\n                         source.ts meta.var.expr.ts constant.numeric.decimal.ts\n>let number13 = 14.12\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^^\n                source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.var.expr.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n                   ^^\n                   source.ts meta.var.expr.ts constant.numeric.decimal.ts\n>let number14 = 10.2E+4\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^^\n                source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.var.expr.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n                   ^^^^\n                   source.ts meta.var.expr.ts constant.numeric.decimal.ts\n>let number6 = 5.00567789e+2\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                ^\n                source.ts meta.var.expr.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n                 ^^^^^^^^^^^\n                 source.ts meta.var.expr.ts constant.numeric.decimal.ts\n>let i = 1, j = 1e3\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts constant.numeric.decimal.ts\n          ^\n          source.ts meta.var.expr.ts punctuation.separator.comma.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^^^\n                source.ts meta.var.expr.ts constant.numeric.decimal.ts\n>\n ^\n source.ts\n>/*\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n>\n ^\n source.ts comment.block.ts\n>  Testing comments\n ^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.ts\n>*/\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts"
  },
  {
    "path": "tests/baselines/Issue112.baseline.txt",
    "content": "original file\n-----------------------------------\nreturn new vscode.Variable(property.name, displayValue, variablesReference);\nangular.module('app')\nthis._connections.delete(connection.id);\nthis._waitingConnections.delete(connection);\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>return new vscode.Variable(property.name, displayValue, variablesReference);\n ^^^^^^\n source.ts keyword.control.flow.ts\n       ^\n       source.ts\n        ^^^\n        source.ts new.expr.ts keyword.operator.new.ts\n           ^\n           source.ts new.expr.ts\n            ^^^^^^\n            source.ts new.expr.ts meta.function-call.ts variable.other.object.ts\n                  ^\n                  source.ts new.expr.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^^^\n                   source.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                           ^\n                           source.ts new.expr.ts meta.brace.round.ts\n                            ^^^^^^^^\n                            source.ts new.expr.ts variable.other.object.ts\n                                    ^\n                                    source.ts new.expr.ts punctuation.accessor.ts\n                                     ^^^^\n                                     source.ts new.expr.ts support.variable.property.dom.ts\n                                         ^\n                                         source.ts new.expr.ts punctuation.separator.comma.ts\n                                          ^\n                                          source.ts new.expr.ts\n                                           ^^^^^^^^^^^^\n                                           source.ts new.expr.ts variable.other.readwrite.ts\n                                                       ^\n                                                       source.ts new.expr.ts punctuation.separator.comma.ts\n                                                        ^\n                                                        source.ts new.expr.ts\n                                                         ^^^^^^^^^^^^^^^^^^\n                                                         source.ts new.expr.ts variable.other.readwrite.ts\n                                                                           ^\n                                                                           source.ts new.expr.ts meta.brace.round.ts\n                                                                            ^\n                                                                            source.ts punctuation.terminator.statement.ts\n>angular.module('app')\n ^^^^^^^\n source.ts meta.function-call.ts variable.other.object.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^^^^\n         source.ts meta.function-call.ts entity.name.function.ts\n               ^\n               source.ts meta.brace.round.ts\n                ^\n                source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                 ^^^\n                 source.ts string.quoted.single.ts\n                    ^\n                    source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                     ^\n                     source.ts meta.brace.round.ts\n>this._connections.delete(connection.id);\n ^^^^\n source.ts meta.function-call.ts variable.language.this.ts\n     ^\n     source.ts meta.function-call.ts punctuation.accessor.ts\n      ^^^^^^^^^^^^\n      source.ts meta.function-call.ts variable.other.object.property.ts\n                  ^\n                  source.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.function-call.ts support.function.dom.ts\n                         ^\n                         source.ts meta.brace.round.ts\n                          ^^^^^^^^^^\n                          source.ts variable.other.object.ts\n                                    ^\n                                    source.ts punctuation.accessor.ts\n                                     ^^\n                                     source.ts support.variable.property.dom.ts\n                                       ^\n                                       source.ts meta.brace.round.ts\n                                        ^\n                                        source.ts punctuation.terminator.statement.ts\n>this._waitingConnections.delete(connection);\n ^^^^\n source.ts meta.function-call.ts variable.language.this.ts\n     ^\n     source.ts meta.function-call.ts punctuation.accessor.ts\n      ^^^^^^^^^^^^^^^^^^^\n      source.ts meta.function-call.ts variable.other.object.property.ts\n                         ^\n                         source.ts meta.function-call.ts punctuation.accessor.ts\n                          ^^^^^^\n                          source.ts meta.function-call.ts support.function.dom.ts\n                                ^\n                                source.ts meta.brace.round.ts\n                                 ^^^^^^^^^^\n                                 source.ts variable.other.readwrite.ts\n                                           ^\n                                           source.ts meta.brace.round.ts\n                                            ^\n                                            source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue114.baseline.txt",
    "content": "original file\n-----------------------------------\nexport type BreakpointType = 'line' | 'call' | 'return' | 'exception' | 'conditional' | 'watch'\ninterface Test {\n  type: 'line' | 'call' | 'return';\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export type BreakpointType = 'line' | 'call' | 'return' | 'exception' | 'conditional' | 'watch'\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^^^^^^^^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                           ^\n                           source.ts meta.type.declaration.ts\n                            ^\n                            source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                             ^\n                             source.ts meta.type.declaration.ts\n                              ^\n                              source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                               ^^^^\n                               source.ts meta.type.declaration.ts string.quoted.single.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts keyword.operator.type.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                        ^^^^\n                                        source.ts meta.type.declaration.ts string.quoted.single.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts keyword.operator.type.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                 ^^^^^^\n                                                 source.ts meta.type.declaration.ts string.quoted.single.ts\n                                                       ^\n                                                       source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                        ^\n                                                        source.ts meta.type.declaration.ts\n                                                         ^\n                                                         source.ts meta.type.declaration.ts keyword.operator.type.ts\n                                                          ^\n                                                          source.ts meta.type.declaration.ts\n                                                           ^\n                                                           source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                            ^^^^^^^^^\n                                                            source.ts meta.type.declaration.ts string.quoted.single.ts\n                                                                     ^\n                                                                     source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                      ^\n                                                                      source.ts meta.type.declaration.ts\n                                                                       ^\n                                                                       source.ts meta.type.declaration.ts keyword.operator.type.ts\n                                                                        ^\n                                                                        source.ts meta.type.declaration.ts\n                                                                         ^\n                                                                         source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                                          ^^^^^^^^^^^\n                                                                          source.ts meta.type.declaration.ts string.quoted.single.ts\n                                                                                     ^\n                                                                                     source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                                      ^\n                                                                                      source.ts meta.type.declaration.ts\n                                                                                       ^\n                                                                                       source.ts meta.type.declaration.ts keyword.operator.type.ts\n                                                                                        ^\n                                                                                        source.ts meta.type.declaration.ts\n                                                                                         ^\n                                                                                         source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                                                          ^^^^^\n                                                                                          source.ts meta.type.declaration.ts string.quoted.single.ts\n                                                                                               ^\n                                                                                               source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>interface Test {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n               ^\n               source.ts meta.interface.ts\n                ^\n                source.ts meta.interface.ts punctuation.definition.block.ts\n>  type: 'line' | 'call' | 'return';\n ^^\n source.ts meta.interface.ts meta.field.declaration.ts\n   ^^^^\n   source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n       ^\n       source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n         ^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n          ^^^^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts string.quoted.single.ts\n              ^\n              source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.end.ts\n               ^\n               source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                ^\n                source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.ts\n                 ^\n                 source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                  ^\n                  source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                   ^^^^\n                   source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts string.quoted.single.ts\n                       ^\n                       source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                         ^\n                         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.ts\n                          ^\n                          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                           ^\n                           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                            ^^^^^^\n                            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts string.quoted.single.ts\n                                  ^\n                                  source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                   ^\n                                   source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue115.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Foo {\n    bar(a: Foo, b: string) { }\n}\n\nfunction foo(a: Foo, b: string) { }\n\nconst bar = function (a: Foo, b: string) { }\n\nconst baz = (a: Foo, b: string) => { };\n\nconst qux = {\n    bar(a: Foo, b: string) { },\n    set bar2(x: string) { }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Foo {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^\n          source.ts meta.class.ts\n           ^\n           source.ts meta.class.ts punctuation.definition.block.ts\n>    bar(a: Foo, b: string) { }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n            ^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                    ^^^^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>function foo(a: Foo, b: string) { }\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                 ^^^\n                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                         ^^^^^^\n                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                ^\n                                source.ts meta.function.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>const bar = function (a: Foo, b: string) { }\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^^^^^^^^\n             source.ts meta.var.expr.ts meta.function.expression.ts storage.type.function.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.function.expression.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts\n                          ^^^\n                          source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.separator.parameter.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts\n                                  ^^^^^^\n                                  source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.function.expression.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>const baz = (a: Foo, b: string) => { };\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                 ^^^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                         ^^^^^^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.arrow.ts\n                                 ^^\n                                 source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.arrow.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                                       ^\n                                       source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>const qux = {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    bar(a: Foo, b: string) { },\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n            ^^^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                    ^^^^^^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>    set bar2(x: string) { }\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts storage.type.property.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n         ^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                 ^^^^^^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue119.baseline.txt",
    "content": "original file\n-----------------------------------\nclass x {\n    public SomeMethod() {\n    }\n    public OtherMethod() { }\n\n    public SomeMethod = () => { }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class x {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>    public SomeMethod() {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    public OtherMethod() { }\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>    public SomeMethod = () => { }\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^^^^^^^^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                            ^^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts storage.type.function.arrow.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue124.baseline.txt",
    "content": "original file\n-----------------------------------\n/*\n\tSolving Issue #124, #80, #81\n\tAdding capability of ternary strings.\n*/\n\nlet a = true ? true : true;  \nlet b = true ? true : `this is ${} highlighted`\nlet c = true ? `hello` : `this ${DEPENDENCY_SEPARATOR}${moduleName} is highlighted`;\n\nvar newVar = a ? (b == `hello`) : true;\n\nvar debArch = arch === 'x64' ? 'amd64' : 'i386';\n\n/*\n\tComment\n*/\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/*\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n>\tSolving Issue #124, #80, #81\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.ts\n>\tAdding capability of ternary strings.\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.ts\n>*/\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n>\n ^\n source.ts\n>let a = true ? true : true;  \n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^\n         source.ts meta.var.expr.ts constant.language.boolean.true.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.ternary.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^^^^\n                source.ts meta.var.expr.ts constant.language.boolean.true.ts\n                    ^\n                    source.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.var.expr.ts keyword.operator.ternary.ts\n                      ^\n                      source.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.var.expr.ts constant.language.boolean.true.ts\n                           ^\n                           source.ts punctuation.terminator.statement.ts\n                            ^^^\n                            source.ts\n>let b = true ? true : `this is ${} highlighted`\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^\n         source.ts meta.var.expr.ts constant.language.boolean.true.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.ternary.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^^^^\n                source.ts meta.var.expr.ts constant.language.boolean.true.ts\n                    ^\n                    source.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.var.expr.ts keyword.operator.ternary.ts\n                      ^\n                      source.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts\n                        ^^^^^^^^\n                        source.ts meta.var.expr.ts string.template.ts\n                                ^^\n                                source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                  ^\n                                  source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                   ^^^^^^^^^^^^\n                                   source.ts meta.var.expr.ts string.template.ts\n                                               ^\n                                               source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts\n>let c = true ? `hello` : `this ${DEPENDENCY_SEPARATOR}${moduleName} is highlighted`;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^\n         source.ts meta.var.expr.ts constant.language.boolean.true.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.ternary.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^\n                source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts\n                 ^^^^^\n                 source.ts meta.var.expr.ts string.template.ts\n                      ^\n                      source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts\n                       ^\n                       source.ts meta.var.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts keyword.operator.ternary.ts\n                         ^\n                         source.ts meta.var.expr.ts\n                          ^\n                          source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts\n                           ^^^^^\n                           source.ts meta.var.expr.ts string.template.ts\n                                ^^\n                                source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                  ^^^^^^^^^^^^^^^^^^^^\n                                  source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.constant.ts\n                                                      ^\n                                                      source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                       ^^\n                                                       source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                         ^^^^^^^^^^\n                                                         source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                                                   ^\n                                                                   source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                    ^^^^^^^^^^^^^^^\n                                                                    source.ts meta.var.expr.ts string.template.ts\n                                                                                   ^\n                                                                                   source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                                                    ^\n                                                                                    source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>var newVar = a ? (b == `hello`) : true;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.ternary.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.var.expr.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.var.expr.ts\n                     ^^\n                     source.ts meta.var.expr.ts keyword.operator.comparison.ts\n                       ^\n                       source.ts meta.var.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts\n                         ^^^^^\n                         source.ts meta.var.expr.ts string.template.ts\n                              ^\n                              source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.var.expr.ts\n                                 ^\n                                 source.ts meta.var.expr.ts keyword.operator.ternary.ts\n                                  ^\n                                  source.ts meta.var.expr.ts\n                                   ^^^^\n                                   source.ts meta.var.expr.ts constant.language.boolean.true.ts\n                                       ^\n                                       source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>var debArch = arch === 'x64' ? 'amd64' : 'i386';\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^^^\n               source.ts meta.var.expr.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.var.expr.ts\n                    ^^^\n                    source.ts meta.var.expr.ts keyword.operator.comparison.ts\n                       ^\n                       source.ts meta.var.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                         ^^^\n                         source.ts meta.var.expr.ts string.quoted.single.ts\n                            ^\n                            source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                             ^\n                             source.ts meta.var.expr.ts\n                              ^\n                              source.ts meta.var.expr.ts keyword.operator.ternary.ts\n                               ^\n                               source.ts meta.var.expr.ts\n                                ^\n                                source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                 ^^^^^\n                                 source.ts meta.var.expr.ts string.quoted.single.ts\n                                      ^\n                                      source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                       ^\n                                       source.ts meta.var.expr.ts\n                                        ^\n                                        source.ts meta.var.expr.ts keyword.operator.ternary.ts\n                                         ^\n                                         source.ts meta.var.expr.ts\n                                          ^\n                                          source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                           ^^^^\n                                           source.ts meta.var.expr.ts string.quoted.single.ts\n                                               ^\n                                               source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                ^\n                                                source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>/*\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n>\tComment\n ^^^^^^^^^\n source.ts comment.block.ts\n>*/\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts"
  },
  {
    "path": "tests/baselines/Issue131.baseline.txt",
    "content": "original file\n-----------------------------------\nfoo.namespace\nfoo.any\nvar number, string;\nnumber\nstring\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>foo.namespace\n ^^^\n source.ts variable.other.object.ts\n    ^\n    source.ts punctuation.accessor.ts\n     ^^^^^^^^^\n     source.ts variable.other.property.ts\n>foo.any\n ^^^\n source.ts variable.other.object.ts\n    ^\n    source.ts punctuation.accessor.ts\n     ^^^\n     source.ts variable.other.property.ts\n>var number, string;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts punctuation.separator.comma.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>number\n ^^^^^^\n source.ts variable.other.readwrite.ts\n>string\n ^^^^^^\n source.ts variable.other.readwrite.ts"
  },
  {
    "path": "tests/baselines/Issue133.baseline.txt",
    "content": "original file\n-----------------------------------\ninterface I {\n  $fieldName: string;\n  $getFieldViewCtrl: () => FieldView;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>interface I {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^\n             source.ts meta.interface.ts punctuation.definition.block.ts\n>  $fieldName: string;\n ^^\n source.ts meta.interface.ts meta.field.declaration.ts\n   ^^^^^^^^^^\n   source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n             ^\n             source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n               ^^^^^^\n               source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.interface.ts punctuation.terminator.statement.ts\n>  $getFieldViewCtrl: () => FieldView;\n ^^\n source.ts meta.interface.ts meta.field.declaration.ts\n   ^^^^^^^^^^^^^^^^^\n   source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n                    ^\n                    source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                     ^\n                     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                      ^\n                      source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                       ^\n                       source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                        ^\n                        source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                         ^^\n                         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                           ^\n                           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts\n                            ^^^^^^^^^\n                            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts entity.name.type.ts\n                                     ^\n                                     source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue135.baseline.txt",
    "content": "original file\n-----------------------------------\nimport http = require('http');\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>import http = require('http');\n ^^^^^^\n source.ts meta.import-equals.external.ts keyword.control.import.ts\n       ^\n       source.ts meta.import-equals.external.ts\n        ^^^^\n        source.ts meta.import-equals.external.ts variable.other.readwrite.alias.ts\n            ^\n            source.ts meta.import-equals.external.ts\n             ^\n             source.ts meta.import-equals.external.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.import-equals.external.ts\n               ^^^^^^^\n               source.ts meta.import-equals.external.ts keyword.control.require.ts\n                      ^\n                      source.ts meta.import-equals.external.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.import-equals.external.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                        ^^^^\n                        source.ts meta.import-equals.external.ts string.quoted.single.ts\n                            ^\n                            source.ts meta.import-equals.external.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                             ^\n                             source.ts meta.import-equals.external.ts meta.brace.round.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue139.baseline.txt",
    "content": "original file\n-----------------------------------\nnew new Proxy(function fn() {\n    console.log(this.constructor.name);\n}, {});\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>new new Proxy(function fn() {\n ^^^\n source.ts new.expr.ts keyword.operator.new.ts\n    ^\n    source.ts new.expr.ts\n     ^^^\n     source.ts new.expr.ts keyword.operator.new.ts\n        ^\n        source.ts new.expr.ts\n         ^^^^^\n         source.ts new.expr.ts meta.function-call.ts support.class.builtin.ts\n              ^\n              source.ts new.expr.ts meta.brace.round.ts\n               ^^^^^^^^\n               source.ts new.expr.ts meta.function.expression.ts storage.type.function.ts\n                       ^\n                       source.ts new.expr.ts meta.function.expression.ts\n                        ^^\n                        source.ts new.expr.ts meta.function.expression.ts meta.definition.function.ts entity.name.function.ts\n                          ^\n                          source.ts new.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                           ^\n                           source.ts new.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                            ^\n                            source.ts new.expr.ts meta.function.expression.ts\n                             ^\n                             source.ts new.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>    console.log(this.constructor.name);\n ^^^^\n source.ts new.expr.ts meta.function.expression.ts meta.block.ts\n     ^^^^^^^\n     source.ts new.expr.ts meta.function.expression.ts meta.block.ts meta.function-call.ts support.class.console.ts\n            ^\n            source.ts new.expr.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n             ^^^\n             source.ts new.expr.ts meta.function.expression.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                ^\n                source.ts new.expr.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                 ^^^^\n                 source.ts new.expr.ts meta.function.expression.ts meta.block.ts variable.language.this.ts\n                     ^\n                     source.ts new.expr.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                      ^^^^^^^^^^^\n                      source.ts new.expr.ts meta.function.expression.ts meta.block.ts support.variable.property.ts\n                                 ^\n                                 source.ts new.expr.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                  ^^^^\n                                  source.ts new.expr.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                      ^\n                                      source.ts new.expr.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                       ^\n                                       source.ts new.expr.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>}, {});\n ^\n source.ts new.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts new.expr.ts punctuation.separator.comma.ts\n   ^\n   source.ts new.expr.ts\n    ^\n    source.ts new.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n     ^\n     source.ts new.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts new.expr.ts meta.brace.round.ts\n       ^\n       source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue142.baseline.txt",
    "content": "original file\n-----------------------------------\nclass x {\n  abc = () =>\n    this.func(this.arr.concat(['one 1', 'two 2', 'three 3']));\n}\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class x {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>  abc = () =>\n ^^\n source.ts meta.class.ts meta.field.declaration.ts\n   ^^^\n   source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n      ^\n      source.ts meta.class.ts meta.field.declaration.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n            ^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts storage.type.function.arrow.ts\n>    this.func(this.arr.concat(['one 1', 'two 2', 'three 3']));\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n     ^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n          ^^^^\n          source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.property.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts support.function.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                 ^^^^^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.single.ts\n                                      ^\n                                      source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                       ^\n                                       source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                        ^\n                                        source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                                         ^\n                                         source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                          ^^^^^\n                                          source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.single.ts\n                                               ^\n                                               source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                ^\n                                                source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                   ^^^^^^^\n                                                   source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.single.ts\n                                                          ^\n                                                          source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                                              ^\n                                                              source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue143.baseline.txt",
    "content": "original file\n-----------------------------------\nimport {Component, HostListener, Directive} from 'angular2/core';\n\n@Directive({selector: 'button[counting]'})\nclass CountClicks {\n  numberOfClicks = 0;\n  @HostListener('click', ['$event.target']) onClick(btn) {\n    console.log(\"button\", btn, \"number of clicks:\", this.numberOfClicks++);\n  }\n}\n@Component({\n  selector: 'my-app',\n  template: `<button counting>Increment</button>`,\n  directives: [CountClicks]\n})\nexport class AppComponent {\n  constructor() { console.clear(); }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>import {Component, HostListener, Directive} from 'angular2/core';\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n         ^^^^^^^^^\n         source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                  ^\n                  source.ts meta.import.ts meta.block.ts punctuation.separator.comma.ts\n                   ^\n                   source.ts meta.import.ts meta.block.ts\n                    ^^^^^^^^^^^^\n                    source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                                ^\n                                source.ts meta.import.ts meta.block.ts punctuation.separator.comma.ts\n                                 ^\n                                 source.ts meta.import.ts meta.block.ts\n                                  ^^^^^^^^^\n                                  source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                                           ^\n                                           source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                                            ^\n                                            source.ts meta.import.ts\n                                             ^^^^\n                                             source.ts meta.import.ts keyword.control.from.ts\n                                                 ^\n                                                 source.ts meta.import.ts\n                                                  ^\n                                                  source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                   ^^^^^^^^^^^^^\n                                                   source.ts meta.import.ts string.quoted.single.ts\n                                                                ^\n                                                                source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                 ^\n                                                                 source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>@Directive({selector: 'button[counting]'})\n ^\n source.ts meta.decorator.ts punctuation.decorator.ts\n  ^^^^^^^^^\n  source.ts meta.decorator.ts meta.function-call.ts entity.name.function.ts\n           ^\n           source.ts meta.decorator.ts meta.brace.round.ts\n            ^\n            source.ts meta.decorator.ts meta.objectliteral.ts punctuation.definition.block.ts\n             ^^^^^^^^\n             source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                     ^\n                     source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                      ^\n                      source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts\n                       ^\n                       source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                        ^^^^^^^^^^^^^^^^\n                        source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n                                        ^\n                                        source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                         ^\n                                         source.ts meta.decorator.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                          ^\n                                          source.ts meta.decorator.ts meta.brace.round.ts\n>class CountClicks {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n                  ^\n                  source.ts meta.class.ts\n                   ^\n                   source.ts meta.class.ts punctuation.definition.block.ts\n>  numberOfClicks = 0;\n ^^\n source.ts meta.class.ts meta.field.declaration.ts\n   ^^^^^^^^^^^^^^\n   source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                     ^\n                     source.ts meta.class.ts punctuation.terminator.statement.ts\n>  @HostListener('click', ['$event.target']) onClick(btn) {\n ^^\n source.ts meta.class.ts\n   ^\n   source.ts meta.class.ts meta.decorator.ts punctuation.decorator.ts\n    ^^^^^^^^^^^^\n    source.ts meta.class.ts meta.decorator.ts meta.function-call.ts entity.name.function.ts\n                ^\n                source.ts meta.class.ts meta.decorator.ts meta.brace.round.ts\n                 ^\n                 source.ts meta.class.ts meta.decorator.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                  ^^^^^\n                  source.ts meta.class.ts meta.decorator.ts string.quoted.single.ts\n                       ^\n                       source.ts meta.class.ts meta.decorator.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts meta.class.ts meta.decorator.ts punctuation.separator.comma.ts\n                         ^\n                         source.ts meta.class.ts meta.decorator.ts meta.array.literal.ts\n                          ^\n                          source.ts meta.class.ts meta.decorator.ts meta.array.literal.ts meta.brace.square.ts\n                           ^\n                           source.ts meta.class.ts meta.decorator.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                            ^^^^^^^^^^^^^\n                            source.ts meta.class.ts meta.decorator.ts meta.array.literal.ts string.quoted.single.ts\n                                         ^\n                                         source.ts meta.class.ts meta.decorator.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                          ^\n                                          source.ts meta.class.ts meta.decorator.ts meta.array.literal.ts meta.brace.square.ts\n                                           ^\n                                           source.ts meta.class.ts meta.decorator.ts meta.brace.round.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts\n                                             ^^^^^^^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                     ^^^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.method.declaration.ts\n                                                          ^\n                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    console.log(\"button\", btn, \"number of clicks:\", this.numberOfClicks++);\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts support.class.console.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n             ^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                  ^^^^^^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.separator.comma.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                           ^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.separator.comma.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                 ^^^^^^^^^^^^^^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.separator.comma.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                     ^^^^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n                                                          ^^^^^^^^^^^^^^\n                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts\n                                                                        ^^\n                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.increment.ts\n                                                                          ^\n                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                                                           ^\n                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>  }\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>@Component({\n ^\n source.ts meta.decorator.ts punctuation.decorator.ts\n  ^^^^^^^^^\n  source.ts meta.decorator.ts meta.function-call.ts entity.name.function.ts\n           ^\n           source.ts meta.decorator.ts meta.brace.round.ts\n            ^\n            source.ts meta.decorator.ts meta.objectliteral.ts punctuation.definition.block.ts\n>  selector: 'my-app',\n ^^\n source.ts meta.decorator.ts meta.objectliteral.ts\n   ^^^^^^^^\n   source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n           ^\n           source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n            ^\n            source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts\n             ^\n             source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n              ^^^^^^\n              source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n                    ^\n                    source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                     ^\n                     source.ts meta.decorator.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>  template: `<button counting>Increment</button>`,\n ^^\n source.ts meta.decorator.ts meta.objectliteral.ts\n   ^^^^^^^^\n   source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n           ^\n           source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n            ^\n            source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts\n             ^\n             source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts string.template.ts punctuation.definition.string.template.begin.ts\n              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n              source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts string.template.ts\n                                                 ^\n                                                 source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                  ^\n                                                  source.ts meta.decorator.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>  directives: [CountClicks]\n ^^\n source.ts meta.decorator.ts meta.objectliteral.ts\n   ^^^^^^^^^^\n   source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n             ^\n             source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n              ^\n              source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts\n               ^\n               source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.brace.square.ts\n                ^^^^^^^^^^^\n                source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts variable.other.readwrite.ts\n                           ^\n                           source.ts meta.decorator.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.brace.square.ts\n>})\n ^\n source.ts meta.decorator.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.decorator.ts meta.brace.round.ts\n>export class AppComponent {\n ^^^^^^\n source.ts meta.class.ts keyword.control.export.ts\n       ^\n       source.ts meta.class.ts\n        ^^^^^\n        source.ts meta.class.ts storage.type.class.ts\n             ^\n             source.ts meta.class.ts\n              ^^^^^^^^^^^^\n              source.ts meta.class.ts entity.name.type.class.ts\n                          ^\n                          source.ts meta.class.ts\n                           ^\n                           source.ts meta.class.ts punctuation.definition.block.ts\n>  constructor() { console.clear(); }\n ^^\n source.ts meta.class.ts meta.method.declaration.ts\n   ^^^^^^^^^^^\n   source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                   ^^^^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts support.class.console.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue146.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction foo() {\n    return 'bar';\n}\n\nfunction* foo() {\n    yield 'bar';\n    yield* ['bar'];\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function foo() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.function.ts\n                ^\n                source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    return 'bar';\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^\n            source.ts meta.function.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n             ^^^\n             source.ts meta.function.ts meta.block.ts string.quoted.single.ts\n                ^\n                source.ts meta.function.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>function* foo() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts keyword.generator.asterisk.ts\n          ^\n          source.ts meta.function.ts\n           ^^^\n           source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.function.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    yield 'bar';\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n          ^\n          source.ts meta.function.ts meta.block.ts\n           ^\n           source.ts meta.function.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n            ^^^\n            source.ts meta.function.ts meta.block.ts string.quoted.single.ts\n               ^\n               source.ts meta.function.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                ^\n                source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>    yield* ['bar'];\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n          ^\n          source.ts meta.function.ts meta.block.ts keyword.generator.asterisk.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.array.literal.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n              ^^^\n              source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.single.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue148.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Test {\n    constructor(\n        @inject private test: string,\n        @inject(\"test\") private test2: string,\n        @inject(\"test\") test3: string,\n        public test4: string\n    ) { }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Test {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n           ^\n           source.ts meta.class.ts\n            ^\n            source.ts meta.class.ts punctuation.definition.block.ts\n>    constructor(\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n>        @inject private test: string,\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.decorator.ts punctuation.decorator.ts\n          ^^^^^^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.decorator.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                 ^^^^^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts storage.modifier.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                         ^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                               ^^^^^^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n>        @inject(\"test\") private test2: string,\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.decorator.ts punctuation.decorator.ts\n          ^^^^^^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.decorator.ts meta.function-call.ts entity.name.function.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.decorator.ts meta.brace.round.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.decorator.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                  ^^^^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.decorator.ts string.quoted.double.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.decorator.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.decorator.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                         ^^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts storage.modifier.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                 ^^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                        ^^^^^^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n>        @inject(\"test\") test3: string,\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.decorator.ts punctuation.decorator.ts\n          ^^^^^^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.decorator.ts meta.function-call.ts entity.name.function.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.decorator.ts meta.brace.round.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.decorator.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                  ^^^^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.decorator.ts string.quoted.double.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.decorator.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.decorator.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                         ^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                ^^^^^^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n>        public test4: string\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts storage.modifier.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                ^^^^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                       ^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n>    ) { }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue149.baseline.txt",
    "content": "original file\n-----------------------------------\nexport function fn(s: string): new() => View\nexport function fn(s: string)\nexport function fn(n: number)\nexport function fn(s: any) {\n    return \"\";\n}\n\nexport function fn(s: string): new () => View;\nexport function fn(s: string);\nexport function fn(n: number);\nexport function fn(s: any) {\n    return \"\";\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export function fn(s: string): new() => View\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                       ^^^^^^\n                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                              ^\n                              source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.function.ts meta.return.type.ts\n                                ^^^\n                                source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts keyword.control.new.ts\n                                   ^\n                                   source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                    ^\n                                    source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                     ^\n                                     source.ts meta.function.ts meta.return.type.ts\n                                      ^^\n                                      source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                        ^\n                                        source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                                         ^^^^\n                                         source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts entity.name.type.ts\n>export function fn(s: string)\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                       ^^^^^^\n                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>export function fn(n: number)\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                       ^^^^^^\n                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>export function fn(s: any) {\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                       ^^^\n                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                           ^\n                           source.ts meta.function.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    return \"\";\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^\n            source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n             ^\n             source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n              ^\n              source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>export function fn(s: string): new () => View;\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                       ^^^^^^\n                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                              ^\n                              source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.function.ts meta.return.type.ts\n                                ^^^\n                                source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts keyword.control.new.ts\n                                   ^\n                                   source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts\n                                    ^\n                                    source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                     ^\n                                     source.ts meta.function.ts meta.return.type.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                      ^\n                                      source.ts meta.function.ts meta.return.type.ts\n                                       ^^\n                                       source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                         ^\n                                         source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                                          ^^^^\n                                          source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts entity.name.type.ts\n                                              ^\n                                              source.ts punctuation.terminator.statement.ts\n>export function fn(s: string);\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                       ^^^^^^\n                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts\n>export function fn(n: number);\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                       ^^^^^^\n                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts\n>export function fn(s: any) {\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                       ^^^\n                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                           ^\n                           source.ts meta.function.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    return \"\";\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^\n            source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n             ^\n             source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n              ^\n              source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue152.baseline.txt",
    "content": "original file\n-----------------------------------\nvar node;\nfor(var i; i< 45;i++) {\n    node = 234;\n\n    node.a = 122;\n    node.b += 122;\n    node.b += '1'+1+'2';\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var node;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n         ^\n         source.ts punctuation.terminator.statement.ts\n>for(var i; i< 45;i++) {\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^^^\n     source.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts punctuation.terminator.statement.ts\n           ^\n           source.ts\n            ^\n            source.ts variable.other.readwrite.ts\n             ^\n             source.ts keyword.operator.relational.ts\n              ^\n              source.ts\n               ^^\n               source.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n                  ^\n                  source.ts variable.other.readwrite.ts\n                   ^^\n                   source.ts keyword.operator.increment.ts\n                     ^\n                     source.ts meta.brace.round.ts\n                      ^\n                      source.ts\n                       ^\n                       source.ts meta.block.ts punctuation.definition.block.ts\n>    node = 234;\n ^^^^\n source.ts meta.block.ts\n     ^^^^\n     source.ts meta.block.ts variable.other.readwrite.ts\n         ^\n         source.ts meta.block.ts\n          ^\n          source.ts meta.block.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.block.ts\n            ^^^\n            source.ts meta.block.ts constant.numeric.decimal.ts\n               ^\n               source.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.block.ts\n>    node.a = 122;\n ^^^^\n source.ts meta.block.ts\n     ^^^^\n     source.ts meta.block.ts variable.other.object.ts\n         ^\n         source.ts meta.block.ts punctuation.accessor.ts\n          ^\n          source.ts meta.block.ts variable.other.property.ts\n           ^\n           source.ts meta.block.ts\n            ^\n            source.ts meta.block.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.block.ts\n              ^^^\n              source.ts meta.block.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.block.ts punctuation.terminator.statement.ts\n>    node.b += 122;\n ^^^^\n source.ts meta.block.ts\n     ^^^^\n     source.ts meta.block.ts variable.other.object.ts\n         ^\n         source.ts meta.block.ts punctuation.accessor.ts\n          ^\n          source.ts meta.block.ts variable.other.property.ts\n           ^\n           source.ts meta.block.ts\n            ^^\n            source.ts meta.block.ts keyword.operator.assignment.compound.ts\n              ^\n              source.ts meta.block.ts\n               ^^^\n               source.ts meta.block.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.block.ts punctuation.terminator.statement.ts\n>    node.b += '1'+1+'2';\n ^^^^\n source.ts meta.block.ts\n     ^^^^\n     source.ts meta.block.ts variable.other.object.ts\n         ^\n         source.ts meta.block.ts punctuation.accessor.ts\n          ^\n          source.ts meta.block.ts variable.other.property.ts\n           ^\n           source.ts meta.block.ts\n            ^^\n            source.ts meta.block.ts keyword.operator.assignment.compound.ts\n              ^\n              source.ts meta.block.ts\n               ^\n               source.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                ^\n                source.ts meta.block.ts string.quoted.single.ts\n                 ^\n                 source.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                  ^\n                  source.ts meta.block.ts keyword.operator.arithmetic.ts\n                   ^\n                   source.ts meta.block.ts constant.numeric.decimal.ts\n                    ^\n                    source.ts meta.block.ts keyword.operator.arithmetic.ts\n                     ^\n                     source.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                      ^\n                      source.ts meta.block.ts string.quoted.single.ts\n                       ^\n                       source.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue153.baseline.txt",
    "content": "original file\n-----------------------------------\nimport {Vector3, Vector} from 'vectors';\n\n/**\n * A simple 3x3 matrix structure.\n * \n * @export\n * @class Matrix3x3\n */\nclass Matrix {\n    public M11 : number;\n    public M12 : number;\n    public M13 : number;\n    public M21 : number;\n    public M22 : number;\n    public M23 : number;\n    public M31 : number;\n    public M32 : number;\n    public M33 : number;\n\n\n    /**\n     * Gets a column as a new vector.\n     * \n     * @param {number} index The index of the column (0 .. 2).\n     * @returns {Vector3} A vector representing the column.\n     */\n    public getColumn_Breaks(index : number) : Vector3 {\n        if (index == 0) {\n            return new Vector3(this.M11, this.M21, this.M31);\n        } else if (index == 1) {\n            return new Vector3(this.M12, this.M22, this.M32);\n        } else if (index == 2) {\n            return new Vector3(this.M13, this.M23, this.M33);\n        } else {\n            throw new RangeError('Invalid matrix 3x3 column index: ' + index);\n        }\n    }\n\n    /**\n     * Gets a column as a new vector.\n     * \n     * @param {number} index The index of the column (0 .. 2).\n     * @returns {Vector3} A vector representing the column.\n     */\n    public getColumn_Works(index : number) : Vector {\n        if (index == 0) {\n            return new Vector(this.M11, this.M21, this.M31);\n        } else if (index == 1) {\n            return new Vector(this.M12, this.M22, this.M32);\n        } else if (index == 2) {\n            return new Vector(this.M13, this.M23, this.M33);\n        } else {\n            throw new RangeError('Invalid matrix 3x3 column index: ' + index);\n        }\n    }\n\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>import {Vector3, Vector} from 'vectors';\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n         ^^^^^^^\n         source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                ^\n                source.ts meta.import.ts meta.block.ts punctuation.separator.comma.ts\n                 ^\n                 source.ts meta.import.ts meta.block.ts\n                  ^^^^^^\n                  source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                        ^\n                        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                         ^\n                         source.ts meta.import.ts\n                          ^^^^\n                          source.ts meta.import.ts keyword.control.from.ts\n                              ^\n                              source.ts meta.import.ts\n                               ^\n                               source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                ^^^^^^^\n                                source.ts meta.import.ts string.quoted.single.ts\n                                       ^\n                                       source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>/**\n ^^^\n source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n> * A simple 3x3 matrix structure.\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.documentation.ts\n> * \n ^^^^\n source.ts comment.block.documentation.ts\n> * @export\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n> * @class Matrix3x3\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n          ^^^^^^^^^^^\n          source.ts comment.block.documentation.ts\n> */\n ^\n source.ts comment.block.documentation.ts\n  ^^\n  source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>class Matrix {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n             ^\n             source.ts meta.class.ts\n              ^\n              source.ts meta.class.ts punctuation.definition.block.ts\n>    public M11 : number;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                  ^^^^^^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>    public M12 : number;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                  ^^^^^^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>    public M13 : number;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                  ^^^^^^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>    public M21 : number;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                  ^^^^^^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>    public M22 : number;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                  ^^^^^^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>    public M23 : number;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                  ^^^^^^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>    public M31 : number;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                  ^^^^^^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>    public M32 : number;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                  ^^^^^^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>    public M33 : number;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                  ^^^^^^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>\n ^\n source.ts meta.class.ts\n>    /**\n ^^^^\n source.ts meta.class.ts\n     ^^^\n     source.ts meta.class.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>     * Gets a column as a new vector.\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts comment.block.documentation.ts\n>     * \n ^^^^^^^^\n source.ts meta.class.ts comment.block.documentation.ts\n>     * @param {number} index The index of the column (0 .. 2).\n ^^^^^^^\n source.ts meta.class.ts comment.block.documentation.ts\n        ^\n        source.ts meta.class.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n         ^^^^^\n         source.ts meta.class.ts comment.block.documentation.ts storage.type.class.jsdoc\n              ^\n              source.ts meta.class.ts comment.block.documentation.ts\n               ^\n               source.ts meta.class.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n                ^^^^^^\n                source.ts meta.class.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                      ^\n                      source.ts meta.class.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                       ^\n                       source.ts meta.class.ts comment.block.documentation.ts\n                        ^^^^^\n                        source.ts meta.class.ts comment.block.documentation.ts variable.other.jsdoc\n                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                             source.ts meta.class.ts comment.block.documentation.ts\n>     * @returns {Vector3} A vector representing the column.\n ^^^^^^^\n source.ts meta.class.ts comment.block.documentation.ts\n        ^\n        source.ts meta.class.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n         ^^^^^^^\n         source.ts meta.class.ts comment.block.documentation.ts storage.type.class.jsdoc\n                ^\n                source.ts meta.class.ts comment.block.documentation.ts\n                 ^\n                 source.ts meta.class.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n                  ^^^^^^^\n                  source.ts meta.class.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                         ^\n                         source.ts meta.class.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                          ^\n                          source.ts meta.class.ts comment.block.documentation.ts\n                           ^\n                           source.ts meta.class.ts comment.block.documentation.ts\n                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                            source.ts meta.class.ts comment.block.documentation.ts\n>     */\n ^^^^^\n source.ts meta.class.ts comment.block.documentation.ts\n      ^^\n      source.ts meta.class.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>    public getColumn_Breaks(index : number) : Vector3 {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                             ^^^^^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                     ^^^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                               ^^^^^^^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        if (index == 0) {\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                   ^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.comparison.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>            return new Vector3(this.M11, this.M21, this.M31);\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n                    ^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                        ^^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                ^^^^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                     ^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.constant.property.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                                          ^^^^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                               ^^^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.constant.property.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                                                    ^^^^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                                         ^^^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.constant.property.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>        } else if (index == 1) {\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n           ^^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                ^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                    ^^^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                          ^^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.comparison.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>            return new Vector3(this.M12, this.M22, this.M32);\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n                    ^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                        ^^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                ^^^^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                     ^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.constant.property.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                                          ^^^^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                               ^^^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.constant.property.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                                                    ^^^^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                                         ^^^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.constant.property.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>        } else if (index == 2) {\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n           ^^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                ^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                    ^^^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                          ^^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.comparison.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>            return new Vector3(this.M13, this.M23, this.M33);\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n                    ^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                        ^^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                ^^^^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                     ^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.constant.property.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                                          ^^^^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                               ^^^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.constant.property.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                                                    ^^^^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                                         ^^^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.constant.property.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>        } else {\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n           ^^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>            throw new RangeError('Invalid matrix 3x3 column index: ' + index);\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.control.trycatch.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n                   ^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                       ^^^^^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts string.quoted.single.ts\n                                                                    ^\n                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                     ^\n                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                                                                      ^\n                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts keyword.operator.arithmetic.ts\n                                                                       ^\n                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                                                                        ^^^^^\n                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.readwrite.ts\n                                                                             ^\n                                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                              ^\n                                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>        }\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>    /**\n ^^^^\n source.ts meta.class.ts\n     ^^^\n     source.ts meta.class.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>     * Gets a column as a new vector.\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts comment.block.documentation.ts\n>     * \n ^^^^^^^^\n source.ts meta.class.ts comment.block.documentation.ts\n>     * @param {number} index The index of the column (0 .. 2).\n ^^^^^^^\n source.ts meta.class.ts comment.block.documentation.ts\n        ^\n        source.ts meta.class.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n         ^^^^^\n         source.ts meta.class.ts comment.block.documentation.ts storage.type.class.jsdoc\n              ^\n              source.ts meta.class.ts comment.block.documentation.ts\n               ^\n               source.ts meta.class.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n                ^^^^^^\n                source.ts meta.class.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                      ^\n                      source.ts meta.class.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                       ^\n                       source.ts meta.class.ts comment.block.documentation.ts\n                        ^^^^^\n                        source.ts meta.class.ts comment.block.documentation.ts variable.other.jsdoc\n                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                             source.ts meta.class.ts comment.block.documentation.ts\n>     * @returns {Vector3} A vector representing the column.\n ^^^^^^^\n source.ts meta.class.ts comment.block.documentation.ts\n        ^\n        source.ts meta.class.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n         ^^^^^^^\n         source.ts meta.class.ts comment.block.documentation.ts storage.type.class.jsdoc\n                ^\n                source.ts meta.class.ts comment.block.documentation.ts\n                 ^\n                 source.ts meta.class.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n                  ^^^^^^^\n                  source.ts meta.class.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                         ^\n                         source.ts meta.class.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                          ^\n                          source.ts meta.class.ts comment.block.documentation.ts\n                           ^\n                           source.ts meta.class.ts comment.block.documentation.ts\n                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                            source.ts meta.class.ts comment.block.documentation.ts\n>     */\n ^^^^^\n source.ts meta.class.ts comment.block.documentation.ts\n      ^^\n      source.ts meta.class.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>    public getColumn_Works(index : number) : Vector {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                            ^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                    ^^^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                              ^^^^^^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        if (index == 0) {\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                   ^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.comparison.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>            return new Vector(this.M11, this.M21, this.M31);\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n                    ^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                        ^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                               ^^^^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                    ^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.constant.property.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                                         ^^^^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                              ^^^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.constant.property.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                                                   ^^^^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                                        ^^^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.constant.property.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>        } else if (index == 1) {\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n           ^^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                ^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                    ^^^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                          ^^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.comparison.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>            return new Vector(this.M12, this.M22, this.M32);\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n                    ^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                        ^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                               ^^^^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                    ^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.constant.property.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                                         ^^^^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                              ^^^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.constant.property.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                                                   ^^^^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                                        ^^^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.constant.property.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>        } else if (index == 2) {\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n           ^^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                ^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                    ^^^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                          ^^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.comparison.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>            return new Vector(this.M13, this.M23, this.M33);\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n                    ^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                        ^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                               ^^^^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                    ^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.constant.property.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                                         ^^^^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                              ^^^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.constant.property.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                                                   ^^^^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                                        ^^^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.constant.property.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>        } else {\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n           ^^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>            throw new RangeError('Invalid matrix 3x3 column index: ' + index);\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.control.trycatch.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n                   ^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                       ^^^^^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts string.quoted.single.ts\n                                                                    ^\n                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                     ^\n                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                                                                      ^\n                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts keyword.operator.arithmetic.ts\n                                                                       ^\n                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts\n                                                                        ^^^^^\n                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts variable.other.readwrite.ts\n                                                                             ^\n                                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                              ^\n                                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>        }\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue154.baseline.txt",
    "content": "original file\n-----------------------------------\nclass TestCase {\n    ['foo']() {\n        this.registerComponent('foo-bar');\n    }\n}\n\nclass TestCase2 {\n    foo() {\n        this.registerComponent('foo-bar');\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class TestCase {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n               ^\n               source.ts meta.class.ts\n                ^\n                source.ts meta.class.ts punctuation.definition.block.ts\n>    ['foo']() {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n       ^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts string.quoted.single.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        this.registerComponent('foo-bar');\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.language.this.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n              ^^^^^^^^^^^^^^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                 ^^^^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>class TestCase2 {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n                ^\n                source.ts meta.class.ts\n                 ^\n                 source.ts meta.class.ts punctuation.definition.block.ts\n>    foo() {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        this.registerComponent('foo-bar');\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.language.this.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n              ^^^^^^^^^^^^^^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                 ^^^^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue155.baseline.txt",
    "content": "original file\n-----------------------------------\nmatchQuery.find().then(function (results) {\n        for (i=0;i<results.length;i++){\n            notificationQuery.find().then(function (notifications){\n                var j;\n                for (j=0;j<notifications.length;j++){\n                    console.log('safeDeleteRoute notification result'+j);\n                    notifications[j].destroy();\n                }\n                res.destroy();\n            });\n        }\n    },function(error){\n        alert(\"Error: \"+error.code + \" \" + error.message);\n    });\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>matchQuery.find().then(function (results) {\n ^^^^^^^^^^\n source.ts meta.function-call.ts variable.other.object.ts\n           ^\n           source.ts meta.function-call.ts punctuation.accessor.ts\n            ^^^^\n            source.ts meta.function-call.ts support.function.ts\n                ^\n                source.ts meta.brace.round.ts\n                 ^\n                 source.ts meta.brace.round.ts\n                  ^\n                  source.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^\n                   source.ts meta.function-call.ts support.function.promise.ts\n                       ^\n                       source.ts meta.brace.round.ts\n                        ^^^^^^^^\n                        source.ts meta.function.expression.ts storage.type.function.ts\n                                ^\n                                source.ts meta.function.expression.ts\n                                 ^\n                                 source.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                  ^^^^^^^\n                                  source.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                         ^\n                                         source.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                          ^\n                                          source.ts meta.function.expression.ts\n                                           ^\n                                           source.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>        for (i=0;i<results.length;i++){\n ^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts\n         ^^^\n         source.ts meta.function.expression.ts meta.block.ts keyword.control.loop.ts\n            ^\n            source.ts meta.function.expression.ts meta.block.ts\n             ^\n             source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n              ^\n              source.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.function.expression.ts meta.block.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n                  ^\n                  source.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.function.expression.ts meta.block.ts keyword.operator.relational.ts\n                    ^^^^^^^\n                    source.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                           ^\n                           source.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                            ^^^^^^\n                            source.ts meta.function.expression.ts meta.block.ts support.variable.property.ts\n                                  ^\n                                  source.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n                                   ^\n                                   source.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                    ^^\n                                    source.ts meta.function.expression.ts meta.block.ts keyword.operator.increment.ts\n                                      ^\n                                      source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                       ^\n                                       source.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>            notificationQuery.find().then(function (notifications){\n ^^^^^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n             ^^^^^^^^^^^^^^^^^\n             source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                              ^\n                              source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                               ^^^^\n                               source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.ts\n                                   ^\n                                   source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                      ^^^^\n                                      source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.promise.ts\n                                          ^\n                                          source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                           ^^^^^^^^\n                                           source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts storage.type.function.ts\n                                                   ^\n                                                   source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts\n                                                    ^\n                                                    source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                     ^^^^^^^^^^^^^\n                                                     source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                                                  ^\n                                                                  source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                   ^\n                                                                   source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>                var j;\n ^^^^^^^^^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                 ^^^\n                 source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                    ^\n                    source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>                for (j=0;j<notifications.length;j++){\n ^^^^^^^^^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                 ^^^\n                 source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts keyword.control.loop.ts\n                    ^\n                    source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                     ^\n                     source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                      ^\n                      source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts constant.numeric.decimal.ts\n                         ^\n                         source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n                          ^\n                          source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                           ^\n                           source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts keyword.operator.relational.ts\n                            ^^^^^^^^^^^^^\n                            source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                         ^\n                                         source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                          ^^^^^^\n                                          source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts support.variable.property.ts\n                                                ^\n                                                source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n                                                 ^\n                                                 source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                  ^^\n                                                  source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts keyword.operator.increment.ts\n                                                    ^\n                                                    source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                     ^\n                                                     source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>                    console.log('safeDeleteRoute notification result'+j);\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts\n                     ^^^^^^^\n                     source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts support.class.console.ts\n                            ^\n                            source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                             ^^^\n                             source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                                ^\n                                source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                  source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts string.quoted.single.ts\n                                                                     ^\n                                                                     source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                      ^\n                                                                      source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                                       ^\n                                                                       source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                                                                        ^\n                                                                        source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                                                         ^\n                                                                         source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>                    notifications[j].destroy();\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts\n                     ^^^^^^^^^^^^^\n                     source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                   ^\n                                   source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n                                    ^\n                                    source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                     ^\n                                     source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                      ^^^^^^^\n                                      source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                             ^\n                                             source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                              ^\n                                              source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                               ^\n                                               source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>                }\n ^^^^^^^^^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts\n                 ^\n                 source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>                res.destroy();\n ^^^^^^^^^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                 ^^^\n                 source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                    ^\n                    source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                     ^^^^^^^\n                     source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                            ^\n                            source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>            });\n ^^^^^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts\n             ^\n             source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n               ^\n               source.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>        }\n ^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    },function(error){\n ^^^^\n source.ts meta.function.expression.ts meta.block.ts\n     ^\n     source.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n      ^\n      source.ts punctuation.separator.comma.ts\n       ^^^^^^^^\n       source.ts meta.function.expression.ts storage.type.function.ts\n               ^\n               source.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^^^^^\n                source.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                      ^\n                      source.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>        alert(\"Error: \"+error.code + \" \" + error.message);\n ^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts\n         ^^^^^\n         source.ts meta.function.expression.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n              ^\n              source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n               ^\n               source.ts meta.function.expression.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                ^^^^^^^\n                source.ts meta.function.expression.ts meta.block.ts string.quoted.double.ts\n                       ^\n                       source.ts meta.function.expression.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts meta.function.expression.ts meta.block.ts keyword.operator.arithmetic.ts\n                         ^^^^^\n                         source.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                              ^\n                              source.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                               ^^^^\n                               source.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                   ^\n                                   source.ts meta.function.expression.ts meta.block.ts\n                                    ^\n                                    source.ts meta.function.expression.ts meta.block.ts keyword.operator.arithmetic.ts\n                                     ^\n                                     source.ts meta.function.expression.ts meta.block.ts\n                                      ^\n                                      source.ts meta.function.expression.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                       ^\n                                       source.ts meta.function.expression.ts meta.block.ts string.quoted.double.ts\n                                        ^\n                                        source.ts meta.function.expression.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                         ^\n                                         source.ts meta.function.expression.ts meta.block.ts\n                                          ^\n                                          source.ts meta.function.expression.ts meta.block.ts keyword.operator.arithmetic.ts\n                                           ^\n                                           source.ts meta.function.expression.ts meta.block.ts\n                                            ^^^^^\n                                            source.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                 ^\n                                                 source.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                  ^^^^^^^\n                                                  source.ts meta.function.expression.ts meta.block.ts variable.other.property.ts\n                                                         ^\n                                                         source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                          ^\n                                                          source.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>    });\n ^^^^\n source.ts meta.function.expression.ts meta.block.ts\n     ^\n     source.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.brace.round.ts\n       ^\n       source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue156.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Test {\n\tmmm(p1: string | {}, p2: string) \n\t{\n        \n\t}\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Test {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n           ^\n           source.ts meta.class.ts\n            ^\n            source.ts meta.class.ts punctuation.definition.block.ts\n>\tmmm(p1: string | {}, p2: string) \n ^\n source.ts meta.class.ts meta.method.declaration.ts\n  ^^^\n  source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n      ^^\n      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n          ^^^^^^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                       ^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts\n>\t{\n ^\n source.ts meta.class.ts\n  ^\n  source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>        \n ^^^^^^^^^\n source.ts meta.class.ts meta.block.ts\n>\t}\n ^\n source.ts meta.class.ts meta.block.ts\n  ^\n  source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue157.baseline.txt",
    "content": "original file\n-----------------------------------\nconst items = new Set<string>([ 'foo', 'bar' ]);\nitems.delete('foo');\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const items = new Set<string>([ 'foo', 'bar' ]);\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^^\n               source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n                  ^\n                  source.ts meta.var.expr.ts new.expr.ts\n                   ^^^\n                   source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts support.class.builtin.ts\n                      ^\n                      source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                       ^^^^^^\n                       source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                             ^\n                             source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                              ^\n                              source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.var.expr.ts new.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.var.expr.ts new.expr.ts meta.array.literal.ts\n                                 ^\n                                 source.ts meta.var.expr.ts new.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                  ^^^\n                                  source.ts meta.var.expr.ts new.expr.ts meta.array.literal.ts string.quoted.single.ts\n                                     ^\n                                     source.ts meta.var.expr.ts new.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                      ^\n                                      source.ts meta.var.expr.ts new.expr.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                       ^\n                                       source.ts meta.var.expr.ts new.expr.ts meta.array.literal.ts\n                                        ^\n                                        source.ts meta.var.expr.ts new.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                         ^^^\n                                         source.ts meta.var.expr.ts new.expr.ts meta.array.literal.ts string.quoted.single.ts\n                                            ^\n                                            source.ts meta.var.expr.ts new.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                             ^\n                                             source.ts meta.var.expr.ts new.expr.ts meta.array.literal.ts\n                                              ^\n                                              source.ts meta.var.expr.ts new.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                               ^\n                                               source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                                ^\n                                                source.ts punctuation.terminator.statement.ts\n>items.delete('foo');\n ^^^^^\n source.ts meta.function-call.ts variable.other.object.ts\n      ^\n      source.ts meta.function-call.ts punctuation.accessor.ts\n       ^^^^^^\n       source.ts meta.function-call.ts support.function.dom.ts\n             ^\n             source.ts meta.brace.round.ts\n              ^\n              source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n               ^^^\n               source.ts string.quoted.single.ts\n                  ^\n                  source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                   ^\n                   source.ts meta.brace.round.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue158.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Test\n{\n    public constructor()\n    {\n        for (let it=0; it<10; it++)\n        {\n        } \n    }\n\n    private doSomething()\n    {\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Test\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n>{\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>    public constructor()\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>    {\n ^^^^\n source.ts meta.class.ts\n     ^\n     source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>        for (let it=0; it<10; it++)\n ^^^^^^^^\n source.ts meta.class.ts meta.block.ts\n         ^^^\n         source.ts meta.class.ts meta.block.ts keyword.control.loop.ts\n            ^\n            source.ts meta.class.ts meta.block.ts\n             ^\n             source.ts meta.class.ts meta.block.ts meta.brace.round.ts\n              ^^^\n              source.ts meta.class.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                 ^\n                 source.ts meta.class.ts meta.block.ts meta.var.expr.ts\n                  ^^\n                  source.ts meta.class.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.class.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                      ^\n                      source.ts meta.class.ts meta.block.ts punctuation.terminator.statement.ts\n                       ^\n                       source.ts meta.class.ts meta.block.ts\n                        ^^\n                        source.ts meta.class.ts meta.block.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.class.ts meta.block.ts keyword.operator.relational.ts\n                           ^^\n                           source.ts meta.class.ts meta.block.ts constant.numeric.decimal.ts\n                             ^\n                             source.ts meta.class.ts meta.block.ts punctuation.terminator.statement.ts\n                              ^\n                              source.ts meta.class.ts meta.block.ts\n                               ^^\n                               source.ts meta.class.ts meta.block.ts variable.other.readwrite.ts\n                                 ^^\n                                 source.ts meta.class.ts meta.block.ts keyword.operator.increment.ts\n                                   ^\n                                   source.ts meta.class.ts meta.block.ts meta.brace.round.ts\n>        {\n ^^^^^^^^\n source.ts meta.class.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>        } \n ^^^^^^^^\n source.ts meta.class.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n          ^^\n          source.ts meta.class.ts meta.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>    private doSomething()\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts\n             ^^^^^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>    {\n ^^^^\n source.ts meta.class.ts\n     ^\n     source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue161.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\nlet root: React.ReactElement<{}>;\nlet page: PageName;\nif (isViaPage) {\n  root = <ViaView/>;\n  page = 'via';\n}\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>let root: React.ReactElement<{}>;\n ^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n    ^\n    source.tsx meta.var.expr.tsx\n     ^^^^\n     source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.readwrite.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n          ^\n          source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.type.annotation.tsx\n           ^^^^^\n           source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.type.annotation.tsx entity.name.type.module.tsx\n                ^\n                source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.type.annotation.tsx punctuation.accessor.tsx\n                 ^^^^^^^^^^^^\n                 source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.type.annotation.tsx entity.name.type.tsx\n                             ^\n                             source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.type.annotation.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n                              ^\n                              source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.type.annotation.tsx meta.type.parameters.tsx meta.object.type.tsx punctuation.definition.block.tsx\n                               ^\n                               source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.type.annotation.tsx meta.type.parameters.tsx meta.object.type.tsx punctuation.definition.block.tsx\n                                ^\n                                source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.type.annotation.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n                                 ^\n                                 source.tsx punctuation.terminator.statement.tsx\n>let page: PageName;\n ^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n    ^\n    source.tsx meta.var.expr.tsx\n     ^^^^\n     source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.readwrite.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n          ^\n          source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.type.annotation.tsx\n           ^^^^^^^^\n           source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.type.annotation.tsx entity.name.type.tsx\n                   ^\n                   source.tsx punctuation.terminator.statement.tsx\n>if (isViaPage) {\n ^^\n source.tsx keyword.control.conditional.tsx\n   ^\n   source.tsx\n    ^\n    source.tsx meta.brace.round.tsx\n     ^^^^^^^^^\n     source.tsx variable.other.readwrite.tsx\n              ^\n              source.tsx meta.brace.round.tsx\n               ^\n               source.tsx\n                ^\n                source.tsx meta.block.tsx punctuation.definition.block.tsx\n>  root = <ViaView/>;\n ^^\n source.tsx meta.block.tsx\n   ^^^^\n   source.tsx meta.block.tsx support.variable.object.node.tsx\n       ^\n       source.tsx meta.block.tsx\n        ^\n        source.tsx meta.block.tsx keyword.operator.assignment.tsx\n         ^\n         source.tsx meta.block.tsx\n          ^\n          source.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n           ^^^^^^^\n           source.tsx meta.block.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n                  ^^\n                  source.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                    ^\n                    source.tsx meta.block.tsx punctuation.terminator.statement.tsx\n>  page = 'via';\n ^^\n source.tsx meta.block.tsx\n   ^^^^\n   source.tsx meta.block.tsx variable.other.readwrite.tsx\n       ^\n       source.tsx meta.block.tsx\n        ^\n        source.tsx meta.block.tsx keyword.operator.assignment.tsx\n         ^\n         source.tsx meta.block.tsx\n          ^\n          source.tsx meta.block.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n           ^^^\n           source.tsx meta.block.tsx string.quoted.single.tsx\n              ^\n              source.tsx meta.block.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n               ^\n               source.tsx meta.block.tsx punctuation.terminator.statement.tsx\n>}\n ^\n source.tsx meta.block.tsx punctuation.definition.block.tsx"
  },
  {
    "path": "tests/baselines/Issue163.baseline.txt",
    "content": "original file\n-----------------------------------\nconst o = {\n    async f() {\n\n    }\n};\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const o = {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    async f() {\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts storage.modifier.async.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n>    }\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>};\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue166.baseline.txt",
    "content": "original file\n-----------------------------------\ntype x = string | \"aaa\" | \"bbb\" | \"ccc\" | number;\ntype x1 = string |\n    \"aaa\" |\n    \"bbb\" | \"ccc\" | number;\ntype x2 = string | /*comment*/ \"aaa\" | \"bbb\" | \"ccc\" | number; /*comment*/\ntype x3 = string | \"aaa\" | //comment\n    \"bbb\" | \"ccc\" | number; //comment\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type x = string | \"aaa\" | \"bbb\" | \"ccc\" | number;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^\n        source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^^^^^^\n          source.ts meta.type.declaration.ts support.type.primitive.ts\n                ^\n                source.ts meta.type.declaration.ts\n                 ^\n                 source.ts meta.type.declaration.ts keyword.operator.type.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^\n                   source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                    ^^^\n                    source.ts meta.type.declaration.ts string.quoted.double.ts\n                       ^\n                       source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts meta.type.declaration.ts\n                         ^\n                         source.ts meta.type.declaration.ts keyword.operator.type.ts\n                          ^\n                          source.ts meta.type.declaration.ts\n                           ^\n                           source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                            ^^^\n                            source.ts meta.type.declaration.ts string.quoted.double.ts\n                               ^\n                               source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                ^\n                                source.ts meta.type.declaration.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts keyword.operator.type.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                    ^^^\n                                    source.ts meta.type.declaration.ts string.quoted.double.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts keyword.operator.type.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts\n                                           ^^^^^^\n                                           source.ts meta.type.declaration.ts support.type.primitive.ts\n                                                 ^\n                                                 source.ts punctuation.terminator.statement.ts\n>type x1 = string |\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^^^^^^\n           source.ts meta.type.declaration.ts support.type.primitive.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts keyword.operator.type.ts\n>    \"aaa\" |\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n      ^^^\n      source.ts meta.type.declaration.ts string.quoted.double.ts\n         ^\n         source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts keyword.operator.type.ts\n>    \"bbb\" | \"ccc\" | number;\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n      ^^^\n      source.ts meta.type.declaration.ts string.quoted.double.ts\n         ^\n         source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts keyword.operator.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^\n             source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n              ^^^\n              source.ts meta.type.declaration.ts string.quoted.double.ts\n                 ^\n                 source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^\n                   source.ts meta.type.declaration.ts keyword.operator.type.ts\n                    ^\n                    source.ts meta.type.declaration.ts\n                     ^^^^^^\n                     source.ts meta.type.declaration.ts support.type.primitive.ts\n                           ^\n                           source.ts punctuation.terminator.statement.ts\n>type x2 = string | /*comment*/ \"aaa\" | \"bbb\" | \"ccc\" | number; /*comment*/\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^^^^^^\n           source.ts meta.type.declaration.ts support.type.primitive.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts keyword.operator.type.ts\n                   ^\n                   source.ts meta.type.declaration.ts\n                    ^^\n                    source.ts meta.type.declaration.ts comment.block.ts punctuation.definition.comment.ts\n                      ^^^^^^^\n                      source.ts meta.type.declaration.ts comment.block.ts\n                             ^^\n                             source.ts meta.type.declaration.ts comment.block.ts punctuation.definition.comment.ts\n                               ^\n                               source.ts meta.type.declaration.ts\n                                ^\n                                source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                 ^^^\n                                 source.ts meta.type.declaration.ts string.quoted.double.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts keyword.operator.type.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                         ^^^\n                                         source.ts meta.type.declaration.ts string.quoted.double.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts keyword.operator.type.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                 ^^^\n                                                 source.ts meta.type.declaration.ts string.quoted.double.ts\n                                                    ^\n                                                    source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                     ^\n                                                     source.ts meta.type.declaration.ts\n                                                      ^\n                                                      source.ts meta.type.declaration.ts keyword.operator.type.ts\n                                                       ^\n                                                       source.ts meta.type.declaration.ts\n                                                        ^^^^^^\n                                                        source.ts meta.type.declaration.ts support.type.primitive.ts\n                                                              ^\n                                                              source.ts punctuation.terminator.statement.ts\n                                                               ^\n                                                               source.ts\n                                                                ^^\n                                                                source.ts comment.block.ts punctuation.definition.comment.ts\n                                                                  ^^^^^^^\n                                                                  source.ts comment.block.ts\n                                                                         ^^\n                                                                         source.ts comment.block.ts punctuation.definition.comment.ts\n>type x3 = string | \"aaa\" | //comment\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^^^^^^\n           source.ts meta.type.declaration.ts support.type.primitive.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts keyword.operator.type.ts\n                   ^\n                   source.ts meta.type.declaration.ts\n                    ^\n                    source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                     ^^^\n                     source.ts meta.type.declaration.ts string.quoted.double.ts\n                        ^\n                        source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                         ^\n                         source.ts meta.type.declaration.ts\n                          ^\n                          source.ts meta.type.declaration.ts keyword.operator.type.ts\n                           ^\n                           source.ts meta.type.declaration.ts\n                            ^^\n                            source.ts meta.type.declaration.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                              ^^^^^^^\n                              source.ts meta.type.declaration.ts comment.line.double-slash.ts\n>    \"bbb\" | \"ccc\" | number; //comment\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n      ^^^\n      source.ts meta.type.declaration.ts string.quoted.double.ts\n         ^\n         source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts keyword.operator.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^\n             source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n              ^^^\n              source.ts meta.type.declaration.ts string.quoted.double.ts\n                 ^\n                 source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^\n                   source.ts meta.type.declaration.ts keyword.operator.type.ts\n                    ^\n                    source.ts meta.type.declaration.ts\n                     ^^^^^^\n                     source.ts meta.type.declaration.ts support.type.primitive.ts\n                           ^\n                           source.ts punctuation.terminator.statement.ts\n                            ^\n                            source.ts\n                             ^^\n                             source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                               ^^^^^^^\n                               source.ts comment.line.double-slash.ts"
  },
  {
    "path": "tests/baselines/Issue171.baseline.txt",
    "content": "original file\n-----------------------------------\nclass c {\n    constructor \n    (\n        private parameters: {\n            stringContent: string;\n            minLength: number;\n            maxLength: number,\n            validationErrorMessage: string\n        }) {\n\n    }\n    private x: number = Date.now() // TODO: momentjs?\n    private link_visits_counter: number = 0;\n}\n\nfunction foo() {\n  new c\n  ({\n      stringContent: \"something\",\n      minLength: 1,\n      maxLength: 5,\n      validationErrorMessage: \"something else\"\n  });\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class c {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>    constructor \n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts\n>    (\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n>        private parameters: {\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n         ^^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts storage.modifier.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                 ^^^^^^^^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>            stringContent: string;\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n             ^^^^^^^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                            ^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n>            minLength: number;\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n             ^^^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                        ^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n>            maxLength: number,\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n             ^^^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                        ^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.separator.comma.ts\n>            validationErrorMessage: string\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n             ^^^^^^^^^^^^^^^^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                     ^^^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>        }) {\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    private x: number = Date.now() // TODO: momentjs?\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                ^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts\n                         ^^^^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts support.class.builtin.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                              ^^^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.field.declaration.ts\n                                    ^^\n                                    source.ts meta.class.ts meta.field.declaration.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                      ^^^^^^^^^^^^^^^^\n                                      source.ts meta.class.ts meta.field.declaration.ts comment.line.double-slash.ts\n>    private link_visits_counter: number = 0;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^^^^^^^^^^^^^^^^^^^\n             source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                                  ^^^^^^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                        ^\n                                        source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                                         ^\n                                         source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                          ^\n                                          source.ts meta.class.ts meta.field.declaration.ts\n                                           ^\n                                           source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                                            ^\n                                            source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>function foo() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.function.ts\n                ^\n                source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  new c\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^\n   source.ts meta.function.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n      ^\n      source.ts meta.function.ts meta.block.ts new.expr.ts\n       ^\n       source.ts meta.function.ts meta.block.ts new.expr.ts variable.other.readwrite.ts\n>  ({\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^\n   source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n    ^\n    source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n>      stringContent: \"something\",\n ^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n       ^^^^^^^^^^^^^\n       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                       ^^^^^^^^^\n                       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>      minLength: 1,\n ^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n       ^^^^^^^^^\n       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>      maxLength: 5,\n ^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n       ^^^^^^^^^\n       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>      validationErrorMessage: \"something else\"\n ^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n       ^^^^^^^^^^^^^^^^^^^^^^\n       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                ^^^^^^^^^^^^^^\n                                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                                              ^\n                                              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>  });\n ^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n   ^\n   source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n    ^\n    source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n     ^\n     source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue172.baseline.txt",
    "content": "original file\n-----------------------------------\nlet f = async (x) => {};\nlet f2 = async function(x) {};\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let f = async (x) => {};\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts entity.name.function.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^\n         source.ts meta.var.expr.ts meta.arrow.ts storage.modifier.async.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts\n                   ^^\n                   source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts\n>let f2 = async function(x) {};\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts entity.name.function.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n        ^\n        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^^^^^\n          source.ts meta.var.expr.ts meta.function.expression.ts storage.modifier.async.ts\n               ^\n               source.ts meta.var.expr.ts meta.function.expression.ts\n                ^^^^^^^^\n                source.ts meta.var.expr.ts meta.function.expression.ts storage.type.function.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.function.expression.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue175.baseline.txt",
    "content": "original file\n-----------------------------------\nvar $ = '';\nvar $foo = '';\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var $ = '';\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n          ^\n          source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n           ^\n           source.ts punctuation.terminator.statement.ts\n>var $foo = '';\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n             ^\n             source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue177.baseline.txt",
    "content": "original file\n-----------------------------------\n() => (/s/);\n() => /s/;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>() => (/s/);\n ^\n source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n  ^\n  source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n   ^\n   source.ts meta.arrow.ts\n    ^^\n    source.ts meta.arrow.ts storage.type.function.arrow.ts\n      ^\n      source.ts meta.arrow.ts\n       ^\n       source.ts meta.brace.round.ts\n        ^\n        source.ts string.regexp.ts punctuation.definition.string.begin.ts\n         ^\n         source.ts string.regexp.ts\n          ^\n          source.ts string.regexp.ts punctuation.definition.string.end.ts\n           ^\n           source.ts meta.brace.round.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>() => /s/;\n ^\n source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n  ^\n  source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n   ^\n   source.ts meta.arrow.ts\n    ^^\n    source.ts meta.arrow.ts storage.type.function.arrow.ts\n      ^\n      source.ts meta.arrow.ts string.regexp.ts\n       ^\n       source.ts meta.arrow.ts string.regexp.ts punctuation.definition.string.begin.ts\n        ^\n        source.ts meta.arrow.ts string.regexp.ts\n         ^\n         source.ts meta.arrow.ts string.regexp.ts punctuation.definition.string.end.ts\n          ^\n          source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue178.baseline.txt",
    "content": "original file\n-----------------------------------\nconst a: { [key: string]: () => string } = null;\nconst b: { [key: string]: [string, () => string] } = null;\nconst c = \"foobar\";\nconst d = 5;\nconst e: any = null;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const a: { [key: string]: () => string } = null;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.brace.square.ts\n             ^^^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts variable.parameter.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts\n                  ^^^^^^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.brace.square.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts\n                              ^^\n                              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.return.ts\n                                 ^^^^^^\n                                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.return.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.return.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                                          ^\n                                          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                           ^\n                                           source.ts meta.var.expr.ts\n                                            ^^^^\n                                            source.ts meta.var.expr.ts constant.language.null.ts\n                                                ^\n                                                source.ts punctuation.terminator.statement.ts\n>const b: { [key: string]: [string, () => string] } = null;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.brace.square.ts\n             ^^^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts variable.parameter.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts\n                  ^^^^^^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.brace.square.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                            ^^^^^^\n                            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts\n                                       ^^\n                                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.type.function.return.ts\n                                          ^^^^^^\n                                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.type.function.return.ts support.type.primitive.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts\n                                                      ^^^^\n                                                      source.ts meta.var.expr.ts constant.language.null.ts\n                                                          ^\n                                                          source.ts punctuation.terminator.statement.ts\n>const c = \"foobar\";\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n            ^^^^^^\n            source.ts meta.var.expr.ts string.quoted.double.ts\n                  ^\n                  source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>const d = 5;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts constant.numeric.decimal.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>const e: any = null;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n          ^^^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^^^^\n                source.ts meta.var.expr.ts constant.language.null.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue180.baseline.txt",
    "content": "original file\n-----------------------------------\nif (typeof oSettings.aanFeatures.f != 'undefined')\n{\n    var n = oSettings.aanFeatures.f;\n    for ( i=0, iLen=n.length ; i<iLen ; i++ )\n    {\n        $('input', n[i]).val( '' );\n    }\n}\n\n/* some comment\n *\n */\nfor ( i=0, iLen=oSettings.aoPreSearchCols.length ; i<iLen ; i++)\n{\n    oSetttings.something = \"\";\n}\n\n/* redraw */\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>if (typeof oSettings.aanFeatures.f != 'undefined')\n ^^\n source.ts keyword.control.conditional.ts\n   ^\n   source.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^^^^^^\n     source.ts keyword.operator.expression.typeof.ts\n           ^\n           source.ts\n            ^^^^^^^^^\n            source.ts variable.other.object.ts\n                     ^\n                     source.ts punctuation.accessor.ts\n                      ^^^^^^^^^^^\n                      source.ts variable.other.object.property.ts\n                                 ^\n                                 source.ts punctuation.accessor.ts\n                                  ^\n                                  source.ts variable.other.property.ts\n                                   ^\n                                   source.ts\n                                    ^^\n                                    source.ts keyword.operator.comparison.ts\n                                      ^\n                                      source.ts\n                                       ^\n                                       source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                        ^^^^^^^^^\n                                        source.ts string.quoted.single.ts\n                                                 ^\n                                                 source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                  ^\n                                                  source.ts meta.brace.round.ts\n>{\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n>    var n = oSettings.aanFeatures.f;\n ^^^^\n source.ts meta.block.ts\n     ^^^\n     source.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.block.ts meta.var.expr.ts\n         ^\n         source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^^^\n             source.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                      ^\n                      source.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^^^^^^^^^^^\n                       source.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                                  ^\n                                  source.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                   ^\n                                   source.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                    ^\n                                    source.ts meta.block.ts punctuation.terminator.statement.ts\n>    for ( i=0, iLen=n.length ; i<iLen ; i++ )\n ^^^^\n source.ts meta.block.ts\n     ^^^\n     source.ts meta.block.ts keyword.control.loop.ts\n        ^\n        source.ts meta.block.ts\n         ^\n         source.ts meta.block.ts meta.brace.round.ts\n          ^\n          source.ts meta.block.ts\n           ^\n           source.ts meta.block.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.block.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.block.ts constant.numeric.decimal.ts\n              ^\n              source.ts meta.block.ts punctuation.separator.comma.ts\n               ^\n               source.ts meta.block.ts\n                ^^^^\n                source.ts meta.block.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.block.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.block.ts variable.other.object.ts\n                      ^\n                      source.ts meta.block.ts punctuation.accessor.ts\n                       ^^^^^^\n                       source.ts meta.block.ts support.variable.property.ts\n                             ^\n                             source.ts meta.block.ts\n                              ^\n                              source.ts meta.block.ts punctuation.terminator.statement.ts\n                               ^\n                               source.ts meta.block.ts\n                                ^\n                                source.ts meta.block.ts variable.other.readwrite.ts\n                                 ^\n                                 source.ts meta.block.ts keyword.operator.relational.ts\n                                  ^^^^\n                                  source.ts meta.block.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts\n                                       ^\n                                       source.ts meta.block.ts punctuation.terminator.statement.ts\n                                        ^\n                                        source.ts meta.block.ts\n                                         ^\n                                         source.ts meta.block.ts variable.other.readwrite.ts\n                                          ^^\n                                          source.ts meta.block.ts keyword.operator.increment.ts\n                                            ^\n                                            source.ts meta.block.ts\n                                             ^\n                                             source.ts meta.block.ts meta.brace.round.ts\n>    {\n ^^^^\n source.ts meta.block.ts\n     ^\n     source.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>        $('input', n[i]).val( '' );\n ^^^^^^^^\n source.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.block.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n          ^\n          source.ts meta.block.ts meta.block.ts meta.brace.round.ts\n           ^\n           source.ts meta.block.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n            ^^^^^\n            source.ts meta.block.ts meta.block.ts string.quoted.single.ts\n                 ^\n                 source.ts meta.block.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                  ^\n                  source.ts meta.block.ts meta.block.ts punctuation.separator.comma.ts\n                   ^\n                   source.ts meta.block.ts meta.block.ts\n                    ^\n                    source.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                      ^\n                      source.ts meta.block.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                        ^\n                        source.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                          ^^^\n                          source.ts meta.block.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                             ^\n                             source.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.block.ts meta.block.ts\n                               ^\n                               source.ts meta.block.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                ^\n                                source.ts meta.block.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                 ^\n                                 source.ts meta.block.ts meta.block.ts\n                                  ^\n                                  source.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.block.ts meta.block.ts\n     ^\n     source.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>/* some comment\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^\n   source.ts comment.block.ts\n> *\n ^^^\n source.ts comment.block.ts\n> */\n ^\n source.ts comment.block.ts\n  ^^\n  source.ts comment.block.ts punctuation.definition.comment.ts\n>for ( i=0, iLen=oSettings.aoPreSearchCols.length ; i<iLen ; i++)\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^\n      source.ts\n       ^\n       source.ts variable.other.readwrite.ts\n        ^\n        source.ts keyword.operator.assignment.ts\n         ^\n         source.ts constant.numeric.decimal.ts\n          ^\n          source.ts punctuation.separator.comma.ts\n           ^\n           source.ts\n            ^^^^\n            source.ts variable.other.readwrite.ts\n                ^\n                source.ts keyword.operator.assignment.ts\n                 ^^^^^^^^^\n                 source.ts variable.other.object.ts\n                          ^\n                          source.ts punctuation.accessor.ts\n                           ^^^^^^^^^^^^^^^\n                           source.ts variable.other.object.property.ts\n                                          ^\n                                          source.ts punctuation.accessor.ts\n                                           ^^^^^^\n                                           source.ts support.variable.property.ts\n                                                 ^\n                                                 source.ts\n                                                  ^\n                                                  source.ts punctuation.terminator.statement.ts\n                                                   ^\n                                                   source.ts\n                                                    ^\n                                                    source.ts variable.other.readwrite.ts\n                                                     ^\n                                                     source.ts keyword.operator.relational.ts\n                                                      ^^^^\n                                                      source.ts variable.other.readwrite.ts\n                                                          ^\n                                                          source.ts\n                                                           ^\n                                                           source.ts punctuation.terminator.statement.ts\n                                                            ^\n                                                            source.ts\n                                                             ^\n                                                             source.ts variable.other.readwrite.ts\n                                                              ^^\n                                                              source.ts keyword.operator.increment.ts\n                                                                ^\n                                                                source.ts meta.brace.round.ts\n>{\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n>    oSetttings.something = \"\";\n ^^^^\n source.ts meta.block.ts\n     ^^^^^^^^^^\n     source.ts meta.block.ts variable.other.object.ts\n               ^\n               source.ts meta.block.ts punctuation.accessor.ts\n                ^^^^^^^^^\n                source.ts meta.block.ts variable.other.property.ts\n                         ^\n                         source.ts meta.block.ts\n                          ^\n                          source.ts meta.block.ts keyword.operator.assignment.ts\n                           ^\n                           source.ts meta.block.ts\n                            ^\n                            source.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                             ^\n                             source.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                              ^\n                              source.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>/* redraw */\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^^^^^^^^\n   source.ts comment.block.ts\n           ^^\n           source.ts comment.block.ts punctuation.definition.comment.ts"
  },
  {
    "path": "tests/baselines/Issue182.baseline.txt",
    "content": "original file\n-----------------------------------\nif (this.PListCells.length<value && (!this.ListList || !this.DelayedUpdate))\n{\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>if (this.PListCells.length<value && (!this.ListList || !this.DelayedUpdate))\n ^^\n source.ts keyword.control.conditional.ts\n   ^\n   source.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^^^^\n     source.ts variable.language.this.ts\n         ^\n         source.ts punctuation.accessor.ts\n          ^^^^^^^^^^\n          source.ts variable.other.object.property.ts\n                    ^\n                    source.ts punctuation.accessor.ts\n                     ^^^^^^\n                     source.ts support.variable.property.ts\n                           ^\n                           source.ts keyword.operator.relational.ts\n                            ^^^^^\n                            source.ts variable.other.readwrite.ts\n                                 ^\n                                 source.ts\n                                  ^^\n                                  source.ts keyword.operator.logical.ts\n                                    ^\n                                    source.ts\n                                     ^\n                                     source.ts meta.brace.round.ts\n                                      ^\n                                      source.ts keyword.operator.logical.ts\n                                       ^^^^\n                                       source.ts variable.language.this.ts\n                                           ^\n                                           source.ts punctuation.accessor.ts\n                                            ^^^^^^^^\n                                            source.ts variable.other.property.ts\n                                                    ^\n                                                    source.ts\n                                                     ^^\n                                                     source.ts keyword.operator.logical.ts\n                                                       ^\n                                                       source.ts\n                                                        ^\n                                                        source.ts keyword.operator.logical.ts\n                                                         ^^^^\n                                                         source.ts variable.language.this.ts\n                                                             ^\n                                                             source.ts punctuation.accessor.ts\n                                                              ^^^^^^^^^^^^^\n                                                              source.ts variable.other.property.ts\n                                                                           ^\n                                                                           source.ts meta.brace.round.ts\n                                                                            ^\n                                                                            source.ts meta.brace.round.ts\n>{\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue183.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Sample2\n{\n    constructor()\n    {\n    }\n\n    callback = (): void =>\n    {\n    }\n\n    public method1(): void\n    {\n    }\n    private method2 () : number\n    {\n        return 2;\n    }\n    method3 () : string\n    {\n        return \"method3\";\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Sample2\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n>{\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>    constructor()\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>    {\n ^^^^\n source.ts meta.class.ts\n     ^\n     source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>    callback = (): void =>\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.return.type.arrow.ts\n                    ^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.return.type.arrow.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.return.type.arrow.ts\n                         ^^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts storage.type.function.arrow.ts\n>    {\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>    public method1(): void\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n>    {\n ^^^^\n source.ts meta.class.ts\n     ^\n     source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>    private method2 () : number\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                          ^^^^^^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n>    {\n ^^^^\n source.ts meta.class.ts\n     ^\n     source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>        return 2;\n ^^^^^^^^\n source.ts meta.class.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.class.ts meta.block.ts\n                ^\n                source.ts meta.class.ts meta.block.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.class.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>    method3 () : string\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                  ^^^^^^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n>    {\n ^^^^\n source.ts meta.class.ts\n     ^\n     source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>        return \"method3\";\n ^^^^^^^^\n source.ts meta.class.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.class.ts meta.block.ts\n                ^\n                source.ts meta.class.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                 ^^^^^^^\n                 source.ts meta.class.ts meta.block.ts string.quoted.double.ts\n                        ^\n                        source.ts meta.class.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                         ^\n                         source.ts meta.class.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue186.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction myFunction(param1, param2, number, string, boolean) {\n  let y = (number) => {\n    console.log(param1);\n  }\n  console.log(param1);\n  console.log(param1 + number);\n  console.log(string);\n  console.log(boolean);\n  let x = param1 ? 2 : param2;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function myFunction(param1, param2, number, string, boolean) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                     ^^^^^^\n                     source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                           ^\n                           source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                            ^\n                            source.ts meta.function.ts meta.parameters.ts\n                             ^^^^^^\n                             source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                   ^\n                                   source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                    ^\n                                    source.ts meta.function.ts meta.parameters.ts\n                                     ^^^^^^\n                                     source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                           ^\n                                           source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                            ^\n                                            source.ts meta.function.ts meta.parameters.ts\n                                             ^^^^^^\n                                             source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.parameters.ts\n                                                     ^^^^^^^\n                                                     source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                             ^\n                                                             source.ts meta.function.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  let y = (number) => {\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^\n   source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n       ^\n       source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts entity.name.function.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^^^^^^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts\n                    ^^\n                    source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    console.log(param1);\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^^^^^^^\n     source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.class.console.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n             ^^^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                 ^^^^^^\n                 source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>  }\n ^^\n source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^\n   source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>  console.log(param1);\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^^\n   source.ts meta.function.ts meta.block.ts meta.function-call.ts support.class.console.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n           ^^^\n           source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.console.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n               ^^^^^^\n               source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>  console.log(param1 + number);\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^^\n   source.ts meta.function.ts meta.block.ts meta.function-call.ts support.class.console.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n           ^^^\n           source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.console.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n               ^^^^^^\n               source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts keyword.operator.arithmetic.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts\n                        ^^^^^^\n                        source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>  console.log(string);\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^^\n   source.ts meta.function.ts meta.block.ts meta.function-call.ts support.class.console.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n           ^^^\n           source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.console.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n               ^^^^^^\n               source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>  console.log(boolean);\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^^\n   source.ts meta.function.ts meta.block.ts meta.function-call.ts support.class.console.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n           ^^^\n           source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.console.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n               ^^^^^^^\n               source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>  let x = param1 ? 2 : param2;\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^\n   source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n       ^\n       source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n           ^^^^^^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.ternary.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.ternary.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                        ^^^^^^\n                        source.ts meta.function.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue187.baseline.txt",
    "content": "original file\n-----------------------------------\nconst trim = module.exports = str => trim.trailing(trim.leading(str));\n\nconst trim = module.exports = function(str) {\n    return  trim.trailing(trim.leading(str));\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const trim = module.exports = str => trim.trailing(trim.leading(str));\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^^^^\n              source.ts meta.var.expr.ts support.type.object.module.ts\n                    ^\n                    source.ts meta.var.expr.ts punctuation.accessor.ts\n                     ^^^^^^^\n                     source.ts meta.var.expr.ts support.type.object.module.ts\n                            ^\n                            source.ts meta.var.expr.ts\n                             ^\n                             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                              ^\n                              source.ts meta.var.expr.ts\n                               ^^^\n                               source.ts meta.var.expr.ts meta.arrow.ts variable.parameter.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.arrow.ts\n                                   ^^\n                                   source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.arrow.ts\n                                      ^^^^\n                                      source.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                           ^^^^^^^^\n                                           source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts meta.brace.round.ts\n                                                    ^^^^\n                                                    source.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                                                        ^\n                                                        source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                                         ^^^^^^^\n                                                         source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                                                ^\n                                                                source.ts meta.var.expr.ts meta.brace.round.ts\n                                                                 ^^^\n                                                                 source.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                                    ^\n                                                                    source.ts meta.var.expr.ts meta.brace.round.ts\n                                                                     ^\n                                                                     source.ts meta.var.expr.ts meta.brace.round.ts\n                                                                      ^\n                                                                      source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>const trim = module.exports = function(str) {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^^^^\n              source.ts meta.var.expr.ts support.type.object.module.ts\n                    ^\n                    source.ts meta.var.expr.ts punctuation.accessor.ts\n                     ^^^^^^^\n                     source.ts meta.var.expr.ts support.type.object.module.ts\n                            ^\n                            source.ts meta.var.expr.ts\n                             ^\n                             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                              ^\n                              source.ts meta.var.expr.ts\n                               ^^^^^^^^\n                               source.ts meta.var.expr.ts meta.function.expression.ts storage.type.function.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                        ^^^\n                                        source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.function.expression.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>    return  trim.trailing(trim.leading(str));\n ^^^^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts keyword.control.flow.ts\n           ^^\n           source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n             ^^^^\n             source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                  ^^^^^^^^\n                  source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                           ^^^^\n                           source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                ^^^^^^^\n                                source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                        ^^^\n                                        source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue191.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Thing {\n    constructor(public content: string){\n        var prop = Q.defer<boolean>();\n        this.store = new Data();\n        gaze(path.join(this.content, \"**/*.json\"), (err, watch) => {\n            process.stuout.write(`Watching for changes in:`);\n        })\n    };\n}\n\nclass Thing<T, U> {\n    constructor(public content: string){\n        var prop = Q.defer<boolean>();\n        this.store = new Data();\n        gaze(path.join(this.content, \"**/*.json\"), (err, watch) => {\n            process.stuout.write(`Watching for changes in:`);\n        })\n    };\n}\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Thing {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n            ^\n            source.ts meta.class.ts\n             ^\n             source.ts meta.class.ts punctuation.definition.block.ts\n>    constructor(public content: string){\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts storage.modifier.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                        ^^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                 ^^^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        var prop = Q.defer<boolean>();\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.constant.object.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                      ^^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                            ^^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>        this.store = new Data();\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n              ^^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                      ^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts\n                          ^^^^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>        gaze(path.join(this.content, \"**/*.json\"), (err, watch) => {\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n              ^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts support.function.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                        ^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n                             ^^^^^^^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts support.variable.property.dom.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.separator.comma.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                       ^^^^^^^^^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.separator.comma.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                     ^^^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts\n                                                          ^^^^^\n                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                                               ^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                ^\n                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts\n                                                                 ^^\n                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                                   ^\n                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts\n                                                                    ^\n                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>            process.stuout.write(`Watching for changes in:`);\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.variable.object.process.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                     ^^^^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts variable.other.object.property.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.function.dom.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                   ^^^^^^^^^^^^^^^^^^^^^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts string.template.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>        })\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n>    };\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>class Thing<T, U> {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n            ^\n            source.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n             ^\n             source.ts meta.class.ts meta.type.parameters.ts entity.name.type.ts\n              ^\n              source.ts meta.class.ts meta.type.parameters.ts punctuation.separator.comma.ts\n               ^\n               source.ts meta.class.ts meta.type.parameters.ts\n                ^\n                source.ts meta.class.ts meta.type.parameters.ts entity.name.type.ts\n                 ^\n                 source.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                  ^\n                  source.ts meta.class.ts\n                   ^\n                   source.ts meta.class.ts punctuation.definition.block.ts\n>    constructor(public content: string){\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts storage.modifier.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                        ^^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                 ^^^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        var prop = Q.defer<boolean>();\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.constant.object.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                      ^^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                            ^^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>        this.store = new Data();\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n              ^^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                      ^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts\n                          ^^^^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>        gaze(path.join(this.content, \"**/*.json\"), (err, watch) => {\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n              ^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts support.function.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                        ^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n                             ^^^^^^^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts support.variable.property.dom.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.separator.comma.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                       ^^^^^^^^^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.separator.comma.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                     ^^^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts\n                                                          ^^^^^\n                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                                               ^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                ^\n                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts\n                                                                 ^^\n                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                                   ^\n                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts\n                                                                    ^\n                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>            process.stuout.write(`Watching for changes in:`);\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.variable.object.process.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                     ^^^^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts variable.other.object.property.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.function.dom.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                   ^^^^^^^^^^^^^^^^^^^^^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts string.template.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>        })\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n>    };\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue193.baseline.txt",
    "content": "original file\n-----------------------------------\n﻿function Main_Функция(s: string)\n{\n}\n\nfunction Функция_Main(s: string)\n{\n}\n\nlet item = \"value1\";\nlet элемент = \"value2\";\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>﻿function Main_Функция(s: string)\n ^\n source.ts\n  ^^^^^^^^\n  source.ts meta.function.ts storage.type.function.ts\n          ^\n          source.ts meta.function.ts\n           ^^^^^^^^^^^^\n           source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                           ^^^^^^\n                           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>{\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>function Функция_Main(s: string)\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                          ^^^^^^\n                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>{\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>let item = \"value1\";\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n             ^^^^^^\n             source.ts meta.var.expr.ts string.quoted.double.ts\n                   ^\n                   source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n>let элемент = \"value2\";\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                ^^^^^^\n                source.ts meta.var.expr.ts string.quoted.double.ts\n                      ^\n                      source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue197.baseline.txt",
    "content": "original file\n-----------------------------------\n export class sampleClass  {\n        public equipmentTypeList: string[] = [\"FAX\", \"OFFICE PHONE\"];\n        public pbxEquipmentType = \"FAX\";\n        public spliceRightStripName = \"TE\"; \n        public cablePairStatusValues: any[] =  \n            [       \n                { statusText: \"Assigned\" },\n                { statusText: \"Faulty\" }, \n                { statusText: \"Not in Use\" },\n            ];\n        public cablePairStatusValueForAssigned = \"Assigned\";\n        public cablePairStatusValueForFaulty = \"Faulty\";\n        public phoneCircuitType = \"Phone\";\n }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n> export class sampleClass  {\n ^\n source.ts\n  ^^^^^^\n  source.ts meta.class.ts keyword.control.export.ts\n        ^\n        source.ts meta.class.ts\n         ^^^^^\n         source.ts meta.class.ts storage.type.class.ts\n              ^\n              source.ts meta.class.ts\n               ^^^^^^^^^^^\n               source.ts meta.class.ts entity.name.type.class.ts\n                          ^^\n                          source.ts meta.class.ts\n                            ^\n                            source.ts meta.class.ts punctuation.definition.block.ts\n>        public equipmentTypeList: string[] = [\"FAX\", \"OFFICE PHONE\"];\n ^^^^^^^^\n source.ts meta.class.ts\n         ^^^^^^\n         source.ts meta.class.ts storage.modifier.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^^^^^^^^^^^^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                  ^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                                   ^^^^^^\n                                   source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                         ^\n                                         source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                          ^\n                                          source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                           ^\n                                           source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                                            ^\n                                            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                             ^\n                                             source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                                              ^\n                                              source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                                               ^\n                                               source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                ^^^\n                                                source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.double.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                       ^^^^^^^^^^^^\n                                                       source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.double.ts\n                                                                   ^\n                                                                   source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                    ^\n                                                                    source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                                                                     ^\n                                                                     source.ts meta.class.ts punctuation.terminator.statement.ts\n>        public pbxEquipmentType = \"FAX\";\n ^^^^^^^^\n source.ts meta.class.ts\n         ^^^^^^\n         source.ts meta.class.ts storage.modifier.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^^^^^^^^^^^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                  ^\n                                  source.ts meta.class.ts meta.field.declaration.ts\n                                   ^\n                                   source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                    ^^^\n                                    source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts\n                                       ^\n                                       source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>        public spliceRightStripName = \"TE\"; \n ^^^^^^^^\n source.ts meta.class.ts\n         ^^^^^^\n         source.ts meta.class.ts storage.modifier.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^^^^^^^^^^^^^^^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                    ^\n                                    source.ts meta.class.ts meta.field.declaration.ts\n                                     ^\n                                     source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                      ^\n                                      source.ts meta.class.ts meta.field.declaration.ts\n                                       ^\n                                       source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                        ^^\n                                        source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts\n                                          ^\n                                          source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                           ^\n                                           source.ts meta.class.ts punctuation.terminator.statement.ts\n                                            ^^\n                                            source.ts meta.class.ts\n>        public cablePairStatusValues: any[] =  \n ^^^^^^^^\n source.ts meta.class.ts\n         ^^^^^^\n         source.ts meta.class.ts storage.modifier.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^^^^^^^^^^^^^^^^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                     ^\n                                     source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                      ^\n                                      source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                                       ^^^\n                                       source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                          ^\n                                          source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                           ^\n                                           source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                            ^\n                                            source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                                             ^\n                                             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                              ^^^\n                                              source.ts meta.class.ts meta.field.declaration.ts\n>            [       \n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n              ^^^^^^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n>                { statusText: \"Assigned\" },\n ^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts\n                   ^^^^^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                ^^^^^^^^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                                        ^\n                                        source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                         ^\n                                         source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                          ^\n                                          source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                           ^\n                                           source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts punctuation.separator.comma.ts\n>                { statusText: \"Faulty\" }, \n ^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts\n                   ^^^^^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                ^^^^^^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                                      ^\n                                      source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                       ^\n                                       source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                        ^\n                                        source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                         ^\n                                         source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                          ^^\n                                          source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n>                { statusText: \"Not in Use\" },\n ^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts\n                   ^^^^^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                ^^^^^^^^^^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                                          ^\n                                          source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                           ^\n                                           source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                            ^\n                                            source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                             ^\n                                             source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts punctuation.separator.comma.ts\n>            ];\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n              ^\n              source.ts meta.class.ts punctuation.terminator.statement.ts\n>        public cablePairStatusValueForAssigned = \"Assigned\";\n ^^^^^^^^\n source.ts meta.class.ts\n         ^^^^^^\n         source.ts meta.class.ts storage.modifier.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                               ^\n                                               source.ts meta.class.ts meta.field.declaration.ts\n                                                ^\n                                                source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.field.declaration.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                   ^^^^^^^^\n                                                   source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                            ^\n                                                            source.ts meta.class.ts punctuation.terminator.statement.ts\n>        public cablePairStatusValueForFaulty = \"Faulty\";\n ^^^^^^^^\n source.ts meta.class.ts\n         ^^^^^^\n         source.ts meta.class.ts storage.modifier.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                             ^\n                                             source.ts meta.class.ts meta.field.declaration.ts\n                                              ^\n                                              source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                               ^\n                                               source.ts meta.class.ts meta.field.declaration.ts\n                                                ^\n                                                source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                 ^^^^^^\n                                                 source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                        ^\n                                                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>        public phoneCircuitType = \"Phone\";\n ^^^^^^^^\n source.ts meta.class.ts\n         ^^^^^^\n         source.ts meta.class.ts storage.modifier.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^^^^^^^^^^^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                  ^\n                                  source.ts meta.class.ts meta.field.declaration.ts\n                                   ^\n                                   source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                    ^^^^^\n                                    source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts\n                                         ^\n                                         source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                          ^\n                                          source.ts meta.class.ts punctuation.terminator.statement.ts\n> }\n ^\n source.ts meta.class.ts\n  ^\n  source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue198.baseline.txt",
    "content": "original file\n-----------------------------------\nlet a = 0, b = 0, c = 0;\nlet value = a / b\n    / c;\nlet value2 = a / b\n    / c * a + b / a / b / c;\nlet value2 = a / b / c * a + b / a / b / c;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let a = 0, b = 0, c = 0;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts constant.numeric.decimal.ts\n          ^\n          source.ts meta.var.expr.ts punctuation.separator.comma.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^\n                source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts\n>let value = a / b\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts variable.other.readwrite.ts\n>    / c;\n ^^^^\n source.ts\n     ^\n     source.ts keyword.operator.arithmetic.ts\n      ^\n      source.ts\n       ^\n       source.ts variable.other.readwrite.ts\n        ^\n        source.ts punctuation.terminator.statement.ts\n>let value2 = a / b\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts variable.other.readwrite.ts\n>    / c * a + b / a / b / c;\n ^^^^\n source.ts\n     ^\n     source.ts keyword.operator.arithmetic.ts\n      ^\n      source.ts\n       ^\n       source.ts variable.other.readwrite.ts\n        ^\n        source.ts\n         ^\n         source.ts keyword.operator.arithmetic.ts\n          ^\n          source.ts\n           ^\n           source.ts variable.other.readwrite.ts\n            ^\n            source.ts\n             ^\n             source.ts keyword.operator.arithmetic.ts\n              ^\n              source.ts\n               ^\n               source.ts variable.other.readwrite.ts\n                ^\n                source.ts\n                 ^\n                 source.ts keyword.operator.arithmetic.ts\n                  ^\n                  source.ts\n                   ^\n                   source.ts variable.other.readwrite.ts\n                    ^\n                    source.ts\n                     ^\n                     source.ts keyword.operator.arithmetic.ts\n                      ^\n                      source.ts\n                       ^\n                       source.ts variable.other.readwrite.ts\n                        ^\n                        source.ts\n                         ^\n                         source.ts keyword.operator.arithmetic.ts\n                          ^\n                          source.ts\n                           ^\n                           source.ts variable.other.readwrite.ts\n                            ^\n                            source.ts punctuation.terminator.statement.ts\n>let value2 = a / b / c * a + b / a / b / c;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.var.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.var.expr.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.var.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                         ^\n                         source.ts meta.var.expr.ts\n                          ^\n                          source.ts meta.var.expr.ts variable.other.readwrite.ts\n                           ^\n                           source.ts meta.var.expr.ts\n                            ^\n                            source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                             ^\n                             source.ts meta.var.expr.ts\n                              ^\n                              source.ts meta.var.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.var.expr.ts\n                                ^\n                                source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                 ^\n                                 source.ts meta.var.expr.ts\n                                  ^\n                                  source.ts meta.var.expr.ts variable.other.readwrite.ts\n                                   ^\n                                   source.ts meta.var.expr.ts\n                                    ^\n                                    source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                     ^\n                                     source.ts meta.var.expr.ts\n                                      ^\n                                      source.ts meta.var.expr.ts variable.other.readwrite.ts\n                                       ^\n                                       source.ts meta.var.expr.ts\n                                        ^\n                                        source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                         ^\n                                         source.ts meta.var.expr.ts\n                                          ^\n                                          source.ts meta.var.expr.ts variable.other.readwrite.ts\n                                           ^\n                                           source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue200.baseline.txt",
    "content": "original file\n-----------------------------------\n\n\ndeclare module 'goog:goog.i18n.NumberFormatSymbols_en_TT' {\n  import alias = lool.clutz.goog.i18n.NumberFormatSymbols_en_TT;\n  export default alias;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>\n ^\n source.ts\n>\n ^\n source.ts\n>declare module 'goog:goog.i18n.NumberFormatSymbols_en_TT' {\n ^^^^^^^\n source.ts meta.namespace.declaration.ts storage.modifier.ts\n        ^\n        source.ts meta.namespace.declaration.ts\n         ^^^^^^\n         source.ts meta.namespace.declaration.ts storage.type.namespace.ts\n               ^\n               source.ts meta.namespace.declaration.ts\n                ^\n                source.ts meta.namespace.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.namespace.declaration.ts string.quoted.single.ts\n                                                         ^\n                                                         source.ts meta.namespace.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                          ^\n                                                          source.ts meta.namespace.declaration.ts\n                                                           ^\n                                                           source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>  import alias = lool.clutz.goog.i18n.NumberFormatSymbols_en_TT;\n ^^\n source.ts meta.namespace.declaration.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts keyword.control.import.ts\n         ^\n         source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts\n          ^^^^^\n          source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts variable.other.readwrite.alias.ts\n               ^\n               source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts\n                ^\n                source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts\n                  ^^^^\n                  source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts entity.name.type.module.ts\n                      ^\n                      source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts punctuation.accessor.ts\n                       ^^^^^\n                       source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts entity.name.type.module.ts\n                            ^\n                            source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts punctuation.accessor.ts\n                             ^^^^\n                             source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts entity.name.type.module.ts\n                                 ^\n                                 source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts punctuation.accessor.ts\n                                  ^^^^\n                                  source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts entity.name.type.module.ts\n                                      ^\n                                      source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts punctuation.accessor.ts\n                                       ^^^^^^^^^^^^^^^^^^^^^^^^^\n                                       source.ts meta.namespace.declaration.ts meta.block.ts meta.import-equals.internal.ts variable.other.readwrite.ts\n                                                                ^\n                                                                source.ts meta.namespace.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>  export default alias;\n ^^\n source.ts meta.namespace.declaration.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.namespace.declaration.ts meta.block.ts meta.export.default.ts keyword.control.export.ts\n         ^\n         source.ts meta.namespace.declaration.ts meta.block.ts meta.export.default.ts\n          ^^^^^^^\n          source.ts meta.namespace.declaration.ts meta.block.ts meta.export.default.ts keyword.control.default.ts\n                 ^\n                 source.ts meta.namespace.declaration.ts meta.block.ts meta.export.default.ts\n                  ^^^^^\n                  source.ts meta.namespace.declaration.ts meta.block.ts meta.export.default.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.namespace.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue202.baseline.txt",
    "content": "original file\n-----------------------------------\ninterface Test<T> {\n    test: T;\n}\n\ninterface Props {\n    prop: Test<T>;\n}\n\nclass Whatever {\n}\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>interface Test<T> {\n ^^^^^^^^^\n source.tsx meta.interface.tsx storage.type.interface.tsx\n          ^\n          source.tsx meta.interface.tsx\n           ^^^^\n           source.tsx meta.interface.tsx entity.name.type.interface.tsx\n               ^\n               source.tsx meta.interface.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n                ^\n                source.tsx meta.interface.tsx meta.type.parameters.tsx entity.name.type.tsx\n                 ^\n                 source.tsx meta.interface.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n                  ^\n                  source.tsx meta.interface.tsx\n                   ^\n                   source.tsx meta.interface.tsx punctuation.definition.block.tsx\n>    test: T;\n ^^^^\n source.tsx meta.interface.tsx meta.field.declaration.tsx\n     ^^^^\n     source.tsx meta.interface.tsx meta.field.declaration.tsx meta.definition.property.tsx variable.object.property.tsx\n         ^\n         source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n          ^\n          source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx\n           ^\n           source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx entity.name.type.tsx\n            ^\n            source.tsx meta.interface.tsx punctuation.terminator.statement.tsx\n>}\n ^\n source.tsx meta.interface.tsx punctuation.definition.block.tsx\n>\n ^\n source.tsx\n>interface Props {\n ^^^^^^^^^\n source.tsx meta.interface.tsx storage.type.interface.tsx\n          ^\n          source.tsx meta.interface.tsx\n           ^^^^^\n           source.tsx meta.interface.tsx entity.name.type.interface.tsx\n                ^\n                source.tsx meta.interface.tsx\n                 ^\n                 source.tsx meta.interface.tsx punctuation.definition.block.tsx\n>    prop: Test<T>;\n ^^^^\n source.tsx meta.interface.tsx meta.field.declaration.tsx\n     ^^^^\n     source.tsx meta.interface.tsx meta.field.declaration.tsx meta.definition.property.tsx variable.object.property.tsx\n         ^\n         source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n          ^\n          source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx\n           ^^^^\n           source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx entity.name.type.tsx\n               ^\n               source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n                ^\n                source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx entity.name.type.tsx\n                 ^\n                 source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n                  ^\n                  source.tsx meta.interface.tsx punctuation.terminator.statement.tsx\n>}\n ^\n source.tsx meta.interface.tsx punctuation.definition.block.tsx\n>\n ^\n source.tsx\n>class Whatever {\n ^^^^^\n source.tsx meta.class.tsx storage.type.class.tsx\n      ^\n      source.tsx meta.class.tsx\n       ^^^^^^^^\n       source.tsx meta.class.tsx entity.name.type.class.tsx\n               ^\n               source.tsx meta.class.tsx\n                ^\n                source.tsx meta.class.tsx punctuation.definition.block.tsx\n>}\n ^\n source.tsx meta.class.tsx punctuation.definition.block.tsx"
  },
  {
    "path": "tests/baselines/Issue203.baseline.txt",
    "content": "original file\n-----------------------------------\nvar [] = 'fafa'.replace('blah');\nconsole.log('hello');\n\nvar [] = 'fafa'.replace('<blah>');\nconsole.log('hello');\nwhile { while() {} }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var [] = 'fafa'.replace('blah');\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n      ^\n      source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n       ^\n       source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n        ^\n        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n           ^^^^\n           source.ts meta.var.expr.ts string.quoted.single.ts\n               ^\n               source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                ^\n                source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^^\n                 source.ts meta.var.expr.ts meta.function-call.ts support.function.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                          ^^^^\n                          source.ts meta.var.expr.ts string.quoted.single.ts\n                              ^\n                              source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts punctuation.terminator.statement.ts\n>console.log('hello');\n ^^^^^^^\n source.ts meta.function-call.ts support.class.console.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^\n         source.ts meta.function-call.ts support.function.console.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n              ^^^^^\n              source.ts string.quoted.single.ts\n                   ^\n                   source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                    ^\n                    source.ts meta.brace.round.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>var [] = 'fafa'.replace('<blah>');\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n      ^\n      source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n       ^\n       source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n        ^\n        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n           ^^^^\n           source.ts meta.var.expr.ts string.quoted.single.ts\n               ^\n               source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                ^\n                source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^^\n                 source.ts meta.var.expr.ts meta.function-call.ts support.function.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                          ^^^^^^\n                          source.ts meta.var.expr.ts string.quoted.single.ts\n                                ^\n                                source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts punctuation.terminator.statement.ts\n>console.log('hello');\n ^^^^^^^\n source.ts meta.function-call.ts support.class.console.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^\n         source.ts meta.function-call.ts support.function.console.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n              ^^^^^\n              source.ts string.quoted.single.ts\n                   ^\n                   source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                    ^\n                    source.ts meta.brace.round.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n>while { while() {} }\n ^^^^^\n source.ts keyword.control.loop.ts\n      ^\n      source.ts\n       ^\n       source.ts meta.block.ts punctuation.definition.block.ts\n        ^\n        source.ts meta.block.ts\n         ^^^^^\n         source.ts meta.block.ts keyword.control.loop.ts\n              ^\n              source.ts meta.block.ts meta.brace.round.ts\n               ^\n               source.ts meta.block.ts meta.brace.round.ts\n                ^\n                source.ts meta.block.ts\n                 ^\n                 source.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n                   ^\n                   source.ts meta.block.ts\n                    ^\n                    source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue206.baseline.txt",
    "content": "original file\n-----------------------------------\ninterface A {}\ninterface B {}\ninterface C {}\n\ntype D = A | B | C\ntype D1 = A\n    | B\n    | C\ntype D3 = \n      A\n    | B\n    | C\ntype D2\n    = A\n    | B\n    | C\n\ntype E = 'e1' | 'e2' | 'e3'\ntype E1 = 'e1' \n    | 'e2' \n    | 'e3'\ntype E2 = \n      'e1' \n    | 'e2' \n    | 'e3'\ntype E3 \n    = 'e1' \n    | 'e2' \n    | 'e3'\n\ntype F = A & B & C\ntype F1 = A\n    & B\n    & C\ntype F2 =\n      A\n    & B\n    & C\ntype F3\n    = A\n    & B\n    & C\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>interface A {}\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^\n             source.ts meta.interface.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.interface.ts punctuation.definition.block.ts\n>interface B {}\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^\n             source.ts meta.interface.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.interface.ts punctuation.definition.block.ts\n>interface C {}\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^\n             source.ts meta.interface.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.interface.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>type D = A | B | C\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^\n        source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts entity.name.type.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^\n            source.ts meta.type.declaration.ts keyword.operator.type.ts\n             ^\n             source.ts meta.type.declaration.ts\n              ^\n              source.ts meta.type.declaration.ts entity.name.type.ts\n               ^\n               source.ts meta.type.declaration.ts\n                ^\n                source.ts meta.type.declaration.ts keyword.operator.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts entity.name.type.ts\n>type D1 = A\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts entity.name.type.ts\n>    | B\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts entity.name.type.ts\n>    | C\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts entity.name.type.ts\n>type D3 = \n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^^\n          source.ts meta.type.declaration.ts\n>      A\n ^^^^^^\n source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts entity.name.type.ts\n>    | B\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts entity.name.type.ts\n>    | C\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts entity.name.type.ts\n>type D2\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n>    = A\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts entity.name.type.ts\n>    | B\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts entity.name.type.ts\n>    | C\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts entity.name.type.ts\n>\n ^\n source.ts\n>type E = 'e1' | 'e2' | 'e3'\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^\n        source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n           ^^\n           source.ts meta.type.declaration.ts string.quoted.single.ts\n             ^\n             source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n              ^\n              source.ts meta.type.declaration.ts\n               ^\n               source.ts meta.type.declaration.ts keyword.operator.type.ts\n                ^\n                source.ts meta.type.declaration.ts\n                 ^\n                 source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                  ^^\n                  source.ts meta.type.declaration.ts string.quoted.single.ts\n                    ^\n                    source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                     ^\n                     source.ts meta.type.declaration.ts\n                      ^\n                      source.ts meta.type.declaration.ts keyword.operator.type.ts\n                       ^\n                       source.ts meta.type.declaration.ts\n                        ^\n                        source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                         ^^\n                         source.ts meta.type.declaration.ts string.quoted.single.ts\n                           ^\n                           source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>type E1 = 'e1' \n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n            ^^\n            source.ts meta.type.declaration.ts string.quoted.single.ts\n              ^\n              source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n               ^^\n               source.ts meta.type.declaration.ts\n>    | 'e2' \n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n        ^^\n        source.ts meta.type.declaration.ts string.quoted.single.ts\n          ^\n          source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n           ^^\n           source.ts meta.type.declaration.ts\n>    | 'e3'\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n        ^^\n        source.ts meta.type.declaration.ts string.quoted.single.ts\n          ^\n          source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>type E2 = \n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^^\n          source.ts meta.type.declaration.ts\n>      'e1' \n ^^^^^^\n source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n        ^^\n        source.ts meta.type.declaration.ts string.quoted.single.ts\n          ^\n          source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n           ^^\n           source.ts meta.type.declaration.ts\n>    | 'e2' \n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n        ^^\n        source.ts meta.type.declaration.ts string.quoted.single.ts\n          ^\n          source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n           ^^\n           source.ts meta.type.declaration.ts\n>    | 'e3'\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n        ^^\n        source.ts meta.type.declaration.ts string.quoted.single.ts\n          ^\n          source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>type E3 \n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^^\n        source.ts meta.type.declaration.ts\n>    = 'e1' \n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n        ^^\n        source.ts meta.type.declaration.ts string.quoted.single.ts\n          ^\n          source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n           ^^\n           source.ts meta.type.declaration.ts\n>    | 'e2' \n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n        ^^\n        source.ts meta.type.declaration.ts string.quoted.single.ts\n          ^\n          source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n           ^^\n           source.ts meta.type.declaration.ts\n>    | 'e3'\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n        ^^\n        source.ts meta.type.declaration.ts string.quoted.single.ts\n          ^\n          source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>\n ^\n source.ts\n>type F = A & B & C\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^\n        source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts entity.name.type.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^\n            source.ts meta.type.declaration.ts keyword.operator.type.ts\n             ^\n             source.ts meta.type.declaration.ts\n              ^\n              source.ts meta.type.declaration.ts entity.name.type.ts\n               ^\n               source.ts meta.type.declaration.ts\n                ^\n                source.ts meta.type.declaration.ts keyword.operator.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts entity.name.type.ts\n>type F1 = A\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts entity.name.type.ts\n>    & B\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts entity.name.type.ts\n>    & C\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts entity.name.type.ts\n>type F2 =\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n>      A\n ^^^^^^\n source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts entity.name.type.ts\n>    & B\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts entity.name.type.ts\n>    & C\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts entity.name.type.ts\n>type F3\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n>    = A\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts entity.name.type.ts\n>    & B\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts entity.name.type.ts\n>    & C\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts keyword.operator.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^\n       source.ts meta.type.declaration.ts entity.name.type.ts"
  },
  {
    "path": "tests/baselines/Issue208.baseline.txt",
    "content": "original file\n-----------------------------------\nvar someVar = new Thing<number, string>('data');\nvar someVar = makeThing<number, string>('data');\n\nclass MyClass {\n    static someProp = new Thing<number, string>('data');\n    static someProp = makeThing<number, string>('data');\n\n    someProp = new Thing<number, string>('data');\n    someProp = makeThing<number, string>('data');\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var someVar = new Thing<number, string>('data');\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^^\n               source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n                  ^\n                  source.ts meta.var.expr.ts new.expr.ts\n                   ^^^^^\n                   source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                        ^\n                        source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                         ^^^^^^\n                         source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                               ^\n                               source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                ^\n                                source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts\n                                 ^^^^^^\n                                 source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                        ^\n                                        source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.var.expr.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                          ^^^^\n                                          source.ts meta.var.expr.ts new.expr.ts string.quoted.single.ts\n                                              ^\n                                              source.ts meta.var.expr.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                               ^\n                                               source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                                ^\n                                                source.ts punctuation.terminator.statement.ts\n>var someVar = makeThing<number, string>('data');\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^^^^^^^^\n               source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                         ^^^^^^\n                         source.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.type.parameters.ts\n                                 ^^^^^^\n                                 source.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                          ^^^^\n                                          source.ts meta.var.expr.ts string.quoted.single.ts\n                                              ^\n                                              source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                               ^\n                                               source.ts meta.var.expr.ts meta.brace.round.ts\n                                                ^\n                                                source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>class MyClass {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n              ^\n              source.ts meta.class.ts\n               ^\n               source.ts meta.class.ts punctuation.definition.block.ts\n>    static someProp = new Thing<number, string>('data');\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^^^^^^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts\n                       ^^^\n                       source.ts meta.class.ts meta.field.declaration.ts new.expr.ts keyword.operator.new.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts new.expr.ts\n                           ^^^^^\n                           source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                 ^^^^^^\n                                 source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                        ^\n                                        source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.type.parameters.ts\n                                         ^^^^^^\n                                         source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                                               ^\n                                               source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                ^\n                                                source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.brace.round.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.field.declaration.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                  ^^^^\n                                                  source.ts meta.class.ts meta.field.declaration.ts new.expr.ts string.quoted.single.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.field.declaration.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>    static someProp = makeThing<number, string>('data');\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^^^^^^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts\n                       ^^^^^^^^^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                 ^^^^^^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                        ^\n                                        source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts\n                                         ^^^^^^\n                                         source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                               ^\n                                               source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                ^\n                                                source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.field.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                  ^^^^\n                                                  source.ts meta.class.ts meta.field.declaration.ts string.quoted.single.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.field.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    someProp = new Thing<number, string>('data');\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^^^\n                source.ts meta.class.ts meta.field.declaration.ts new.expr.ts keyword.operator.new.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts new.expr.ts\n                    ^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                          ^^^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.type.parameters.ts\n                                  ^^^^^^\n                                  source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                                        ^\n                                        source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                         ^\n                                         source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.field.declaration.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                           ^^^^\n                                           source.ts meta.class.ts meta.field.declaration.ts new.expr.ts string.quoted.single.ts\n                                               ^\n                                               source.ts meta.class.ts meta.field.declaration.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                ^\n                                                source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.brace.round.ts\n                                                 ^\n                                                 source.ts meta.class.ts punctuation.terminator.statement.ts\n>    someProp = makeThing<number, string>('data');\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^^^^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                          ^^^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts\n                                  ^^^^^^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                        ^\n                                        source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                         ^\n                                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.field.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                           ^^^^\n                                           source.ts meta.class.ts meta.field.declaration.ts string.quoted.single.ts\n                                               ^\n                                               source.ts meta.class.ts meta.field.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                ^\n                                                source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                                 ^\n                                                 source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue212.baseline.txt",
    "content": "original file\n-----------------------------------\nlet from = neki;\nfrom = a; // is a variable and should be in white color like other variables\n\nexports.myVar = async (ctx, next) => {} // this is all in white but exports and async should be e.g. in red or blue\n\nt.me = 1;\nt.is = 2; // `is` is in blue but should be the same color as the above (1)\nt.in = 3; // `in` is in blue but should be the same color as the above (1)\nt.of = 4; // `of` is in blue but should be the same color as the above (1)\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let from = neki;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^^^^\n            source.ts meta.var.expr.ts variable.other.readwrite.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>from = a; // is a variable and should be in white color like other variables\n ^^^^\n source.ts variable.other.readwrite.ts\n     ^\n     source.ts\n      ^\n      source.ts keyword.operator.assignment.ts\n       ^\n       source.ts\n        ^\n        source.ts variable.other.readwrite.ts\n         ^\n         source.ts punctuation.terminator.statement.ts\n          ^\n          source.ts\n           ^^\n           source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n             source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>exports.myVar = async (ctx, next) => {} // this is all in white but exports and async should be e.g. in red or blue\n ^^^^^^^\n source.ts support.type.object.module.ts\n        ^\n        source.ts punctuation.accessor.ts\n         ^^^^^\n         source.ts entity.name.function.ts\n              ^\n              source.ts\n               ^\n               source.ts keyword.operator.assignment.ts\n                ^\n                source.ts\n                 ^^^^^\n                 source.ts meta.arrow.ts storage.modifier.async.ts\n                      ^\n                      source.ts meta.arrow.ts\n                       ^\n                       source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                        ^^^\n                        source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                           ^\n                           source.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                            ^\n                            source.ts meta.arrow.ts meta.parameters.ts\n                             ^^^^\n                             source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                 ^\n                                 source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                  ^\n                                  source.ts meta.arrow.ts\n                                   ^^\n                                   source.ts meta.arrow.ts storage.type.function.arrow.ts\n                                     ^\n                                     source.ts meta.arrow.ts\n                                      ^\n                                      source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                                       ^\n                                       source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                                        ^\n                                        source.ts\n                                         ^^\n                                         source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                           source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>t.me = 1;\n ^\n source.ts variable.other.object.ts\n  ^\n  source.ts punctuation.accessor.ts\n   ^^\n   source.ts variable.other.property.ts\n     ^\n     source.ts\n      ^\n      source.ts keyword.operator.assignment.ts\n       ^\n       source.ts\n        ^\n        source.ts constant.numeric.decimal.ts\n         ^\n         source.ts punctuation.terminator.statement.ts\n>t.is = 2; // `is` is in blue but should be the same color as the above (1)\n ^\n source.ts variable.other.object.ts\n  ^\n  source.ts punctuation.accessor.ts\n   ^^\n   source.ts variable.other.property.ts\n     ^\n     source.ts\n      ^\n      source.ts keyword.operator.assignment.ts\n       ^\n       source.ts\n        ^\n        source.ts constant.numeric.decimal.ts\n         ^\n         source.ts punctuation.terminator.statement.ts\n          ^\n          source.ts\n           ^^\n           source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n             source.ts comment.line.double-slash.ts\n>t.in = 3; // `in` is in blue but should be the same color as the above (1)\n ^\n source.ts variable.other.object.ts\n  ^\n  source.ts punctuation.accessor.ts\n   ^^\n   source.ts variable.other.property.ts\n     ^\n     source.ts\n      ^\n      source.ts keyword.operator.assignment.ts\n       ^\n       source.ts\n        ^\n        source.ts constant.numeric.decimal.ts\n         ^\n         source.ts punctuation.terminator.statement.ts\n          ^\n          source.ts\n           ^^\n           source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n             source.ts comment.line.double-slash.ts\n>t.of = 4; // `of` is in blue but should be the same color as the above (1)\n ^\n source.ts variable.other.object.ts\n  ^\n  source.ts punctuation.accessor.ts\n   ^^\n   source.ts variable.other.property.ts\n     ^\n     source.ts\n      ^\n      source.ts keyword.operator.assignment.ts\n       ^\n       source.ts\n        ^\n        source.ts constant.numeric.decimal.ts\n         ^\n         source.ts punctuation.terminator.statement.ts\n          ^\n          source.ts\n           ^^\n           source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n             source.ts comment.line.double-slash.ts"
  },
  {
    "path": "tests/baselines/Issue215.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction test() {\n    for (var i=0 ; i<l ; ++i) {\n\n    }\n}\n\nfor (var i=0 ; i<l ; ++i) {\n\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function test() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.function.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    for (var i=0 ; i<l ; ++i) {\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.loop.ts\n        ^\n        source.ts meta.function.ts meta.block.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n          ^^^\n          source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts keyword.operator.relational.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts\n                          ^^\n                          source.ts meta.function.ts meta.block.ts keyword.operator.increment.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n>    }\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n     ^\n     source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>for (var i=0 ; i<l ; ++i) {\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^\n      source.ts meta.var.expr.ts storage.type.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts constant.numeric.decimal.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n               ^\n               source.ts\n                ^\n                source.ts variable.other.readwrite.ts\n                 ^\n                 source.ts keyword.operator.relational.ts\n                  ^\n                  source.ts variable.other.readwrite.ts\n                   ^\n                   source.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n                     ^\n                     source.ts\n                      ^^\n                      source.ts keyword.operator.increment.ts\n                        ^\n                        source.ts variable.other.readwrite.ts\n                         ^\n                         source.ts meta.brace.round.ts\n                          ^\n                          source.ts\n                           ^\n                           source.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.block.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue216.baseline.txt",
    "content": "original file\n-----------------------------------\nclass MyType\n{\n    public myFunction = (): void =>\n    {\n        // From this point on the syntax highlighting will be confused as to where it is.\n        var myVar = 5;\n        console.log(\"Hello there!\");\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class MyType\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n>{\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>    public myFunction = (): void =>\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^^^^^^^^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.return.type.arrow.ts\n                             ^^^^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.return.type.arrow.ts support.type.primitive.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.return.type.arrow.ts\n                                  ^^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts storage.type.function.arrow.ts\n>    {\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>        // From this point on the syntax highlighting will be confused as to where it is.\n ^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n         ^^\n         source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n           source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts comment.line.double-slash.ts\n>        var myVar = 5;\n ^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts\n         ^^^\n         source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>        console.log(\"Hello there!\");\n ^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts\n         ^^^^^^^\n         source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.class.console.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                      ^^^^^^^^^^^^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts string.quoted.double.ts\n                                  ^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                   ^\n                                   source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue217.baseline.txt",
    "content": "original file\n-----------------------------------\nexport class StatusSelector {\n  @Output() select = new EventEmitter()\n  statuses = [\"started\", \"completed\"]\n}\n\nexport class StatusSelector2 {\n  @Output() select = new EventEmitter();\n  statuses = [\"started\", \"completed\"]\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export class StatusSelector {\n ^^^^^^\n source.ts meta.class.ts keyword.control.export.ts\n       ^\n       source.ts meta.class.ts\n        ^^^^^\n        source.ts meta.class.ts storage.type.class.ts\n             ^\n             source.ts meta.class.ts\n              ^^^^^^^^^^^^^^\n              source.ts meta.class.ts entity.name.type.class.ts\n                            ^\n                            source.ts meta.class.ts\n                             ^\n                             source.ts meta.class.ts punctuation.definition.block.ts\n>  @Output() select = new EventEmitter()\n ^^\n source.ts meta.class.ts\n   ^\n   source.ts meta.class.ts meta.decorator.ts punctuation.decorator.ts\n    ^^^^^^\n    source.ts meta.class.ts meta.decorator.ts meta.function-call.ts entity.name.function.ts\n          ^\n          source.ts meta.class.ts meta.decorator.ts meta.brace.round.ts\n           ^\n           source.ts meta.class.ts meta.decorator.ts meta.brace.round.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts\n                      ^^^\n                      source.ts meta.class.ts meta.field.declaration.ts new.expr.ts keyword.operator.new.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts new.expr.ts\n                          ^^^^^^^^^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.function-call.ts support.class.node.ts\n                                      ^\n                                      source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.brace.round.ts\n                                       ^\n                                       source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.brace.round.ts\n>  statuses = [\"started\", \"completed\"]\n ^^\n source.ts meta.class.ts meta.field.declaration.ts\n   ^^^^^^^^\n   source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                ^^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.double.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts punctuation.separator.comma.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                           ^^^^^^^^^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.double.ts\n                                    ^\n                                    source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                     ^\n                                     source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>export class StatusSelector2 {\n ^^^^^^\n source.ts meta.class.ts keyword.control.export.ts\n       ^\n       source.ts meta.class.ts\n        ^^^^^\n        source.ts meta.class.ts storage.type.class.ts\n             ^\n             source.ts meta.class.ts\n              ^^^^^^^^^^^^^^^\n              source.ts meta.class.ts entity.name.type.class.ts\n                             ^\n                             source.ts meta.class.ts\n                              ^\n                              source.ts meta.class.ts punctuation.definition.block.ts\n>  @Output() select = new EventEmitter();\n ^^\n source.ts meta.class.ts\n   ^\n   source.ts meta.class.ts meta.decorator.ts punctuation.decorator.ts\n    ^^^^^^\n    source.ts meta.class.ts meta.decorator.ts meta.function-call.ts entity.name.function.ts\n          ^\n          source.ts meta.class.ts meta.decorator.ts meta.brace.round.ts\n           ^\n           source.ts meta.class.ts meta.decorator.ts meta.brace.round.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts\n                      ^^^\n                      source.ts meta.class.ts meta.field.declaration.ts new.expr.ts keyword.operator.new.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts new.expr.ts\n                          ^^^^^^^^^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.function-call.ts support.class.node.ts\n                                      ^\n                                      source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.brace.round.ts\n                                       ^\n                                       source.ts meta.class.ts meta.field.declaration.ts new.expr.ts meta.brace.round.ts\n                                        ^\n                                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>  statuses = [\"started\", \"completed\"]\n ^^\n source.ts meta.class.ts meta.field.declaration.ts\n   ^^^^^^^^\n   source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                ^^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.double.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts punctuation.separator.comma.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                           ^^^^^^^^^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.double.ts\n                                    ^\n                                    source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                     ^\n                                     source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue218.baseline.txt",
    "content": "original file\n-----------------------------------\nclass A {\n    foo(a, b) {\n    }\n    [foo](a, b) {\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class A {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>    foo(a, b) {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    [foo](a, b) {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n      ^^^\n      source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue219.baseline.txt",
    "content": "original file\n-----------------------------------\nconst { \n    map, \n    coordinate \n} = this.props\nif (!map) return;\nvar marker;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const { \n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n        ^^\n        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n>    map, \n ^^^^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n         ^^\n         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n>    coordinate \n ^^^^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n     ^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.constant.ts\n               ^^\n               source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n>} = this.props\n ^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n  ^\n  source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n   ^\n   source.ts meta.var.expr.ts keyword.operator.assignment.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^\n     source.ts meta.var.expr.ts variable.language.this.ts\n         ^\n         source.ts meta.var.expr.ts punctuation.accessor.ts\n          ^^^^^\n          source.ts meta.var.expr.ts variable.other.property.ts\n>if (!map) return;\n ^^\n source.ts keyword.control.conditional.ts\n   ^\n   source.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^\n     source.ts keyword.operator.logical.ts\n      ^^^\n      source.ts variable.other.readwrite.ts\n         ^\n         source.ts meta.brace.round.ts\n          ^\n          source.ts\n           ^^^^^^\n           source.ts keyword.control.flow.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n>var marker;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue22.baseline.txt",
    "content": "original file\n-----------------------------------\napp.get('/test/', (req, res) => {\n});\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>app.get('/test/', (req, res) => {\n ^^^\n source.ts meta.function-call.ts variable.other.object.ts\n    ^\n    source.ts meta.function-call.ts punctuation.accessor.ts\n     ^^^\n     source.ts meta.function-call.ts support.function.dom.ts\n        ^\n        source.ts meta.brace.round.ts\n         ^\n         source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n          ^^^^^^\n          source.ts string.quoted.single.ts\n                ^\n                source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                 ^\n                 source.ts punctuation.separator.comma.ts\n                  ^\n                  source.ts meta.arrow.ts\n                   ^\n                   source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                    ^^^\n                    source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                       ^\n                       source.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                        ^\n                        source.ts meta.arrow.ts meta.parameters.ts\n                         ^^^\n                         source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                            ^\n                            source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                             ^\n                             source.ts meta.arrow.ts\n                              ^^\n                              source.ts meta.arrow.ts storage.type.function.arrow.ts\n                                ^\n                                source.ts meta.arrow.ts\n                                 ^\n                                 source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>});\n ^\n source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.brace.round.ts\n   ^\n   source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue221.baseline.txt",
    "content": "original file\n-----------------------------------\nclass syntaxHighlightBug {\n\n    variable = \n    {\"example\":1};\n\n    public wronglyHighlitedCode() {\n        var a = 1;\n        return; \n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class syntaxHighlightBug {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^^^^^^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n                         ^\n                         source.ts meta.class.ts\n                          ^\n                          source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>    variable = \n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n               ^^\n               source.ts meta.class.ts meta.field.declaration.ts\n>    {\"example\":1};\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n       ^^^^^^^\n       source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts punctuation.definition.string.end.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    public wronglyHighlitedCode() {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        var a = 1;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>        return; \n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n                ^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue223.baseline.txt",
    "content": "original file\n-----------------------------------\nfor (i = 0; i<len ; i++) {\n  if (foo) {\n    bar = true \n    break \n  }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>for (i = 0; i<len ; i++) {\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^\n      source.ts variable.other.readwrite.ts\n       ^\n       source.ts\n        ^\n        source.ts keyword.operator.assignment.ts\n         ^\n         source.ts\n          ^\n          source.ts constant.numeric.decimal.ts\n           ^\n           source.ts punctuation.terminator.statement.ts\n            ^\n            source.ts\n             ^\n             source.ts variable.other.readwrite.ts\n              ^\n              source.ts keyword.operator.relational.ts\n               ^^^\n               source.ts variable.other.readwrite.ts\n                  ^\n                  source.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n                    ^\n                    source.ts\n                     ^\n                     source.ts variable.other.readwrite.ts\n                      ^^\n                      source.ts keyword.operator.increment.ts\n                        ^\n                        source.ts meta.brace.round.ts\n                         ^\n                         source.ts\n                          ^\n                          source.ts meta.block.ts punctuation.definition.block.ts\n>  if (foo) {\n ^^\n source.ts meta.block.ts\n   ^^\n   source.ts meta.block.ts keyword.control.conditional.ts\n     ^\n     source.ts meta.block.ts\n      ^\n      source.ts meta.block.ts meta.brace.round.ts\n       ^^^\n       source.ts meta.block.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.block.ts meta.brace.round.ts\n           ^\n           source.ts meta.block.ts\n            ^\n            source.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    bar = true \n ^^^^\n source.ts meta.block.ts meta.block.ts\n     ^^^\n     source.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.block.ts meta.block.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.block.ts meta.block.ts\n           ^^^^\n           source.ts meta.block.ts meta.block.ts constant.language.boolean.true.ts\n               ^^\n               source.ts meta.block.ts meta.block.ts\n>    break \n ^^^^\n source.ts meta.block.ts meta.block.ts\n     ^^^^^\n     source.ts meta.block.ts meta.block.ts keyword.control.loop.ts\n          ^^\n          source.ts meta.block.ts meta.block.ts\n>  }\n ^^\n source.ts meta.block.ts meta.block.ts\n   ^\n   source.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue226.baseline.txt",
    "content": "original file\n-----------------------------------\nasync function x() {\n\n}\nconst y = async () => { }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>async function x() {\n ^^^^^\n source.ts meta.function.ts storage.modifier.async.ts\n      ^\n      source.ts meta.function.ts\n       ^^^^^^^^\n       source.ts meta.function.ts storage.type.function.ts\n               ^\n               source.ts meta.function.ts\n                ^\n                source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                   ^\n                   source.ts meta.function.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.function.ts meta.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>const y = async () => { }\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^^^^^\n           source.ts meta.var.expr.ts meta.arrow.ts storage.modifier.async.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts\n                    ^^\n                    source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue230.baseline.txt",
    "content": "original file\n-----------------------------------\n// Note: `new Date` without parenthesis (`new Date()`)\nctrl.filter(\"dateFilter\", () => (input: mycivis.IAll[], date: Date = new Date) => input.filter((value, index, array) => {\n    let date2 = value.date || (value.day) ? moment(`${value.day} ${value.time}`, \"YYYY-MM-DD HH:mm\").toDate() : next_wday(value.wday);\n\n    return moment(date).format(\"DD/MMM/YYYY\") === moment(date2).format(\"DD/MMM/YYYY\");\n}));\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// Note: `new Date` without parenthesis (`new Date()`)\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>ctrl.filter(\"dateFilter\", () => (input: mycivis.IAll[], date: Date = new Date) => input.filter((value, index, array) => {\n ^^^^\n source.ts meta.function-call.ts variable.other.object.ts\n     ^\n     source.ts meta.function-call.ts punctuation.accessor.ts\n      ^^^^^^\n      source.ts meta.function-call.ts entity.name.function.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n              ^^^^^^^^^^\n              source.ts string.quoted.double.ts\n                        ^\n                        source.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                         ^\n                         source.ts punctuation.separator.comma.ts\n                          ^\n                          source.ts meta.arrow.ts\n                           ^\n                           source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                            ^\n                            source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                             ^\n                             source.ts meta.arrow.ts\n                              ^^\n                              source.ts meta.arrow.ts storage.type.function.arrow.ts\n                                ^\n                                source.ts meta.arrow.ts meta.arrow.ts\n                                 ^\n                                 source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                  ^^^^^\n                                  source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                       ^\n                                       source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                        ^\n                                        source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                                         ^^^^^^^\n                                         source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.module.ts\n                                                ^\n                                                source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts punctuation.accessor.ts\n                                                 ^^^^\n                                                 source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                     ^\n                                                     source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                      ^\n                                                      source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                        ^\n                                                        source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts\n                                                         ^^^^\n                                                         source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                                             ^\n                                                             source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                              ^\n                                                              source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                                                               ^^^^\n                                                               source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                                   ^\n                                                                   source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                                                                    ^\n                                                                    source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts keyword.operator.assignment.ts\n                                                                     ^\n                                                                     source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts\n                                                                      ^^^\n                                                                      source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts new.expr.ts keyword.operator.new.ts\n                                                                         ^\n                                                                         source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts new.expr.ts\n                                                                          ^^^^\n                                                                          source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts new.expr.ts support.class.builtin.ts\n                                                                              ^\n                                                                              source.ts meta.arrow.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                               ^\n                                                                               source.ts meta.arrow.ts meta.arrow.ts\n                                                                                ^^\n                                                                                source.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                                                  ^\n                                                                                  source.ts meta.arrow.ts\n                                                                                   ^^^^^\n                                                                                   source.ts meta.function-call.ts variable.other.object.ts\n                                                                                        ^\n                                                                                        source.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                         ^^^^^^\n                                                                                         source.ts meta.function-call.ts entity.name.function.ts\n                                                                                               ^\n                                                                                               source.ts meta.brace.round.ts\n                                                                                                ^\n                                                                                                source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                                                                 ^^^^^\n                                                                                                 source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                                                                                      ^\n                                                                                                      source.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                                                       ^\n                                                                                                       source.ts meta.arrow.ts meta.parameters.ts\n                                                                                                        ^^^^^\n                                                                                                        source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                                                                                             ^\n                                                                                                             source.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                                                              ^\n                                                                                                              source.ts meta.arrow.ts meta.parameters.ts\n                                                                                                               ^^^^^\n                                                                                                               source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                                                                                                    ^\n                                                                                                                    source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                                                                     ^\n                                                                                                                     source.ts meta.arrow.ts\n                                                                                                                      ^^\n                                                                                                                      source.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                                                                                        ^\n                                                                                                                        source.ts meta.arrow.ts\n                                                                                                                         ^\n                                                                                                                         source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    let date2 = value.date || (value.day) ? moment(`${value.day} ${value.time}`, \"YYYY-MM-DD HH:mm\").toDate() : next_wday(value.wday);\n ^^^^\n source.ts meta.arrow.ts meta.block.ts\n     ^^^\n     source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n         ^^^^^\n         source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                 ^^^^^\n                 source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                      ^\n                      source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^^^^\n                       source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                           ^\n                           source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                            ^^\n                            source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.logical.ts\n                              ^\n                              source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                               ^\n                               source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                ^^^^^\n                                source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                                     ^\n                                     source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                      ^^^\n                                      source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                         ^\n                                         source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                           ^\n                                           source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.ternary.ts\n                                            ^\n                                            source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                             ^^^^^^\n                                             source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                                   ^\n                                                   source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                    ^\n                                                    source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                                     ^^\n                                                     source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                       ^^^^^\n                                                       source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.object.ts\n                                                            ^\n                                                            source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts punctuation.accessor.ts\n                                                             ^^^\n                                                             source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.property.ts\n                                                                ^\n                                                                source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                 ^\n                                                                 source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.template.ts\n                                                                  ^^\n                                                                  source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                    ^^^^^\n                                                                    source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.object.ts\n                                                                         ^\n                                                                         source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts punctuation.accessor.ts\n                                                                          ^^^^\n                                                                          source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.property.ts\n                                                                              ^\n                                                                              source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                               ^\n                                                                               source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                                                ^\n                                                                                source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n                                                                                 ^\n                                                                                 source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                                                                  ^\n                                                                                  source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                                   ^^^^^^^^^^^^^^^^\n                                                                                   source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts\n                                                                                                   ^\n                                                                                                   source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                                    ^\n                                                                                                    source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                                                                     ^\n                                                                                                     source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                      ^^^^^^\n                                                                                                      source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                                                                                            ^\n                                                                                                            source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                                                                             ^\n                                                                                                             source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                                                                              ^\n                                                                                                              source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                                                                                               ^\n                                                                                                               source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.ternary.ts\n                                                                                                                ^\n                                                                                                                source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                                                                                                 ^^^^^^^^^\n                                                                                                                 source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                          ^\n                                                                                                                          source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                                                                                           ^^^^^\n                                                                                                                           source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                                                                                                                                ^\n                                                                                                                                source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                                                                                                                 ^^^^\n                                                                                                                                 source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                                                                                                                     ^\n                                                                                                                                     source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                                                                                                      ^\n                                                                                                                                      source.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.arrow.ts meta.block.ts\n>    return moment(date).format(\"DD/MMM/YYYY\") === moment(date2).format(\"DD/MMM/YYYY\");\n ^^^^\n source.ts meta.arrow.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.arrow.ts meta.block.ts\n            ^^^^^^\n            source.ts meta.arrow.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                  ^\n                  source.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                   ^^^^\n                   source.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^\n                         source.ts meta.arrow.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                               ^\n                               source.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.arrow.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                 ^^^^^^^^^^^\n                                 source.ts meta.arrow.ts meta.block.ts string.quoted.double.ts\n                                            ^\n                                            source.ts meta.arrow.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                             ^\n                                             source.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                              ^\n                                              source.ts meta.arrow.ts meta.block.ts\n                                               ^^^\n                                               source.ts meta.arrow.ts meta.block.ts keyword.operator.comparison.ts\n                                                  ^\n                                                  source.ts meta.arrow.ts meta.block.ts\n                                                   ^^^^^^\n                                                   source.ts meta.arrow.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                                         ^\n                                                         source.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                          ^^^^^\n                                                          source.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                                                               ^\n                                                               source.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                                ^\n                                                                source.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                                                 ^^^^^^\n                                                                 source.ts meta.arrow.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                                                       ^\n                                                                       source.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                                        ^\n                                                                        source.ts meta.arrow.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                         ^^^^^^^^^^^\n                                                                         source.ts meta.arrow.ts meta.block.ts string.quoted.double.ts\n                                                                                    ^\n                                                                                    source.ts meta.arrow.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                     ^\n                                                                                     source.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                                                      ^\n                                                                                      source.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>}));\n ^\n source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.brace.round.ts\n   ^\n   source.ts meta.brace.round.ts\n    ^\n    source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue232.baseline.txt",
    "content": "original file\n-----------------------------------\nfor( let [k, component] of this.components){\n    let bounds = component.view.getBounds(); /// <= not highlighted, nor anything after this\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>for( let [k, component] of this.components){\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^\n     source.ts\n      ^^^\n      source.ts meta.var.expr.ts storage.type.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n           ^\n           source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.separator.comma.ts\n             ^\n             source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n              ^^^^^^^^^\n              source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n                         ^^\n                         source.ts keyword.operator.expression.of.ts\n                           ^\n                           source.ts\n                            ^^^^\n                            source.ts variable.language.this.ts\n                                ^\n                                source.ts punctuation.accessor.ts\n                                 ^^^^^^^^^^\n                                 source.ts support.variable.property.dom.ts\n                                           ^\n                                           source.ts meta.brace.round.ts\n                                            ^\n                                            source.ts meta.block.ts punctuation.definition.block.ts\n>    let bounds = component.view.getBounds(); /// <= not highlighted, nor anything after this\n ^^^^\n source.ts meta.block.ts\n     ^^^\n     source.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.block.ts meta.var.expr.ts\n         ^^^^^^\n         source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.block.ts meta.var.expr.ts\n                  ^^^^^^^^^\n                  source.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                           ^\n                           source.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^\n                            source.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.property.ts\n                                ^\n                                source.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                 ^^^^^^^^^\n                                 source.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                          ^\n                                          source.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                            ^\n                                            source.ts meta.block.ts punctuation.terminator.statement.ts\n                                             ^\n                                             source.ts meta.block.ts\n                                              ^^\n                                              source.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                source.ts meta.block.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue235.baseline.txt",
    "content": "original file\n-----------------------------------\nclass A {\n    @Route.GET('/*')\n    get(q: Request, s: Response): void {\n        s.sendFile();\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class A {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>    @Route.GET('/*')\n ^^^^\n source.ts meta.class.ts\n     ^\n     source.ts meta.class.ts meta.decorator.ts punctuation.decorator.ts\n      ^^^^^\n      source.ts meta.class.ts meta.decorator.ts meta.function-call.ts variable.other.object.ts\n           ^\n           source.ts meta.class.ts meta.decorator.ts meta.function-call.ts punctuation.accessor.ts\n            ^^^\n            source.ts meta.class.ts meta.decorator.ts meta.function-call.ts entity.name.function.ts\n               ^\n               source.ts meta.class.ts meta.decorator.ts meta.brace.round.ts\n                ^\n                source.ts meta.class.ts meta.decorator.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                 ^^\n                 source.ts meta.class.ts meta.decorator.ts string.quoted.single.ts\n                   ^\n                   source.ts meta.class.ts meta.decorator.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                    ^\n                    source.ts meta.class.ts meta.decorator.ts meta.brace.round.ts\n>    get(q: Request, s: Response): void {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n            ^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                        ^^^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                   ^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        s.sendFile();\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n           ^^^^^^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue236.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Test {\n    public before() {\n        // ...\n    }\n\n    public [Symbol.iterator]() {\n        // ...\n    }\n\n    public after() {\n        // ...\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Test {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n           ^\n           source.ts meta.class.ts\n            ^\n            source.ts meta.class.ts punctuation.definition.block.ts\n>    public before() {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        // ...\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n           ^^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts comment.line.double-slash.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>    public [Symbol.iterator]() {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts support.class.builtin.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts punctuation.accessor.ts\n                    ^^^^^^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.property.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        // ...\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n           ^^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts comment.line.double-slash.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>    public after() {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        // ...\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n           ^^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts comment.line.double-slash.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue237.baseline.txt",
    "content": "original file\n-----------------------------------\nexport type Test = string // wrong comment color\n                          // should be this\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export type Test = string // wrong comment color\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.type.declaration.ts\n                    ^^^^^^\n                    source.ts meta.type.declaration.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.type.declaration.ts\n                           ^^\n                           source.ts meta.type.declaration.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                             ^^^^^^^^^^^^^^^^^^^^\n                             source.ts meta.type.declaration.ts comment.line.double-slash.ts\n>                          // should be this\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.type.declaration.ts punctuation.whitespace.comment.leading.ts\n                           ^^\n                           source.ts meta.type.declaration.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                             ^^^^^^^^^^^^^^^\n                             source.ts meta.type.declaration.ts comment.line.double-slash.ts"
  },
  {
    "path": "tests/baselines/Issue239.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\n const test = (true) ? <p>Broken Color</p> : <p>Also Broken Color</p> \n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n> const test = (true) ? <p>Broken Color</p> : <p>Also Broken Color</p> \n ^\n source.tsx\n  ^^^^^\n  source.tsx meta.var.expr.tsx storage.type.tsx\n       ^\n       source.tsx meta.var.expr.tsx\n        ^^^^\n        source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx\n            ^\n            source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n             ^\n             source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n              ^\n              source.tsx meta.var.expr.tsx\n               ^\n               source.tsx meta.var.expr.tsx meta.brace.round.tsx\n                ^^^^\n                source.tsx meta.var.expr.tsx constant.language.boolean.true.tsx\n                    ^\n                    source.tsx meta.var.expr.tsx meta.brace.round.tsx\n                     ^\n                     source.tsx meta.var.expr.tsx\n                      ^\n                      source.tsx meta.var.expr.tsx keyword.operator.ternary.tsx\n                       ^\n                       source.tsx meta.var.expr.tsx\n                        ^\n                        source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                         ^\n                         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                          ^\n                          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                           ^^^^^^^^^^^^\n                           source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                       ^^\n                                       source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                         ^\n                                         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                          ^\n                                          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                           ^\n                                           source.tsx meta.var.expr.tsx\n                                            ^\n                                            source.tsx meta.var.expr.tsx keyword.operator.ternary.tsx\n                                             ^\n                                             source.tsx meta.var.expr.tsx\n                                              ^\n                                              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                               ^\n                                               source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                ^\n                                                source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                 ^^^^^^^^^^^^^^^^^\n                                                 source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                  ^^\n                                                                  source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                    ^\n                                                                    source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                     ^\n                                                                     source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                                      ^\n                                                                      source.tsx meta.var.expr.tsx"
  },
  {
    "path": "tests/baselines/Issue241.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction f(): () => number {\n    const x = 0;\n}\nfunction foo(): [number, () => number] {\n    const x = 0;\n}\nfunction f(): () => number {\n    const x = 0;\n}\nfunction f2(): () => {x: number }{\n    const x = 0;\n}\nfunction foo2(): [number, () => { x: number }] {\n    const x = 0;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function f(): () => number {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.function.ts meta.return.type.ts\n               ^\n               source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                 ^\n                 source.ts meta.function.ts meta.return.type.ts\n                  ^^\n                  source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                    ^\n                    source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                     ^^^^^^\n                     source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts support.type.primitive.ts\n                           ^\n                           source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    const x = 0;\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^\n     source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                ^\n                source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>function foo(): [number, () => number] {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.function.ts meta.return.type.ts\n                 ^\n                 source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                  ^^^^^^\n                  source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                         ^\n                         source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts\n                          ^\n                          source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                           ^\n                           source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                            ^\n                            source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts\n                             ^^\n                             source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                               ^\n                               source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.return.ts\n                                ^^^^^^\n                                source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.return.ts support.type.primitive.ts\n                                      ^\n                                      source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                       ^\n                                       source.ts meta.function.ts meta.return.type.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    const x = 0;\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^\n     source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                ^\n                source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>function f(): () => number {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.function.ts meta.return.type.ts\n               ^\n               source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                 ^\n                 source.ts meta.function.ts meta.return.type.ts\n                  ^^\n                  source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                    ^\n                    source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                     ^^^^^^\n                     source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts support.type.primitive.ts\n                           ^\n                           source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    const x = 0;\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^\n     source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                ^\n                source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>function f2(): () => {x: number }{\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n              ^\n              source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.function.ts meta.return.type.ts\n                ^\n                source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts meta.function.ts meta.return.type.ts\n                   ^^\n                   source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                     ^\n                     source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                      ^\n                      source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts meta.object.type.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                        ^\n                        source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                         ^\n                         source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                          ^^^^^^\n                          source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                ^\n                                source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                 ^\n                                 source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts meta.object.type.ts punctuation.definition.block.ts\n                                  ^\n                                  source.ts meta.block.ts punctuation.definition.block.ts\n>    const x = 0;\n ^^^^\n source.ts meta.block.ts\n     ^^^^^\n     source.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.block.ts meta.var.expr.ts\n           ^\n           source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                ^\n                source.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n>function foo2(): [number, () => { x: number }] {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.function.ts meta.return.type.ts\n                  ^\n                  source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                   ^^^^^^\n                   source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts support.type.primitive.ts\n                         ^\n                         source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                          ^\n                          source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts\n                           ^\n                           source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                            ^\n                            source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                             ^\n                             source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts\n                              ^^\n                              source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                ^\n                                source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.return.ts\n                                 ^\n                                 source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.return.ts meta.object.type.ts punctuation.definition.block.ts\n                                  ^\n                                  source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.return.ts meta.object.type.ts meta.field.declaration.ts\n                                   ^\n                                   source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.return.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                    ^\n                                    source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.return.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                     ^\n                                     source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.return.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                      ^^^^^^\n                                      source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.return.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                            ^\n                                            source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.return.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                             ^\n                                             source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.return.ts meta.object.type.ts punctuation.definition.block.ts\n                                              ^\n                                              source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                               ^\n                                               source.ts meta.function.ts meta.return.type.ts\n                                                ^\n                                                source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    const x = 0;\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^\n     source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                ^\n                source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue243.baseline.txt",
    "content": "original file\n-----------------------------------\n'use strict';\n\n        var pieces = [];\n        var numeration = [];\n\n        for (var i in pieces) {\n            switch (true) {\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n                    numeration[0] = i;\n                    break;\n            }\n        }\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>'use strict';\n ^\n source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n  ^^^^^^^^^^\n  source.ts string.quoted.single.ts\n            ^\n            source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n             ^\n             source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>        var pieces = [];\n ^^^^^^^^\n source.ts\n         ^^^\n         source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.array.literal.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts\n>        var numeration = [];\n ^^^^^^^^\n source.ts\n         ^^^\n         source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^^^^^^^^^^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.array.literal.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                            ^\n                            source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>        for (var i in pieces) {\n ^^^^^^^^\n source.ts\n         ^^^\n         source.ts keyword.control.loop.ts\n            ^\n            source.ts\n             ^\n             source.ts meta.brace.round.ts\n              ^^^\n              source.ts meta.var.expr.ts storage.type.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^^\n                    source.ts keyword.operator.expression.in.ts\n                      ^\n                      source.ts\n                       ^^^^^^\n                       source.ts variable.other.readwrite.ts\n                             ^\n                             source.ts meta.brace.round.ts\n                              ^\n                              source.ts\n                               ^\n                               source.ts meta.block.ts punctuation.definition.block.ts\n>            switch (true) {\n ^^^^^^^^^^^^\n source.ts meta.block.ts\n             ^^^^^^\n             source.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts keyword.control.switch.ts\n                   ^\n                   source.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts\n                    ^\n                    source.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts meta.brace.round.ts\n                     ^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts constant.language.boolean.true.ts\n                         ^\n                         source.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts\n                           ^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.definition.block.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                case /^\\\"?Accession\\\"?/.test(pieces[i]):\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                 ^^^^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n                     ^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                       ^\n                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                        ^^\n                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                           ^^^^^^^^^\n                           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts\n                                    ^^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                       ^\n                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.function-call.ts support.function.ts\n                                             ^\n                                             source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                              ^^^^^^\n                                              source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>                    numeration[0] = i;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                   ^\n                                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                                     ^\n                                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>                    break;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n                     ^^^^^\n                     source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>            }\n ^^^^^^^^^^^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n             ^\n             source.ts meta.block.ts switch-statement.expr.ts punctuation.definition.block.ts\n>        }\n ^^^^^^^^\n source.ts meta.block.ts\n         ^\n         source.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue244.baseline.txt",
    "content": "original file\n-----------------------------------\na.withLatestFrom(axis === 'x' ? initialX : initialY)\n .map(x => undefined)\n .switch()\n .publish().refCount();\n\nconst targetX = targetSideObs('x');\nconst targetY = targetSideObs('y');\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>a.withLatestFrom(axis === 'x' ? initialX : initialY)\n ^\n source.ts meta.function-call.ts variable.other.object.ts\n  ^\n  source.ts meta.function-call.ts punctuation.accessor.ts\n   ^^^^^^^^^^^^^^\n   source.ts meta.function-call.ts entity.name.function.ts\n                 ^\n                 source.ts meta.brace.round.ts\n                  ^^^^\n                  source.ts variable.other.readwrite.ts\n                      ^\n                      source.ts\n                       ^^^\n                       source.ts keyword.operator.comparison.ts\n                          ^\n                          source.ts\n                           ^\n                           source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                            ^\n                            source.ts string.quoted.single.ts\n                             ^\n                             source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                              ^\n                              source.ts\n                               ^\n                               source.ts keyword.operator.ternary.ts\n                                ^\n                                source.ts\n                                 ^^^^^^^^\n                                 source.ts variable.other.readwrite.ts\n                                         ^\n                                         source.ts\n                                          ^\n                                          source.ts keyword.operator.ternary.ts\n                                           ^\n                                           source.ts\n                                            ^^^^^^^^\n                                            source.ts variable.other.readwrite.ts\n                                                    ^\n                                                    source.ts meta.brace.round.ts\n> .map(x => undefined)\n ^\n source.ts\n  ^\n  source.ts meta.function-call.ts punctuation.accessor.ts\n   ^^^\n   source.ts meta.function-call.ts entity.name.function.ts\n      ^\n      source.ts meta.brace.round.ts\n       ^\n       source.ts meta.arrow.ts variable.parameter.ts\n        ^\n        source.ts meta.arrow.ts\n         ^^\n         source.ts meta.arrow.ts storage.type.function.arrow.ts\n           ^\n           source.ts meta.arrow.ts\n            ^^^^^^^^^\n            source.ts constant.language.undefined.ts\n                     ^\n                     source.ts meta.brace.round.ts\n> .switch()\n ^\n source.ts\n  ^\n  source.ts meta.function-call.ts punctuation.accessor.ts\n   ^^^^^^\n   source.ts meta.function-call.ts entity.name.function.ts\n         ^\n         source.ts meta.brace.round.ts\n          ^\n          source.ts meta.brace.round.ts\n> .publish().refCount();\n ^\n source.ts\n  ^\n  source.ts meta.function-call.ts punctuation.accessor.ts\n   ^^^^^^^\n   source.ts meta.function-call.ts entity.name.function.ts\n          ^\n          source.ts meta.brace.round.ts\n           ^\n           source.ts meta.brace.round.ts\n            ^\n            source.ts meta.function-call.ts punctuation.accessor.ts\n             ^^^^^^^^\n             source.ts meta.function-call.ts entity.name.function.ts\n                     ^\n                     source.ts meta.brace.round.ts\n                      ^\n                      source.ts meta.brace.round.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>const targetX = targetSideObs('x');\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^^^^^^^^^^^^^\n                 source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                ^\n                                source.ts meta.var.expr.ts string.quoted.single.ts\n                                 ^\n                                 source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts punctuation.terminator.statement.ts\n>const targetY = targetSideObs('y');\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^^^^^^^^^^^^^\n                 source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                ^\n                                source.ts meta.var.expr.ts string.quoted.single.ts\n                                 ^\n                                 source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue247.baseline.txt",
    "content": "original file\n-----------------------------------\n@dec<{}>()\nclass Test {\n}\n\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>@dec<{}>()\n ^\n source.tsx meta.decorator.tsx punctuation.decorator.tsx\n  ^^^\n  source.tsx meta.decorator.tsx meta.function-call.tsx entity.name.function.tsx\n     ^\n     source.tsx meta.decorator.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n      ^\n      source.tsx meta.decorator.tsx meta.type.parameters.tsx meta.object.type.tsx punctuation.definition.block.tsx\n       ^\n       source.tsx meta.decorator.tsx meta.type.parameters.tsx meta.object.type.tsx punctuation.definition.block.tsx\n        ^\n        source.tsx meta.decorator.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n         ^\n         source.tsx meta.decorator.tsx meta.brace.round.tsx\n          ^\n          source.tsx meta.decorator.tsx meta.brace.round.tsx\n>class Test {\n ^^^^^\n source.tsx meta.class.tsx storage.type.class.tsx\n      ^\n      source.tsx meta.class.tsx\n       ^^^^\n       source.tsx meta.class.tsx entity.name.type.class.tsx\n           ^\n           source.tsx meta.class.tsx\n            ^\n            source.tsx meta.class.tsx punctuation.definition.block.tsx\n>}\n ^\n source.tsx meta.class.tsx punctuation.definition.block.tsx\n>\n ^\n source.tsx"
  },
  {
    "path": "tests/baselines/Issue248.baseline.txt",
    "content": "original file\n-----------------------------------\nclass C1 {\n    m1 = 1;\n    static s1() {\n        return [() => (new this).m1];\n    }\n}\nclass C2 {\n    m1 = 1;\n    static s1() {\n        return [() => (new this).m1];\n    }\n}\nclass C3 {\n    m1 = 1;\n    static s1() {\n        return [() => (new this).m1];\n    }\n}\nclass C4 {\n    m1 = 1;\n    static s1() {\n        return [() => (new this).m1];\n    }\n}\nclass C5 {\n    m1 = 1;\n    static s1() {\n        return [() => (new this).m1];\n    }\n}\nclass C6 {\n    m1 = 1;\n    static s1() {\n        return [() => (new this).m1];\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class C1 {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^\n       source.ts meta.class.ts entity.name.type.class.ts\n         ^\n         source.ts meta.class.ts\n          ^\n          source.ts meta.class.ts punctuation.definition.block.ts\n>    m1 = 1;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n           ^\n           source.ts meta.class.ts punctuation.terminator.statement.ts\n>    static s1() {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts\n            ^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        return [() => (new this).m1];\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts\n                    ^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts storage.type.function.arrow.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                        ^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts new.expr.ts keyword.operator.new.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts new.expr.ts\n                            ^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts new.expr.ts variable.language.this.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts punctuation.accessor.ts\n                                  ^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts variable.other.property.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>class C2 {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^\n       source.ts meta.class.ts entity.name.type.class.ts\n         ^\n         source.ts meta.class.ts\n          ^\n          source.ts meta.class.ts punctuation.definition.block.ts\n>    m1 = 1;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n           ^\n           source.ts meta.class.ts punctuation.terminator.statement.ts\n>    static s1() {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts\n            ^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        return [() => (new this).m1];\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts\n                    ^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts storage.type.function.arrow.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                        ^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts new.expr.ts keyword.operator.new.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts new.expr.ts\n                            ^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts new.expr.ts variable.language.this.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts punctuation.accessor.ts\n                                  ^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts variable.other.property.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>class C3 {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^\n       source.ts meta.class.ts entity.name.type.class.ts\n         ^\n         source.ts meta.class.ts\n          ^\n          source.ts meta.class.ts punctuation.definition.block.ts\n>    m1 = 1;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n           ^\n           source.ts meta.class.ts punctuation.terminator.statement.ts\n>    static s1() {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts\n            ^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        return [() => (new this).m1];\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts\n                    ^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts storage.type.function.arrow.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                        ^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts new.expr.ts keyword.operator.new.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts new.expr.ts\n                            ^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts new.expr.ts variable.language.this.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts punctuation.accessor.ts\n                                  ^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts variable.other.property.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>class C4 {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^\n       source.ts meta.class.ts entity.name.type.class.ts\n         ^\n         source.ts meta.class.ts\n          ^\n          source.ts meta.class.ts punctuation.definition.block.ts\n>    m1 = 1;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n           ^\n           source.ts meta.class.ts punctuation.terminator.statement.ts\n>    static s1() {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts\n            ^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        return [() => (new this).m1];\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts\n                    ^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts storage.type.function.arrow.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                        ^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts new.expr.ts keyword.operator.new.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts new.expr.ts\n                            ^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts new.expr.ts variable.language.this.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts punctuation.accessor.ts\n                                  ^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts variable.other.property.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>class C5 {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^\n       source.ts meta.class.ts entity.name.type.class.ts\n         ^\n         source.ts meta.class.ts\n          ^\n          source.ts meta.class.ts punctuation.definition.block.ts\n>    m1 = 1;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n           ^\n           source.ts meta.class.ts punctuation.terminator.statement.ts\n>    static s1() {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts\n            ^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        return [() => (new this).m1];\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts\n                    ^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts storage.type.function.arrow.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                        ^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts new.expr.ts keyword.operator.new.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts new.expr.ts\n                            ^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts new.expr.ts variable.language.this.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts punctuation.accessor.ts\n                                  ^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts variable.other.property.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>class C6 {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^\n       source.ts meta.class.ts entity.name.type.class.ts\n         ^\n         source.ts meta.class.ts\n          ^\n          source.ts meta.class.ts punctuation.definition.block.ts\n>    m1 = 1;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n           ^\n           source.ts meta.class.ts punctuation.terminator.statement.ts\n>    static s1() {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts\n            ^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        return [() => (new this).m1];\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts\n                    ^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts storage.type.function.arrow.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.arrow.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                        ^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts new.expr.ts keyword.operator.new.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts new.expr.ts\n                            ^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts new.expr.ts variable.language.this.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts punctuation.accessor.ts\n                                  ^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts variable.other.property.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue249.baseline.txt",
    "content": "original file\n-----------------------------------\nconst selectDictionary = (dictionaries: StoredDictionaries, lang:string) => {\n\n}\n\nfunction selectDictionary(dictionaries: StoredDictionaries, lang:string) {\n\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const selectDictionary = (dictionaries: StoredDictionaries, lang:string) => {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.arrow.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                           ^^^^^^^^^^^^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                                         ^^^^^^^^^^^^^^^^^^\n                                         source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                           ^\n                                                           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                            ^\n                                                            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts\n                                                             ^^^^\n                                                             source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                                                 ^\n                                                                 source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                  ^^^^^^\n                                                                  source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                        ^\n                                                                        source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                         ^\n                                                                         source.ts meta.var.expr.ts meta.arrow.ts\n                                                                          ^^\n                                                                          source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                                            ^\n                                                                            source.ts meta.var.expr.ts meta.arrow.ts\n                                                                             ^\n                                                                             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>function selectDictionary(dictionaries: StoredDictionaries, lang:string) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^^^^^^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                           ^^^^^^^^^^^^\n                           source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                         ^^^^^^^^^^^^^^^^^^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.parameters.ts\n                                                             ^^^^\n                                                             source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                  ^^^^^^\n                                                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                        ^\n                                                                        source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                         ^\n                                                                         source.ts meta.function.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.function.ts meta.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue250.baseline.txt",
    "content": "original file\n-----------------------------------\n/** Meta-part that defins a Form */\nexport class FormType extends Type {\n\n  /** @internal Original FormType instance */\n  static Original = function () {\n    let type = new FormType;\n\n    // define embed field\n    type.defineField(DesignID.Embed, new BooleanAtom(false));\n\n    // define plan choice\n    type.defineField(DesignID.Plan, PlanChoice.Original);\n\n    // define fields list\n    let fields =\n      type.defineField(DesignID.Fields, new Ordering(new FieldDesign));\n    // embed field list\n    fields.embed = true;\n\n    return type;\n  } ();\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/** Meta-part that defins a Form */\n ^^^\n source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n    source.ts comment.block.documentation.ts\n                                  ^^\n                                  source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>export class FormType extends Type {\n ^^^^^^\n source.ts meta.class.ts keyword.control.export.ts\n       ^\n       source.ts meta.class.ts\n        ^^^^^\n        source.ts meta.class.ts storage.type.class.ts\n             ^\n             source.ts meta.class.ts\n              ^^^^^^^^\n              source.ts meta.class.ts entity.name.type.class.ts\n                      ^\n                      source.ts meta.class.ts\n                       ^^^^^^^\n                       source.ts meta.class.ts storage.modifier.ts\n                              ^\n                              source.ts meta.class.ts\n                               ^^^^\n                               source.ts meta.class.ts entity.other.inherited-class.ts\n                                   ^\n                                   source.ts meta.class.ts\n                                    ^\n                                    source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>  /** @internal Original FormType instance */\n ^^\n source.ts meta.class.ts\n   ^^^\n   source.ts meta.class.ts comment.block.documentation.ts punctuation.definition.comment.ts\n      ^\n      source.ts meta.class.ts comment.block.documentation.ts\n       ^\n       source.ts meta.class.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n        ^^^^^^^^\n        source.ts meta.class.ts comment.block.documentation.ts storage.type.class.jsdoc\n                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                source.ts meta.class.ts comment.block.documentation.ts\n                                            ^^\n                                            source.ts meta.class.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>  static Original = function () {\n ^^\n source.ts meta.class.ts\n   ^^^^^^\n   source.ts meta.class.ts storage.modifier.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts\n          ^^^^^^^^\n          source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts\n                     ^^^^^^^^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts storage.type.function.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>    let type = new FormType;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts\n     ^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n         ^^^^\n         source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                ^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts new.expr.ts\n                    ^^^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts new.expr.ts variable.other.readwrite.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts\n>    // define embed field\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^^^^^^^^^^^^^^^^\n       source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts comment.line.double-slash.ts\n>    type.defineField(DesignID.Embed, new BooleanAtom(false));\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts\n     ^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n          ^^^^^^^^^^^\n          source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                      ^^^^^^^^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                               ^^^^^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts variable.other.property.ts\n                                    ^\n                                    source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                     ^\n                                     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts\n                                      ^^^\n                                      source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                                         ^\n                                         source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts new.expr.ts\n                                          ^^^^^^^^^^^\n                                          source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                      ^^^^^\n                                                      source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts new.expr.ts constant.language.boolean.false.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts\n>    // define plan choice\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^^^^^^^^^^^^^^^^\n       source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts comment.line.double-slash.ts\n>    type.defineField(DesignID.Plan, PlanChoice.Original);\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts\n     ^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n          ^^^^^^^^^^^\n          source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                      ^^^^^^^^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                               ^^^^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts variable.other.property.ts\n                                   ^\n                                   source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                    ^\n                                    source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts\n                                     ^^^^^^^^^^\n                                     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                               ^\n                                               source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                ^^^^^^^^\n                                                source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts variable.other.property.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts\n>    // define fields list\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^^^^^^^^^^^^^^^^\n       source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts comment.line.double-slash.ts\n>    let fields =\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts\n     ^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n>      type.defineField(DesignID.Fields, new Ordering(new FieldDesign));\n ^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n       ^^^^\n       source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n            ^^^^^^^^^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                        ^^^^^^^^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                 ^^^^^^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                       ^\n                                       source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n                                        ^\n                                        source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                         ^^^\n                                         source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n                                            ^\n                                            source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts new.expr.ts\n                                             ^^^^^^^^\n                                             source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                                      ^^^\n                                                      source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts new.expr.ts new.expr.ts keyword.operator.new.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts new.expr.ts new.expr.ts\n                                                          ^^^^^^^^^^^\n                                                          source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts new.expr.ts new.expr.ts variable.other.readwrite.ts\n                                                                     ^\n                                                                     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                                                      ^\n                                                                      source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                                       ^\n                                                                       source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>    // embed field list\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^^^^^^^^^^^^^^\n       source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts comment.line.double-slash.ts\n>    fields.embed = true;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n            ^^^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts variable.other.property.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts\n                    ^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts constant.language.boolean.true.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts\n>    return type;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts\n            ^^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>  } ();\n ^^\n source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts\n   ^\n   source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n    ^\n    source.ts meta.class.ts meta.field.declaration.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n      ^\n      source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n       ^\n       source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue251.baseline.txt",
    "content": "original file\n-----------------------------------\nfor(var j=0; (j<rows && l<num); j++) {\n  for(var k = 0; (k<cols && l<num); k++){\n    output.push( {h, w, x: k*w, y: h*j, file: file.file});\n    l++;\n  }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>for(var j=0; (j<rows && l<num); j++) {\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^^^\n     source.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts constant.numeric.decimal.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n             ^\n             source.ts\n              ^\n              source.ts meta.brace.round.ts\n               ^\n               source.ts variable.other.readwrite.ts\n                ^\n                source.ts keyword.operator.relational.ts\n                 ^^^^\n                 source.ts variable.other.readwrite.ts\n                     ^\n                     source.ts\n                      ^^\n                      source.ts keyword.operator.logical.ts\n                        ^\n                        source.ts\n                         ^\n                         source.ts variable.other.readwrite.ts\n                          ^\n                          source.ts keyword.operator.relational.ts\n                           ^^^\n                           source.ts variable.other.readwrite.ts\n                              ^\n                              source.ts meta.brace.round.ts\n                               ^\n                               source.ts punctuation.terminator.statement.ts\n                                ^\n                                source.ts\n                                 ^\n                                 source.ts variable.other.readwrite.ts\n                                  ^^\n                                  source.ts keyword.operator.increment.ts\n                                    ^\n                                    source.ts meta.brace.round.ts\n                                     ^\n                                     source.ts\n                                      ^\n                                      source.ts meta.block.ts punctuation.definition.block.ts\n>  for(var k = 0; (k<cols && l<num); k++){\n ^^\n source.ts meta.block.ts\n   ^^^\n   source.ts meta.block.ts keyword.control.loop.ts\n      ^\n      source.ts meta.block.ts meta.brace.round.ts\n       ^^^\n       source.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.block.ts meta.var.expr.ts\n           ^\n           source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                ^\n                source.ts meta.block.ts punctuation.terminator.statement.ts\n                 ^\n                 source.ts meta.block.ts\n                  ^\n                  source.ts meta.block.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.block.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.block.ts keyword.operator.relational.ts\n                     ^^^^\n                     source.ts meta.block.ts variable.other.readwrite.ts\n                         ^\n                         source.ts meta.block.ts\n                          ^^\n                          source.ts meta.block.ts keyword.operator.logical.ts\n                            ^\n                            source.ts meta.block.ts\n                             ^\n                             source.ts meta.block.ts variable.other.readwrite.ts\n                              ^\n                              source.ts meta.block.ts keyword.operator.relational.ts\n                               ^^^\n                               source.ts meta.block.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts meta.block.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.block.ts punctuation.terminator.statement.ts\n                                    ^\n                                    source.ts meta.block.ts\n                                     ^\n                                     source.ts meta.block.ts variable.other.readwrite.ts\n                                      ^^\n                                      source.ts meta.block.ts keyword.operator.increment.ts\n                                        ^\n                                        source.ts meta.block.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    output.push( {h, w, x: k*w, y: h*j, file: file.file});\n ^^^^\n source.ts meta.block.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.block.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n           ^\n           source.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n            ^^^^\n            source.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.ts\n                ^\n                source.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                 ^\n                 source.ts meta.block.ts meta.block.ts\n                  ^\n                  source.ts meta.block.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                   ^\n                   source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.block.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                     ^\n                     source.ts meta.block.ts meta.block.ts meta.objectliteral.ts\n                      ^\n                      source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.block.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                        ^\n                        source.ts meta.block.ts meta.block.ts meta.objectliteral.ts\n                         ^\n                         source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                          ^\n                          source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                           ^\n                           source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                            ^\n                            source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                             ^\n                             source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.arithmetic.ts\n                              ^\n                              source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.block.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                                ^\n                                source.ts meta.block.ts meta.block.ts meta.objectliteral.ts\n                                 ^\n                                 source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                  ^\n                                  source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                   ^\n                                   source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                                    ^\n                                    source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                                     ^\n                                     source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.arithmetic.ts\n                                      ^\n                                      source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                                       ^\n                                       source.ts meta.block.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                                        ^\n                                        source.ts meta.block.ts meta.block.ts meta.objectliteral.ts\n                                         ^^^^\n                                         source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                             ^\n                                             source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                              ^\n                                              source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                                               ^^^^\n                                               source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.ts\n                                                   ^\n                                                   source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                                                    ^^^^\n                                                    source.ts meta.block.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.property.ts\n                                                        ^\n                                                        source.ts meta.block.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                         ^\n                                                         source.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                                          ^\n                                                          source.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>    l++;\n ^^^^\n source.ts meta.block.ts meta.block.ts\n     ^\n     source.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n      ^^\n      source.ts meta.block.ts meta.block.ts keyword.operator.increment.ts\n        ^\n        source.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>  }\n ^^\n source.ts meta.block.ts meta.block.ts\n   ^\n   source.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue252.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction getPage(p, base) {\n    if (filename == base + \"index\") { var route = \"/\" + base }\n}\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function getPage(p, base) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts\n                     ^^^^\n                     source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                          ^\n                          source.ts meta.function.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    if (filename == base + \"index\") { var route = \"/\" + base }\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^\n     source.ts meta.function.ts meta.block.ts keyword.control.conditional.ts\n       ^\n       source.ts meta.function.ts meta.block.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n         ^^^^^^^^\n         source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts\n                  ^^\n                  source.ts meta.function.ts meta.block.ts keyword.operator.comparison.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts\n                     ^^^^\n                     source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts keyword.operator.arithmetic.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                             ^^^^^\n                             source.ts meta.function.ts meta.block.ts string.quoted.double.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts meta.block.ts\n                                       ^^^\n                                       source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                                          ^\n                                          source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                           ^^^^^\n                                           source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                                                ^\n                                                source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                                         ^^^^\n                                                         source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue262.baseline.txt",
    "content": "original file\n-----------------------------------\nfor (let a = 1; a < 10; a++) {\n    for (let b = 1; b < a; b++) {\n        \n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>for (let a = 1; a < 10; a++) {\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^\n      source.ts meta.var.expr.ts storage.type.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts constant.numeric.decimal.ts\n               ^\n               source.ts punctuation.terminator.statement.ts\n                ^\n                source.ts\n                 ^\n                 source.ts variable.other.readwrite.ts\n                  ^\n                  source.ts\n                   ^\n                   source.ts keyword.operator.relational.ts\n                    ^\n                    source.ts\n                     ^^\n                     source.ts constant.numeric.decimal.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts\n                        ^\n                        source.ts\n                         ^\n                         source.ts variable.other.readwrite.ts\n                          ^^\n                          source.ts keyword.operator.increment.ts\n                            ^\n                            source.ts meta.brace.round.ts\n                             ^\n                             source.ts\n                              ^\n                              source.ts meta.block.ts punctuation.definition.block.ts\n>    for (let b = 1; b < a; b++) {\n ^^^^\n source.ts meta.block.ts\n     ^^^\n     source.ts meta.block.ts keyword.control.loop.ts\n        ^\n        source.ts meta.block.ts\n         ^\n         source.ts meta.block.ts meta.brace.round.ts\n          ^^^\n          source.ts meta.block.ts meta.var.expr.ts storage.type.ts\n             ^\n             source.ts meta.block.ts meta.var.expr.ts\n              ^\n              source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.block.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.block.ts punctuation.terminator.statement.ts\n                    ^\n                    source.ts meta.block.ts\n                     ^\n                     source.ts meta.block.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.block.ts\n                       ^\n                       source.ts meta.block.ts keyword.operator.relational.ts\n                        ^\n                        source.ts meta.block.ts\n                         ^\n                         source.ts meta.block.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.block.ts punctuation.terminator.statement.ts\n                           ^\n                           source.ts meta.block.ts\n                            ^\n                            source.ts meta.block.ts variable.other.readwrite.ts\n                             ^^\n                             source.ts meta.block.ts keyword.operator.increment.ts\n                               ^\n                               source.ts meta.block.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.block.ts\n                                 ^\n                                 source.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>        \n ^^^^^^^^^\n source.ts meta.block.ts meta.block.ts\n>    }\n ^^^^\n source.ts meta.block.ts meta.block.ts\n     ^\n     source.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue264.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\n<List>\n  <div >\n  </div>\n</List >\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n><List>\n ^\n source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n  ^^^^\n  source.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n      ^\n      source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>  <div >\n ^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n   ^\n   source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n    ^^^\n    source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n       ^\n       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx\n        ^\n        source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>  </div>\n ^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n   ^^\n   source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n     ^^^\n     source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n        ^\n        source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n></List >\n ^^\n source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n   ^^^^\n   source.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n       ^\n       source.tsx meta.tag.without-attributes.tsx\n        ^\n        source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx"
  },
  {
    "path": "tests/baselines/Issue276.baseline.txt",
    "content": "original file\n-----------------------------------\n/**\n * @param {string} value\n * @param {string[]} arrayValue\n * @param {string} [optionalValue]\n */\nfunction test(value: string, arrayValue: string[], optionalValue?: string) {\n\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/**\n ^^^\n source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n> * @param {string} value\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n          ^\n          source.ts comment.block.documentation.ts\n           ^\n           source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n            ^^^^^^\n            source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                  ^\n                  source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                   ^\n                   source.ts comment.block.documentation.ts\n                    ^^^^^\n                    source.ts comment.block.documentation.ts variable.other.jsdoc\n> * @param {string[]} arrayValue\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n          ^\n          source.ts comment.block.documentation.ts\n           ^\n           source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n            ^^^^^^\n            source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                  ^\n                  source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                   ^\n                   source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                    ^\n                    source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                     ^\n                     source.ts comment.block.documentation.ts\n                      ^^^^^^^^^^\n                      source.ts comment.block.documentation.ts variable.other.jsdoc\n> * @param {string} [optionalValue]\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n          ^\n          source.ts comment.block.documentation.ts\n           ^\n           source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n            ^^^^^^\n            source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                  ^\n                  source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                   ^\n                   source.ts comment.block.documentation.ts\n                    ^\n                    source.ts comment.block.documentation.ts variable.other.jsdoc punctuation.definition.optional-value.begin.bracket.square.jsdoc\n                     ^^^^^^^^^^^^^\n                     source.ts comment.block.documentation.ts variable.other.jsdoc\n                                  ^\n                                  source.ts comment.block.documentation.ts variable.other.jsdoc punctuation.definition.optional-value.end.bracket.square.jsdoc\n> */\n ^\n source.ts comment.block.documentation.ts\n  ^^\n  source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>function test(value: string, arrayValue: string[], optionalValue?: string) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^^^^^\n               source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                      ^^^^^^\n                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts\n                              ^^^^^^^^^^\n                              source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                          ^^^^^^\n                                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                ^\n                                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.parameters.ts\n                                                    ^^^^^^^^^^^^^\n                                                    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.parameters.ts keyword.operator.optional.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                                    ^^^^^^\n                                                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                           ^\n                                                                           source.ts meta.function.ts\n                                                                            ^\n                                                                            source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.function.ts meta.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue28.baseline.txt",
    "content": "original file\n-----------------------------------\n\n/* Testing octals */\n\nvar x = 123;\nvar y = 0x123;\nvar z = 0b10101;\nvar z = 0B00000;\nvar j = 0o474774;\nvar w = 0O767;\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>\n ^\n source.ts\n>/* Testing octals */\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^\n   source.ts comment.block.ts\n                   ^^\n                   source.ts comment.block.ts punctuation.definition.comment.ts\n>\n ^\n source.ts\n>var x = 123;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^\n         source.ts meta.var.expr.ts constant.numeric.decimal.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>var y = 0x123;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^\n         source.ts meta.var.expr.ts constant.numeric.hex.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>var z = 0b10101;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^^^\n         source.ts meta.var.expr.ts constant.numeric.binary.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>var z = 0B00000;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^^^\n         source.ts meta.var.expr.ts constant.numeric.binary.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>var j = 0o474774;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^^^^\n         source.ts meta.var.expr.ts constant.numeric.octal.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n>var w = 0O767;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^\n         source.ts meta.var.expr.ts constant.numeric.octal.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue280.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\nclass c {\n private renderForecastsTable() {\n     let forecasts = this.props.forecasts.map(forecast => {\n     return forecast.dateFormatted +\n        forecast.temperatureC +\n        forecast.temperatureF +\n        forecast.summar;\n    });\n    return <table className=\"table\">\n    <thread>\n    </thread>\n    <tbody>\n    {\n      this.props.forecasts.map(forecast => {\n     return forecast.dateFormatted +\n        forecast.temperatureC +\n        forecast.temperatureF +\n        forecast.summar;\n    }) \n    }\n    </tbody>\n    </table>;\n }\n\n}\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>class c {\n ^^^^^\n source.tsx meta.class.tsx storage.type.class.tsx\n      ^\n      source.tsx meta.class.tsx\n       ^\n       source.tsx meta.class.tsx entity.name.type.class.tsx\n        ^\n        source.tsx meta.class.tsx\n         ^\n         source.tsx meta.class.tsx punctuation.definition.block.tsx\n> private renderForecastsTable() {\n ^\n source.tsx meta.class.tsx\n  ^^^^^^^\n  source.tsx meta.class.tsx meta.method.declaration.tsx storage.modifier.tsx\n         ^\n         source.tsx meta.class.tsx meta.method.declaration.tsx\n          ^^^^^^^^^^^^^^^^^^^^\n          source.tsx meta.class.tsx meta.method.declaration.tsx meta.definition.method.tsx entity.name.function.tsx\n                              ^\n                              source.tsx meta.class.tsx meta.method.declaration.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n                               ^\n                               source.tsx meta.class.tsx meta.method.declaration.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n                                ^\n                                source.tsx meta.class.tsx meta.method.declaration.tsx\n                                 ^\n                                 source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.definition.block.tsx\n>     let forecasts = this.props.forecasts.map(forecast => {\n ^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n      ^^^\n      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx storage.type.tsx\n         ^\n         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx\n          ^^^^^^^^^\n          source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.readwrite.tsx\n                   ^\n                   source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n                    ^\n                    source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n                     ^\n                     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx\n                      ^^^^\n                      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.function-call.tsx variable.language.this.tsx\n                          ^\n                          source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.function-call.tsx punctuation.accessor.tsx\n                           ^^^^^\n                           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.function-call.tsx variable.other.object.property.tsx\n                                ^\n                                source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.function-call.tsx punctuation.accessor.tsx\n                                 ^^^^^^^^^\n                                 source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.function-call.tsx variable.other.object.property.tsx\n                                          ^\n                                          source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.function-call.tsx punctuation.accessor.tsx\n                                           ^^^\n                                           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.function-call.tsx entity.name.function.tsx\n                                              ^\n                                              source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.brace.round.tsx\n                                               ^^^^^^^^\n                                               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx variable.parameter.tsx\n                                                       ^\n                                                       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx\n                                                        ^^\n                                                        source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n                                                          ^\n                                                          source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx\n                                                           ^\n                                                           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx punctuation.definition.block.tsx\n>     return forecast.dateFormatted +\n ^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx\n      ^^^^^^\n      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx keyword.control.flow.tsx\n            ^\n            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx\n             ^^^^^^^^\n             source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx variable.other.object.tsx\n                     ^\n                     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx punctuation.accessor.tsx\n                      ^^^^^^^^^^^^^\n                      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx variable.other.property.tsx\n                                   ^\n                                   source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx\n                                    ^\n                                    source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx keyword.operator.arithmetic.tsx\n>        forecast.temperatureC +\n ^^^^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx\n         ^^^^^^^^\n         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx variable.other.object.tsx\n                 ^\n                 source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx punctuation.accessor.tsx\n                  ^^^^^^^^^^^^\n                  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx variable.other.property.tsx\n                              ^\n                              source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx\n                               ^\n                               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx keyword.operator.arithmetic.tsx\n>        forecast.temperatureF +\n ^^^^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx\n         ^^^^^^^^\n         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx variable.other.object.tsx\n                 ^\n                 source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx punctuation.accessor.tsx\n                  ^^^^^^^^^^^^\n                  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx variable.other.property.tsx\n                              ^\n                              source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx\n                               ^\n                               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx keyword.operator.arithmetic.tsx\n>        forecast.summar;\n ^^^^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx\n         ^^^^^^^^\n         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx variable.other.object.tsx\n                 ^\n                 source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx punctuation.accessor.tsx\n                  ^^^^^^\n                  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx variable.other.property.tsx\n                        ^\n                        source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx punctuation.terminator.statement.tsx\n>    });\n ^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx\n     ^\n     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx punctuation.definition.block.tsx\n      ^\n      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.var.expr.tsx meta.brace.round.tsx\n       ^\n       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.terminator.statement.tsx\n>    return <table className=\"table\">\n ^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n     ^^^^^^\n     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx keyword.control.flow.tsx\n           ^\n           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n            ^\n            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n             ^^^^^\n             source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx entity.name.tag.tsx\n                  ^\n                  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx\n                   ^^^^^^^^^\n                   source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                            ^\n                            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                             ^\n                             source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.begin.tsx\n                              ^^^^^\n                              source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx\n                                   ^\n                                   source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.end.tsx\n                                    ^\n                                    source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>    <thread>\n ^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx\n     ^\n     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n      ^^^^^^\n      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n            ^\n            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>    </thread>\n ^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n     ^^\n     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n       ^^^^^^\n       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n             ^\n             source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>    <tbody>\n ^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx\n     ^\n     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n      ^^^^^\n      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n           ^\n           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>    {\n ^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n     ^\n     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx punctuation.section.embedded.begin.tsx\n>      this.props.forecasts.map(forecast => {\n ^^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx\n       ^^^^\n       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx variable.language.this.tsx\n           ^\n           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx punctuation.accessor.tsx\n            ^^^^^\n            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx variable.other.object.property.tsx\n                 ^\n                 source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx punctuation.accessor.tsx\n                  ^^^^^^^^^\n                  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx variable.other.object.property.tsx\n                           ^\n                           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx punctuation.accessor.tsx\n                            ^^^\n                            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx entity.name.function.tsx\n                               ^\n                               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.brace.round.tsx\n                                ^^^^^^^^\n                                source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx variable.parameter.tsx\n                                        ^\n                                        source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx\n                                         ^^\n                                         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n                                           ^\n                                           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx\n                                            ^\n                                            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx punctuation.definition.block.tsx\n>     return forecast.dateFormatted +\n ^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx\n      ^^^^^^\n      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx keyword.control.flow.tsx\n            ^\n            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx\n             ^^^^^^^^\n             source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx variable.other.object.tsx\n                     ^\n                     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx punctuation.accessor.tsx\n                      ^^^^^^^^^^^^^\n                      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx variable.other.property.tsx\n                                   ^\n                                   source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx\n                                    ^\n                                    source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx keyword.operator.arithmetic.tsx\n>        forecast.temperatureC +\n ^^^^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx\n         ^^^^^^^^\n         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx variable.other.object.tsx\n                 ^\n                 source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx punctuation.accessor.tsx\n                  ^^^^^^^^^^^^\n                  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx variable.other.property.tsx\n                              ^\n                              source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx\n                               ^\n                               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx keyword.operator.arithmetic.tsx\n>        forecast.temperatureF +\n ^^^^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx\n         ^^^^^^^^\n         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx variable.other.object.tsx\n                 ^\n                 source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx punctuation.accessor.tsx\n                  ^^^^^^^^^^^^\n                  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx variable.other.property.tsx\n                              ^\n                              source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx\n                               ^\n                               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx keyword.operator.arithmetic.tsx\n>        forecast.summar;\n ^^^^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx\n         ^^^^^^^^\n         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx variable.other.object.tsx\n                 ^\n                 source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx punctuation.accessor.tsx\n                  ^^^^^^\n                  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx variable.other.property.tsx\n                        ^\n                        source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx punctuation.terminator.statement.tsx\n>    }) \n ^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx\n     ^\n     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx punctuation.definition.block.tsx\n      ^\n      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.brace.round.tsx\n       ^^\n       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx\n>    }\n ^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx\n     ^\n     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx punctuation.section.embedded.end.tsx\n>    </tbody>\n ^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n     ^^\n     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n       ^^^^^\n       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n            ^\n            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>    </table>;\n ^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx\n     ^^\n     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n       ^^^^^\n       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx entity.name.tag.tsx\n            ^\n            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n             ^\n             source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.terminator.statement.tsx\n> }\n ^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n  ^\n  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.definition.block.tsx\n>\n ^\n source.tsx meta.class.tsx\n>}\n ^\n source.tsx meta.class.tsx punctuation.definition.block.tsx"
  },
  {
    "path": "tests/baselines/Issue283.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx \nimport * as React from 'react';\n\nexport default class Home extends React.Component<any, void> {\n    public render() {\n        return <div>\n            <h1>Hello, world!</h1>\n            <p>Welcome to your new single-page application, built with:</p>\n            <ul>\n                <li><a href='https://get.asp.net/'>ASP.NET Core</a> and <a href='https://msdn.microsoft.com/en-us/library/67ef8sbd.aspx'>C#</a> for cross-platform server-side code</li>\n                <li><a href='https://facebook.github.io/react/'>React</a>, <a href='http://redux.js.org'>Redux</a>, and <a href='http://www.typescriptlang.org/'>TypeScript</a> for client-side code</li>\n                <li><a href='https://webpack.github.io/'>Webpack</a> for building and bundling client-side resources</li>\n                <li><a href='http://getbootstrap.com/'>Bootstrap</a> for layout and styling</li>\n            </ul>\n            <p>To help you get started, we've also set up:</p>\n            <ul>\n                <li><strong>Client-side navigation</strong>. For example, click <em>Counter</em> then <em>Back</em> to return here.</li>\n                <li><strong>Webpack dev middleware</strong>. In development mode, there's no need to run the <code>webpack</code> build tool. Your client-side resources are dynamically built on demand. Updates are available as soon as you modify any file.</li>\n                <li><strong>Hot module replacement</strong>. In development mode, you don't even need to reload the page after making most changes. Within seconds of saving changes to files, rebuilt React components will be injected directly into your running application, preserving its live state.</li>\n                <li><strong>Efficient production builds</strong>. In production mode, development-time features are disabled, and the <code>webpack</code> build tool produces minified static CSS and JavaScript files.</li>\n                <li><strong>Server-side prerendering</strong>. To optimize startup time, your React application is first rendered on the server. The initial HTML and state is then transferred to the browser, where client-side code picks up where the server left off.</li>\n            </ul>\n        </div>;\n    }\n}\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx \n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>import * as React from 'react';\n ^^^^^^\n source.tsx meta.import.tsx keyword.control.import.tsx\n       ^\n       source.tsx meta.import.tsx\n        ^\n        source.tsx meta.import.tsx constant.language.import-export-all.tsx\n         ^\n         source.tsx meta.import.tsx\n          ^^\n          source.tsx meta.import.tsx keyword.control.as.tsx\n            ^\n            source.tsx meta.import.tsx\n             ^^^^^\n             source.tsx meta.import.tsx variable.other.readwrite.alias.tsx\n                  ^\n                  source.tsx meta.import.tsx\n                   ^^^^\n                   source.tsx meta.import.tsx keyword.control.from.tsx\n                       ^\n                       source.tsx meta.import.tsx\n                        ^\n                        source.tsx meta.import.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                         ^^^^^\n                         source.tsx meta.import.tsx string.quoted.single.tsx\n                              ^\n                              source.tsx meta.import.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                               ^\n                               source.tsx punctuation.terminator.statement.tsx\n>\n ^\n source.tsx\n>export default class Home extends React.Component<any, void> {\n ^^^^^^\n source.tsx meta.export.default.tsx keyword.control.export.tsx\n       ^\n       source.tsx meta.export.default.tsx\n        ^^^^^^^\n        source.tsx meta.export.default.tsx keyword.control.default.tsx\n               ^\n               source.tsx meta.export.default.tsx\n                ^^^^^\n                source.tsx meta.export.default.tsx meta.class.tsx storage.type.class.tsx\n                     ^\n                     source.tsx meta.export.default.tsx meta.class.tsx\n                      ^^^^\n                      source.tsx meta.export.default.tsx meta.class.tsx entity.name.type.class.tsx\n                          ^\n                          source.tsx meta.export.default.tsx meta.class.tsx\n                           ^^^^^^^\n                           source.tsx meta.export.default.tsx meta.class.tsx storage.modifier.tsx\n                                  ^\n                                  source.tsx meta.export.default.tsx meta.class.tsx\n                                   ^^^^^\n                                   source.tsx meta.export.default.tsx meta.class.tsx entity.name.type.module.tsx\n                                        ^\n                                        source.tsx meta.export.default.tsx meta.class.tsx punctuation.accessor.tsx\n                                         ^^^^^^^^^\n                                         source.tsx meta.export.default.tsx meta.class.tsx entity.other.inherited-class.tsx\n                                                  ^\n                                                  source.tsx meta.export.default.tsx meta.class.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n                                                   ^^^\n                                                   source.tsx meta.export.default.tsx meta.class.tsx meta.type.parameters.tsx support.type.primitive.tsx\n                                                      ^\n                                                      source.tsx meta.export.default.tsx meta.class.tsx meta.type.parameters.tsx punctuation.separator.comma.tsx\n                                                       ^\n                                                       source.tsx meta.export.default.tsx meta.class.tsx meta.type.parameters.tsx\n                                                        ^^^^\n                                                        source.tsx meta.export.default.tsx meta.class.tsx meta.type.parameters.tsx support.type.primitive.tsx\n                                                            ^\n                                                            source.tsx meta.export.default.tsx meta.class.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n                                                             ^\n                                                             source.tsx meta.export.default.tsx meta.class.tsx\n                                                              ^\n                                                              source.tsx meta.export.default.tsx meta.class.tsx punctuation.definition.block.tsx\n>    public render() {\n ^^^^\n source.tsx meta.export.default.tsx meta.class.tsx\n     ^^^^^^\n     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx storage.modifier.tsx\n           ^\n           source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx\n            ^^^^^^\n            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.definition.method.tsx entity.name.function.tsx\n                  ^\n                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n                   ^\n                   source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n                    ^\n                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx\n                     ^\n                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.definition.block.tsx\n>        return <div>\n ^^^^^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n         ^^^^^^\n         source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx keyword.control.flow.tsx\n               ^\n               source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n                ^\n                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                 ^^^\n                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                    ^\n                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>            <h1>Hello, world!</h1>\n ^^^^^^^^^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n             ^\n             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n              ^^\n              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                ^\n                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                 ^^^^^^^^^^^^^\n                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                              ^^\n                              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                ^^\n                                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                  ^\n                                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>            <p>Welcome to your new single-page application, built with:</p>\n ^^^^^^^^^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n             ^\n             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n              ^\n              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n               ^\n               source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                        ^^\n                                                                        source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                          ^\n                                                                          source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                           ^\n                                                                           source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>            <ul>\n ^^^^^^^^^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n             ^\n             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n              ^^\n              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                ^\n                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>                <li><a href='https://get.asp.net/'>ASP.NET Core</a> and <a href='https://msdn.microsoft.com/en-us/library/67ef8sbd.aspx'>C#</a> for cross-platform server-side code</li>\n ^^^^^^^^^^^^^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                 ^\n                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                  ^^\n                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                    ^\n                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                     ^\n                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                      ^\n                      source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n                       ^\n                       source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n                        ^^^^\n                        source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                            ^\n                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                             ^\n                             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                              ^^^^^^^^^^^^^^^^^^^^\n                              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx\n                                                  ^\n                                                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                                   ^\n                                                   source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                    ^^^^^^^^^^^^\n                                                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx\n                                                                ^^\n                                                                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                                                                  ^\n                                                                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n                                                                   ^\n                                                                   source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                                    ^^^^^\n                                                                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                         ^\n                                                                         source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                                                                          ^\n                                                                          source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n                                                                           ^\n                                                                           source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                                                            ^^^^\n                                                                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                                                                                ^\n                                                                                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                                                                                 ^\n                                                                                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                                                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx\n                                                                                                                                        ^\n                                                                                                                                        source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                                                                                                                         ^\n                                                                                                                                         source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                                                                                                          ^^\n                                                                                                                                          source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx\n                                                                                                                                            ^^\n                                                                                                                                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                                                                                                                                              ^\n                                                                                                                                              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n                                                                                                                                               ^\n                                                                                                                                               source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                                                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                                                                                                                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                                                                                                                                    ^^\n                                                                                                                                                                                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                                                                                                                                      ^^\n                                                                                                                                                                                      source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                                                                                                                                        ^\n                                                                                                                                                                                        source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>                <li><a href='https://facebook.github.io/react/'>React</a>, <a href='http://redux.js.org'>Redux</a>, and <a href='http://www.typescriptlang.org/'>TypeScript</a> for client-side code</li>\n ^^^^^^^^^^^^^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                 ^\n                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                  ^^\n                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                    ^\n                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                     ^\n                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                      ^\n                      source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n                       ^\n                       source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n                        ^^^^\n                        source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                            ^\n                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                             ^\n                             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx\n                                                               ^\n                                                               source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                                                ^\n                                                                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                                 ^^^^^\n                                                                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx\n                                                                      ^^\n                                                                      source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                                                                        ^\n                                                                        source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n                                                                         ^\n                                                                         source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                                          ^^\n                                                                          source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                            ^\n                                                                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                                                                             ^\n                                                                             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n                                                                              ^\n                                                                              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                                                               ^^^^\n                                                                               source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                                                                                   ^\n                                                                                   source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                                                                                    ^\n                                                                                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                                                                                     ^^^^^^^^^^^^^^^^^^^\n                                                                                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx\n                                                                                                        ^\n                                                                                                        source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                                                                                         ^\n                                                                                                         source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                                                                          ^^^^^\n                                                                                                          source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx\n                                                                                                               ^^\n                                                                                                               source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                                                                                                                 ^\n                                                                                                                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n                                                                                                                  ^\n                                                                                                                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                                                                                   ^^^^^^\n                                                                                                                   source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                                                                         ^\n                                                                                                                         source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                                                                                                                          ^\n                                                                                                                          source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n                                                                                                                           ^\n                                                                                                                           source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                                                                                                            ^^^^\n                                                                                                                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                                                                                                                                ^\n                                                                                                                                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                                                                                                                                 ^\n                                                                                                                                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                                                                                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                                                                                                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx\n                                                                                                                                                                ^\n                                                                                                                                                                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                                                                                                                                                 ^\n                                                                                                                                                                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                                                                                                                                  ^^^^^^^^^^\n                                                                                                                                                                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx\n                                                                                                                                                                            ^^\n                                                                                                                                                                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                                                                                                                                                                              ^\n                                                                                                                                                                              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n                                                                                                                                                                               ^\n                                                                                                                                                                               source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                                                                                                                                                ^^^^^^^^^^^^^^^^^^^^^\n                                                                                                                                                                                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                                                                                                                                                     ^^\n                                                                                                                                                                                                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                                                                                                                                                       ^^\n                                                                                                                                                                                                       source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                                                                                                                                                         ^\n                                                                                                                                                                                                         source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>                <li><a href='https://webpack.github.io/'>Webpack</a> for building and bundling client-side resources</li>\n ^^^^^^^^^^^^^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                 ^\n                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                  ^^\n                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                    ^\n                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                     ^\n                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                      ^\n                      source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n                       ^\n                       source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n                        ^^^^\n                        source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                            ^\n                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                             ^\n                             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                              ^^^^^^^^^^^^^^^^^^^^^^^^^^\n                              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx\n                                                        ^\n                                                        source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                                         ^\n                                                         source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                          ^^^^^^^\n                                                          source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx\n                                                                 ^^\n                                                                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                                                                   ^\n                                                                   source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n                                                                    ^\n                                                                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                                                                     ^^\n                                                                                                                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                                                                       ^^\n                                                                                                                       source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                                                                         ^\n                                                                                                                         source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>                <li><a href='http://getbootstrap.com/'>Bootstrap</a> for layout and styling</li>\n ^^^^^^^^^^^^^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                 ^\n                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                  ^^\n                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                    ^\n                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                     ^\n                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                      ^\n                      source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n                       ^\n                       source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n                        ^^^^\n                        source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                            ^\n                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                             ^\n                             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                              ^^^^^^^^^^^^^^^^^^^^^^^^\n                              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx\n                                                      ^\n                                                      source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                                       ^\n                                                       source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                        ^^^^^^^^^\n                                                        source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx\n                                                                 ^^\n                                                                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                                                                   ^\n                                                                   source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n                                                                    ^\n                                                                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                                     ^^^^^^^^^^^^^^^^^^^^^^^\n                                                                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                                            ^^\n                                                                                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                                              ^^\n                                                                                              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                                                ^\n                                                                                                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>            </ul>\n ^^^^^^^^^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n             ^^\n             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n               ^^\n               source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                 ^\n                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>            <p>To help you get started, we've also set up:</p>\n ^^^^^^^^^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n             ^\n             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n              ^\n              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n               ^\n               source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                           ^^\n                                                           source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                             ^\n                                                             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                              ^\n                                                              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>            <ul>\n ^^^^^^^^^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n             ^\n             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n              ^^\n              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                ^\n                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>                <li><strong>Client-side navigation</strong>. For example, click <em>Counter</em> then <em>Back</em> to return here.</li>\n ^^^^^^^^^^^^^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                 ^\n                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                  ^^\n                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                    ^\n                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                     ^\n                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                      ^^^^^^\n                      source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                            ^\n                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                             ^^^^^^^^^^^^^^^^^^^^^^\n                             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                   ^^\n                                                   source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                     ^^^^^^\n                                                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                           ^\n                                                           source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                            ^^^^^^^^^^^^^^^^^^^^^\n                                                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                                 ^\n                                                                                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                                  ^^\n                                                                                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                                    ^\n                                                                                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                                                     ^^^^^^^\n                                                                                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                                            ^^\n                                                                                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                                              ^^\n                                                                                              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                                                ^\n                                                                                                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                                                                 ^^^^^^\n                                                                                                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                                                       ^\n                                                                                                       source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                                                        ^^\n                                                                                                        source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                                                          ^\n                                                                                                          source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                                                                           ^^^^\n                                                                                                           source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                                                               ^^\n                                                                                                               source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                                                                 ^^\n                                                                                                                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                                                                   ^\n                                                                                                                   source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                                                                                    ^^^^^^^^^^^^^^^^\n                                                                                                                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                                                                                    ^^\n                                                                                                                                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                                                                                      ^^\n                                                                                                                                      source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                                                                                        ^\n                                                                                                                                        source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>                <li><strong>Webpack dev middleware</strong>. In development mode, there's no need to run the <code>webpack</code> build tool. Your client-side resources are dynamically built on demand. Updates are available as soon as you modify any file.</li>\n ^^^^^^^^^^^^^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                 ^\n                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                  ^^\n                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                    ^\n                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                     ^\n                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                      ^^^^^^\n                      source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                            ^\n                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                             ^^^^^^^^^^^^^^^^^^^^^^\n                             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                   ^^\n                                                   source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                     ^^^^^^\n                                                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                           ^\n                                                           source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                                                              ^\n                                                                                                              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                                                               ^^^^\n                                                                                                               source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                                                                   ^\n                                                                                                                   source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                                                                                    ^^^^^^^\n                                                                                                                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                                                                           ^^\n                                                                                                                           source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                                                                             ^^^^\n                                                                                                                             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                                                                                 ^\n                                                                                                                                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                                                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                                                                                                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                                                                                                                                                                                                                ^^\n                                                                                                                                                                                                                                                                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                                                                                                                                                                                                                  ^^\n                                                                                                                                                                                                                                                                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>                <li><strong>Hot module replacement</strong>. In development mode, you don't even need to reload the page after making most changes. Within seconds of saving changes to files, rebuilt React components will be injected directly into your running application, preserving its live state.</li>\n ^^^^^^^^^^^^^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                 ^\n                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                  ^^\n                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                    ^\n                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                     ^\n                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                      ^^^^^^\n                      source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                            ^\n                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                             ^^^^^^^^^^^^^^^^^^^^^^\n                             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                   ^^\n                                                   source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                     ^^^^^^\n                                                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                           ^\n                                                           source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                                                                                                                                                                                                                                                            ^^\n                                                                                                                                                                                                                                                                                                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                                                                                                                                                                                                                                                              ^^\n                                                                                                                                                                                                                                                                                                              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                                                                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>                <li><strong>Efficient production builds</strong>. In production mode, development-time features are disabled, and the <code>webpack</code> build tool produces minified static CSS and JavaScript files.</li>\n ^^^^^^^^^^^^^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                 ^\n                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                  ^^\n                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                    ^\n                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                     ^\n                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                      ^^^^^^\n                      source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                            ^\n                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                        ^^\n                                                        source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                          ^^^^^^\n                                                          source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                ^\n                                                                source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                                                                                       ^\n                                                                                                                                       source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                                                                                        ^^^^\n                                                                                                                                        source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                                                                                            ^\n                                                                                                                                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                                                                                                             ^^^^^^^\n                                                                                                                                             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                                                                                                    ^^\n                                                                                                                                                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                                                                                                      ^^^^\n                                                                                                                                                      source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                                                                                                          ^\n                                                                                                                                                          source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                                                                                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                                                                                                                           source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                                                                                                                                                                         ^^\n                                                                                                                                                                                                                         source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                                                                                                                                                                           ^^\n                                                                                                                                                                                                                           source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>                <li><strong>Server-side prerendering</strong>. To optimize startup time, your React application is first rendered on the server. The initial HTML and state is then transferred to the browser, where client-side code picks up where the server left off.</li>\n ^^^^^^^^^^^^^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                 ^\n                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                  ^^\n                  source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                    ^\n                    source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                     ^\n                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                      ^^^^^^\n                      source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                            ^\n                            source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                             ^^^^^^^^^^^^^^^^^^^^^^^^\n                             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                     ^^\n                                                     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                       ^^^^^^\n                                                       source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                             ^\n                                                             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                                                                                                                                                                                                                                                           ^^\n                                                                                                                                                                                                                                                                           source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                                                                                                                                                                                                                             ^^\n                                                                                                                                                                                                                                                                             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                               source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>            </ul>\n ^^^^^^^^^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n             ^^\n             source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n               ^^\n               source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                 ^\n                 source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>        </div>;\n ^^^^^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n         ^^\n         source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n           ^^^\n           source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n              ^\n              source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n               ^\n               source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.terminator.statement.tsx\n>    }\n ^^^^\n source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n     ^\n     source.tsx meta.export.default.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.definition.block.tsx\n>}\n ^\n source.tsx meta.export.default.tsx meta.class.tsx punctuation.definition.block.tsx"
  },
  {
    "path": "tests/baselines/Issue285.baseline.txt",
    "content": "original file\n-----------------------------------\nlet model = {\n            links: {\n                new: \"sample\"\n            },\n        };\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let model = {\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>            links: {\n ^^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n             ^^^^^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n>                new: \"sample\"\n ^^^^^^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n                 ^^^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                       ^^^^^^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>            },\n ^^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        };\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n          ^\n          source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue288.baseline.txt",
    "content": "original file\n-----------------------------------\n// Issue 288: \"function\" in \"functionName\" gets highlighted.\n// Fixed in pull request #289.\n\nfunction Name(){\n}\nvar AnotherName = function(){\n}\n\nexport function eName(){\n}\nexport var eAnotherName = function(){\n}\n\nvar functionName=1;\nfunctionName=1;\n\nexport var functionName2=1;\n\nvar exportName=\"hello\";\nexportName2=\"hello\";\n\nvar returnName=1;\nreturnName+=1;\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// Issue 288: \"function\" in \"functionName\" gets highlighted.\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>// Fixed in pull request #289.\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>function Name(){\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>var AnotherName = function(){\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts entity.name.function.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^^^^^^^^\n                   source.ts meta.var.expr.ts meta.function.expression.ts storage.type.function.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>export function eName(){\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>export var eAnotherName = function(){\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^\n        source.ts meta.var.expr.ts storage.type.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^^^^^^^^^^^^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts entity.name.function.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                         ^\n                         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                          ^\n                          source.ts meta.var.expr.ts\n                           ^^^^^^^^\n                           source.ts meta.var.expr.ts meta.function.expression.ts storage.type.function.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>var functionName=1;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>functionName=1;\n ^^^^^^^^^^^^\n source.ts variable.other.readwrite.ts\n             ^\n             source.ts keyword.operator.assignment.ts\n              ^\n              source.ts constant.numeric.decimal.ts\n               ^\n               source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>export var functionName2=1;\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^\n        source.ts meta.var.expr.ts storage.type.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^^^^^^^^^^^^^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                         ^\n                         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                          ^\n                          source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                           ^\n                           source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>var exportName=\"hello\";\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                 ^^^^^\n                 source.ts meta.var.expr.ts string.quoted.double.ts\n                      ^\n                      source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts\n>exportName2=\"hello\";\n ^^^^^^^^^^^\n source.ts variable.other.readwrite.ts\n            ^\n            source.ts keyword.operator.assignment.ts\n             ^\n             source.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n              ^^^^^\n              source.ts string.quoted.double.ts\n                   ^\n                   source.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>var returnName=1;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n>returnName+=1;\n ^^^^^^^^^^\n source.ts variable.other.readwrite.ts\n           ^^\n           source.ts keyword.operator.assignment.compound.ts\n             ^\n             source.ts constant.numeric.decimal.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue292.baseline.txt",
    "content": "original file\n-----------------------------------\n    const shellOptions: IOptions = {\n        filesToOpen,\n        filesToCreate,\n        filesToDiff\n    };\n    const a = {\n        filesToOpen: filesToOpen,\n        filesToCreate: filesToCreate,\n        filesToDiff: filesToDiff\n    }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>    const shellOptions: IOptions = {\n ^^^^\n source.ts\n     ^^^^^\n     source.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^^^^^^^^^^^^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                         ^^^^^^^^\n                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                                  ^\n                                  source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                   ^\n                                   source.ts meta.var.expr.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        filesToOpen,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        filesToCreate,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        filesToDiff\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n>    };\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts punctuation.terminator.statement.ts\n>    const a = {\n ^^^^\n source.ts\n     ^^^^^\n     source.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        filesToOpen: filesToOpen,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                      ^^^^^^^^^^^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        filesToCreate: filesToCreate,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                        ^^^^^^^^^^^^^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        filesToDiff: filesToDiff\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                      ^^^^^^^^^^^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n>    }\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue294.baseline.txt",
    "content": "original file\n-----------------------------------\nswitch (0) {\n    case 0: {\n        const zero = 0;\n        return zero;\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>switch (0) {\n ^^^^^^\n source.ts switch-statement.expr.ts switch-expression.expr.ts keyword.control.switch.ts\n       ^\n       source.ts switch-statement.expr.ts switch-expression.expr.ts\n        ^\n        source.ts switch-statement.expr.ts switch-expression.expr.ts meta.brace.round.ts\n         ^\n         source.ts switch-statement.expr.ts switch-expression.expr.ts constant.numeric.decimal.ts\n          ^\n          source.ts switch-statement.expr.ts switch-expression.expr.ts meta.brace.round.ts\n           ^\n           source.ts switch-statement.expr.ts\n            ^\n            source.ts switch-statement.expr.ts switch-block.expr.ts punctuation.definition.block.ts\n>    case 0: {\n ^^^^\n source.ts switch-statement.expr.ts switch-block.expr.ts\n     ^^^^\n     source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n         ^\n         source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts\n          ^\n          source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts constant.numeric.decimal.ts\n           ^\n           source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n            ^\n            source.ts switch-statement.expr.ts switch-block.expr.ts\n             ^\n             source.ts switch-statement.expr.ts switch-block.expr.ts meta.block.ts punctuation.definition.block.ts\n>        const zero = 0;\n ^^^^^^^^\n source.ts switch-statement.expr.ts switch-block.expr.ts meta.block.ts\n         ^^^^^\n         source.ts switch-statement.expr.ts switch-block.expr.ts meta.block.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts switch-statement.expr.ts switch-block.expr.ts meta.block.ts meta.var.expr.ts\n               ^^^^\n               source.ts switch-statement.expr.ts switch-block.expr.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts switch-statement.expr.ts switch-block.expr.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts switch-statement.expr.ts switch-block.expr.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts switch-statement.expr.ts switch-block.expr.ts meta.block.ts meta.var.expr.ts\n                      ^\n                      source.ts switch-statement.expr.ts switch-block.expr.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                       ^\n                       source.ts switch-statement.expr.ts switch-block.expr.ts meta.block.ts punctuation.terminator.statement.ts\n>        return zero;\n ^^^^^^^^\n source.ts switch-statement.expr.ts switch-block.expr.ts meta.block.ts\n         ^^^^^^\n         source.ts switch-statement.expr.ts switch-block.expr.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts switch-statement.expr.ts switch-block.expr.ts meta.block.ts\n                ^^^^\n                source.ts switch-statement.expr.ts switch-block.expr.ts meta.block.ts variable.other.readwrite.ts\n                    ^\n                    source.ts switch-statement.expr.ts switch-block.expr.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts switch-statement.expr.ts switch-block.expr.ts meta.block.ts\n     ^\n     source.ts switch-statement.expr.ts switch-block.expr.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts switch-statement.expr.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue3.baseline.txt",
    "content": "original file\n-----------------------------------\nlet regex = /**/ /foo/;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let regex = /**/ /foo/;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^^\n             source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n               ^^\n               source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n                 ^\n                 source.ts meta.var.expr.ts string.regexp.ts\n                  ^\n                  source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n                   ^^^\n                   source.ts meta.var.expr.ts string.regexp.ts\n                      ^\n                      source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue304.baseline.txt",
    "content": "original file\n-----------------------------------\nexport const EditorPanel = connect(\n    (state: Immutable<AppState>): Object => ( {\n        edditorState: (state.editors[state.activeTab]),\n        macroSettingsOpen: state.macroSettingsOpen,\n    }),\n    (dispatch: Dispatch): Object => ({\n        onchange(next: EditorSDtate): void { dispatch(actions) }\n    })\n)\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export const EditorPanel = connect(\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^^^\n        source.ts meta.var.expr.ts storage.type.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^^^^^^^^^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                          ^\n                          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                           ^\n                           source.ts meta.var.expr.ts\n                            ^^^^^^^\n                            source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.brace.round.ts\n>    (state: Immutable<AppState>): Object => ( {\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n      ^^^^^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n             ^^^^^^^^^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                       ^^^^^^^^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts entity.name.type.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n                                   ^^^^^^\n                                   source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts entity.name.type.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n                                          ^^\n                                          source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.arrow.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.brace.round.ts\n                                              ^\n                                              source.ts meta.var.expr.ts\n                                               ^\n                                               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        edditorState: (state.editors[state.activeTab]),\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                        ^^^^^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                              ^^^^^^^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.property.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.brace.square.ts\n                                      ^^^^^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts variable.other.object.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts punctuation.accessor.ts\n                                            ^^^^^^^^^\n                                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts variable.other.property.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.brace.square.ts\n                                                      ^\n                                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                                                       ^\n                                                       source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        macroSettingsOpen: state.macroSettingsOpen,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^^^^^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                            ^^^^^\n                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                                  ^^^^^^^^^^^^^^^^^\n                                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.property.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>    }),\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts meta.brace.round.ts\n       ^\n       source.ts meta.var.expr.ts punctuation.separator.comma.ts\n>    (dispatch: Dispatch): Object => ({\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n      ^^^^^^^^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                ^^^^^^^^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n                           ^^^^^^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts entity.name.type.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n                                  ^^\n                                  source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.arrow.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        onchange(next: EditorSDtate): void { dispatch(actions) }\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n         ^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^^^^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                        ^^^^^^^^^^^^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.return.type.ts\n                                       ^^^^\n                                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.return.type.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n                                              ^^^^^^^^\n                                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                                      ^\n                                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                                       ^^^^^^^\n                                                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                                                              ^\n                                                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                                               ^\n                                                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n                                                                ^\n                                                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    })\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts meta.brace.round.ts\n>)\n ^\n source.ts meta.var.expr.ts meta.brace.round.ts"
  },
  {
    "path": "tests/baselines/Issue305.baseline.txt",
    "content": "original file\n-----------------------------------\nabstract class Base {\n    protected abstract topic: string\n    constructor(protected wire: Transport, protected token?: string, readonly bar?: boolean) { }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>abstract class Base {\n ^^^^^^^^\n source.ts meta.class.ts storage.modifier.ts\n         ^\n         source.ts meta.class.ts\n          ^^^^^\n          source.ts meta.class.ts storage.type.class.ts\n               ^\n               source.ts meta.class.ts\n                ^^^^\n                source.ts meta.class.ts entity.name.type.class.ts\n                    ^\n                    source.ts meta.class.ts\n                     ^\n                     source.ts meta.class.ts punctuation.definition.block.ts\n>    protected abstract topic: string\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n              ^\n              source.ts meta.class.ts\n               ^^^^^^^^\n               source.ts meta.class.ts storage.modifier.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts\n                        ^^^^^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                               ^^^^^^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>    constructor(protected wire: Transport, protected token?: string, readonly bar?: boolean) { }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^^^^^^^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts storage.modifier.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                           ^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                 ^^^^^^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                            ^^^^^^^^^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts storage.modifier.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                      ^^^^^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts keyword.operator.optional.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                              ^^^^^^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                    ^\n                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                     ^\n                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                                      ^^^^^^^^\n                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts storage.modifier.ts\n                                                                              ^\n                                                                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                                               ^^^\n                                                                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                                                                  ^\n                                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts keyword.operator.optional.ts\n                                                                                   ^\n                                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                                    ^\n                                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                                                     ^^^^^^^\n                                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                                            ^\n                                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                                             ^\n                                                                                             source.ts meta.class.ts meta.method.declaration.ts\n                                                                                              ^\n                                                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                                                                               ^\n                                                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                                                                ^\n                                                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue307.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Test {\n  method() {\n    const obj = { a: 'hello' };\n    const {\n      a\n    } = obj;\n    const x = 'world';\n  }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Test {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n           ^\n           source.ts meta.class.ts\n            ^\n            source.ts meta.class.ts punctuation.definition.block.ts\n>  method() {\n ^^\n source.ts meta.class.ts meta.method.declaration.ts\n   ^^^^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    const obj = { a: 'hello' };\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n           ^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                       ^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    const {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n>      a\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.constant.ts\n>    } = obj;\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n         ^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    const x = 'world';\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                ^^^^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts string.quoted.single.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>  }\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue314.baseline.txt",
    "content": "original file\n-----------------------------------\nlet x = a ? b as X : c;\nlet y = 123;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let x = a ? b as X : c;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.ternary.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^\n               source.ts meta.var.expr.ts keyword.control.as.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts entity.name.type.ts\n                   ^\n                   source.ts meta.var.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.ternary.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.var.expr.ts variable.other.readwrite.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts\n>let y = 123;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^\n         source.ts meta.var.expr.ts constant.numeric.decimal.ts\n            ^\n            source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue318.baseline.txt",
    "content": "original file\n-----------------------------------\n    this.Then(\n        /^display prompt in branch \"([^\"]*)\"$/,\n        async function (branchName) {\n            const expected = application.prompt(branchName);\n            const actual = await application.getOnceOut();\n            expect(actual).to.be.equal(expected);\n        }\n    );\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>    this.Then(\n ^^^^\n source.ts\n     ^^^^\n     source.ts meta.function-call.ts variable.language.this.ts\n         ^\n         source.ts meta.function-call.ts punctuation.accessor.ts\n          ^^^^\n          source.ts meta.function-call.ts entity.name.function.ts\n              ^\n              source.ts meta.brace.round.ts\n>        /^display prompt in branch \"([^\"]*)\"$/,\n ^^^^^^^^\n source.ts\n         ^\n         source.ts string.regexp.ts punctuation.definition.string.begin.ts\n          ^\n          source.ts string.regexp.ts keyword.control.anchor.regexp\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^\n           source.ts string.regexp.ts\n                                     ^\n                                     source.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp\n                                      ^\n                                      source.ts string.regexp.ts meta.group.regexp constant.other.character-class.set.regexp punctuation.definition.character-class.regexp\n                                       ^\n                                       source.ts string.regexp.ts meta.group.regexp constant.other.character-class.set.regexp keyword.operator.negation.regexp\n                                        ^\n                                        source.ts string.regexp.ts meta.group.regexp constant.other.character-class.set.regexp\n                                         ^\n                                         source.ts string.regexp.ts meta.group.regexp constant.other.character-class.set.regexp punctuation.definition.character-class.regexp\n                                          ^\n                                          source.ts string.regexp.ts meta.group.regexp keyword.operator.quantifier.regexp\n                                           ^\n                                           source.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp\n                                            ^\n                                            source.ts string.regexp.ts\n                                             ^\n                                             source.ts string.regexp.ts keyword.control.anchor.regexp\n                                              ^\n                                              source.ts string.regexp.ts punctuation.definition.string.end.ts\n                                               ^\n                                               source.ts punctuation.separator.comma.ts\n>        async function (branchName) {\n ^^^^^^^^\n source.ts\n         ^^^^^\n         source.ts meta.function.expression.ts storage.modifier.async.ts\n              ^\n              source.ts meta.function.expression.ts\n               ^^^^^^^^\n               source.ts meta.function.expression.ts storage.type.function.ts\n                       ^\n                       source.ts meta.function.expression.ts\n                        ^\n                        source.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                         ^^^^^^^^^^\n                         source.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                   ^\n                                   source.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                    ^\n                                    source.ts meta.function.expression.ts\n                                     ^\n                                     source.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>            const expected = application.prompt(branchName);\n ^^^^^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts\n             ^^^^^\n             source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                  ^\n                  source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                   ^^^^^^^^\n                   source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                           ^\n                           source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                            ^\n                            source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                             ^\n                             source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                              ^^^^^^^^^^^\n                              source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                                         ^\n                                         source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                          ^^^^^^\n                                          source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.function.ts\n                                                ^\n                                                source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                 ^^^^^^^^^^\n                                                 source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                           ^\n                                                           source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                            ^\n                                                            source.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>            const actual = await application.getOnceOut();\n ^^^^^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts\n             ^^^^^\n             source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                  ^\n                  source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                   ^^^^^^\n                   source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                         ^\n                         source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                          ^\n                          source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                           ^\n                           source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                            ^^^^^\n                            source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.control.flow.ts\n                                 ^\n                                 source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                  ^^^^^^^^^^^\n                                  source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                                             ^\n                                             source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                              ^^^^^^^^^^\n                                              source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                                        ^\n                                                        source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                         ^\n                                                         source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                          ^\n                                                          source.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>            expect(actual).to.be.equal(expected);\n ^^^^^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts\n             ^^^^^^\n             source.ts meta.function.expression.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                   ^\n                   source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                    ^^^^^^\n                    source.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                            ^^\n                            source.ts meta.function.expression.ts meta.block.ts variable.other.object.property.ts\n                              ^\n                              source.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                               ^^\n                               source.ts meta.function.expression.ts meta.block.ts variable.other.object.property.ts\n                                 ^\n                                 source.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                  ^^^^^\n                                  source.ts meta.function.expression.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                       ^\n                                       source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                        ^^^^^^^^\n                                        source.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                ^\n                                                source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                 ^\n                                                 source.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>        }\n ^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts\n         ^\n         source.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>    );\n ^^^^\n source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^\n      source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue32.baseline.txt",
    "content": "original file\n-----------------------------------\n/*\n\tTesting Isuue 32: Adding constructor as a support.type keword\n*/\n\ninterface NewInterface{\n\tcurrentData: Data;\n\tsetVal(d: Data)\n}\n\n\nclass NewClass implements NewInterface {\n\tcurrentData: Data;\n\tsetVal(d: Data){\n\t\tthis.currentData = d;\n\t}\n\tconstructor(m: number, n: string){}\n}\n\n/*\n\tTesting comments\n*/\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/*\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n>\tTesting Isuue 32: Adding constructor as a support.type keword\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.ts\n>*/\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n>\n ^\n source.ts\n>interface NewInterface{\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^^^^^^^^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n                       ^\n                       source.ts meta.interface.ts punctuation.definition.block.ts\n>\tcurrentData: Data;\n ^\n source.ts meta.interface.ts meta.field.declaration.ts\n  ^^^^^^^^^^^\n  source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n             ^\n             source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n               ^^^^\n               source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                   ^\n                   source.ts meta.interface.ts punctuation.terminator.statement.ts\n>\tsetVal(d: Data)\n ^\n source.ts meta.interface.ts meta.method.declaration.ts\n  ^^^^^^\n  source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n          ^\n          source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n            ^^^^\n            source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                ^\n                source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>\n ^\n source.ts\n>class NewClass implements NewInterface {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n               ^\n               source.ts meta.class.ts\n                ^^^^^^^^^^\n                source.ts meta.class.ts storage.modifier.ts\n                          ^\n                          source.ts meta.class.ts\n                           ^^^^^^^^^^^^\n                           source.ts meta.class.ts entity.other.inherited-class.ts\n                                       ^\n                                       source.ts meta.class.ts\n                                        ^\n                                        source.ts meta.class.ts punctuation.definition.block.ts\n>\tcurrentData: Data;\n ^\n source.ts meta.class.ts meta.field.declaration.ts\n  ^^^^^^^^^^^\n  source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                   ^\n                   source.ts meta.class.ts punctuation.terminator.statement.ts\n>\tsetVal(d: Data){\n ^\n source.ts meta.class.ts meta.method.declaration.ts\n  ^^^^^^\n  source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n            ^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\t\tthis.currentData = d;\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n        ^^^^^^^^^^^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\t}\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\tconstructor(m: number, n: string){}\n ^\n source.ts meta.class.ts meta.method.declaration.ts\n  ^^^^^^^^^^^\n  source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                            ^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>/*\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n>\tTesting comments\n ^^^^^^^^^^^^^^^^^^\n source.ts comment.block.ts\n>*/\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts"
  },
  {
    "path": "tests/baselines/Issue321.baseline.txt",
    "content": "original file\n-----------------------------------\nexport abstract class ExpressionContainer implements debug.IExpressionContainer {\n    public getChildren(debugService: debug.IDebugService): TPromise<debug.IExpression[]> {\n        if (!this.cacheChildren || !this.children) {\n            const session = debugService.activeSession;\n            // only variables with reference > 0 have children.\n            if (!session || this.reference <= 0) {\n                this.children = TPromise.as([]);\n            } else {\n\n                // Check if object has named variables, fetch them independent from indexed variables #9670\n                this.children = (!!this.namedVariables ? this.fetchVariables(session, undefined, undefined, 'named') : TPromise.as([])).then(childrenArray => {\n                    // Use a dynamic chunk size based on the number of elements #9774\n                    let chunkSize = ExpressionContainer.BASE_CHUNK_SIZE;\n                    while (this.indexedVariables > chunkSize * ExpressionContainer.BASE_CHUNK_SIZE) {\n                        chunkSize *= ExpressionContainer.BASE_CHUNK_SIZE;\n                    }\n\n                    if (this.indexedVariables > chunkSize) {\n                        // There are a lot of children, create fake intermediate values that represent chunks #9537\n                        const numberOfChunks = Math.ceil(this.indexedVariables / chunkSize);\n                        for (let i = 0; i < numberOfChunks; i++) {\n                            const start = this.startOfVariables + i * chunkSize;\n                            const count = Math.min(chunkSize, this.indexedVariables - i * chunkSize);\n                            childrenArray.push(new Variable(this, this.reference, `[${start}..${start + count - 1}]`, '', null, count, null, true, start));\n                        }\n\n                        return childrenArray;\n                    }\n\n                    const start = this.getChildrenInChunks ? this.startOfVariables : undefined;\n                    const count = this.getChildrenInChunks ? this.indexedVariables : undefined;\n                    return this.fetchVariables(session, start, count, 'indexed')\n                        .then(variables => arrays.distinct(childrenArray.concat(variables), child => child.name));\n                });\n            }\n        }\n\n        return this.children;\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export abstract class ExpressionContainer implements debug.IExpressionContainer {\n ^^^^^^\n source.ts meta.class.ts keyword.control.export.ts\n       ^\n       source.ts meta.class.ts\n        ^^^^^^^^\n        source.ts meta.class.ts storage.modifier.ts\n                ^\n                source.ts meta.class.ts\n                 ^^^^^\n                 source.ts meta.class.ts storage.type.class.ts\n                      ^\n                      source.ts meta.class.ts\n                       ^^^^^^^^^^^^^^^^^^^\n                       source.ts meta.class.ts entity.name.type.class.ts\n                                          ^\n                                          source.ts meta.class.ts\n                                           ^^^^^^^^^^\n                                           source.ts meta.class.ts storage.modifier.ts\n                                                     ^\n                                                     source.ts meta.class.ts\n                                                      ^^^^^\n                                                      source.ts meta.class.ts entity.name.type.module.ts\n                                                           ^\n                                                           source.ts meta.class.ts punctuation.accessor.ts\n                                                            ^^^^^^^^^^^^^^^^^^^^\n                                                            source.ts meta.class.ts entity.other.inherited-class.ts\n                                                                                ^\n                                                                                source.ts meta.class.ts\n                                                                                 ^\n                                                                                 source.ts meta.class.ts punctuation.definition.block.ts\n>    public getChildren(debugService: debug.IDebugService): TPromise<debug.IExpression[]> {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^^^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                        ^^^^^^^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                      ^^^^^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.module.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts punctuation.accessor.ts\n                                            ^^^^^^^^^^^^^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                          ^\n                                                          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                            ^^^^^^^^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n                                                                    ^\n                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                     ^^^^^\n                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts entity.name.type.module.ts\n                                                                          ^\n                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts punctuation.accessor.ts\n                                                                           ^^^^^^^^^^^\n                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts entity.name.type.ts\n                                                                                      ^\n                                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                       ^\n                                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                        ^\n                                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                                         ^\n                                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                                                          ^\n                                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        if (!this.cacheChildren || !this.children) {\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.logical.ts\n              ^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n                   ^^^^^^^^^^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                 ^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.logical.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.logical.ts\n                                     ^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n                                          ^^^^^^^^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>            const session = debugService.activeSession;\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                   ^^^^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                             ^^^^^^^^^^^^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                          ^^^^^^^^^^^^^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>            // only variables with reference > 0 have children.\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n             ^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts comment.line.double-slash.ts\n>            if (!session || this.reference <= 0) {\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n             ^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.control.conditional.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.operator.logical.ts\n                  ^^^^^^^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n                          ^^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.operator.logical.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n                             ^^^^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts variable.language.this.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.accessor.ts\n                                  ^^^^^^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts variable.other.property.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n                                            ^^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.operator.relational.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts constant.numeric.decimal.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>                this.children = TPromise.as([]);\n ^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts\n                 ^^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts variable.language.this.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.accessor.ts\n                      ^^^^^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts variable.other.property.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts keyword.operator.assignment.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts\n                                 ^^^^^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                          ^^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>            } else {\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n               ^^^^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.control.conditional.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts\n>                // Check if object has named variables, fetch them independent from indexed variables #9670\n ^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n                 ^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts comment.line.double-slash.ts\n>                this.children = (!!this.namedVariables ? this.fetchVariables(session, undefined, undefined, 'named') : TPromise.as([])).then(childrenArray => {\n ^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts\n                 ^^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts variable.language.this.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.accessor.ts\n                      ^^^^^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts variable.other.property.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts keyword.operator.assignment.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts keyword.operator.logical.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts keyword.operator.logical.ts\n                                    ^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts variable.language.this.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.accessor.ts\n                                         ^^^^^^^^^^^^^^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts variable.other.property.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts keyword.operator.ternary.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts\n                                                          ^^^^\n                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts variable.language.this.ts\n                                                              ^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                                               ^^^^^^^^^^^^^^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                                                             ^\n                                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                                                              ^^^^^^^\n                                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                                                                                     ^\n                                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.separator.comma.ts\n                                                                                      ^\n                                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts\n                                                                                       ^^^^^^^^^\n                                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts constant.language.undefined.ts\n                                                                                                ^\n                                                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.separator.comma.ts\n                                                                                                 ^\n                                                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts\n                                                                                                  ^^^^^^^^^\n                                                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts constant.language.undefined.ts\n                                                                                                           ^\n                                                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.separator.comma.ts\n                                                                                                            ^\n                                                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts\n                                                                                                             ^\n                                                                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                                                                              ^^^^^\n                                                                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts string.quoted.single.ts\n                                                                                                                   ^\n                                                                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                                                                    ^\n                                                                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                                                                                                     ^\n                                                                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts\n                                                                                                                      ^\n                                                                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts keyword.operator.ternary.ts\n                                                                                                                       ^\n                                                                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts\n                                                                                                                        ^^^^^^^^\n                                                                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                ^\n                                                                                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                 ^^\n                                                                                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                   ^\n                                                                                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                    ^\n                                                                                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                                                                                     ^\n                                                                                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                                                                                      ^\n                                                                                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                       ^\n                                                                                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                        ^\n                                                                                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                         ^^^^\n                                                                                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.promise.ts\n                                                                                                                                             ^\n                                                                                                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                              ^^^^^^^^^^^^^\n                                                                                                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts variable.parameter.ts\n                                                                                                                                                           ^\n                                                                                                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts\n                                                                                                                                                            ^^\n                                                                                                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                                                                                                                              ^\n                                                                                                                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts\n                                                                                                                                                               ^\n                                                                                                                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>                    // Use a dynamic chunk size based on the number of elements #9774\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n                     ^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts comment.line.double-slash.ts\n>                    let chunkSize = ExpressionContainer.BASE_CHUNK_SIZE;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                     ^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                         ^^^^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                     ^^^^^^^^^^^^^^^^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                                         ^^^^^^^^^^^^^^^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.constant.property.ts\n                                                                        ^\n                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>                    while (this.indexedVariables > chunkSize * ExpressionContainer.BASE_CHUNK_SIZE) {\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                     ^^^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.control.loop.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                            ^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts variable.language.this.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n                                 ^^^^^^^^^^^^^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.property.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.operator.relational.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                                    ^^^^^^^^^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                                              ^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                               ^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                                                ^^^^^^^^^^^^^^^^^^^\n                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.object.ts\n                                                                                   ^\n                                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n                                                                                    ^^^^^^^^^^^^^^^\n                                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.constant.property.ts\n                                                                                                   ^\n                                                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                                                                    ^\n                                                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                                                                                     ^\n                                                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>                        chunkSize *= ExpressionContainer.BASE_CHUNK_SIZE;\n ^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts\n                         ^^^^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts\n                                   ^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts keyword.operator.assignment.compound.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts\n                                      ^^^^^^^^^^^^^^^^^^^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts variable.other.object.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.accessor.ts\n                                                          ^^^^^^^^^^^^^^^\n                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts variable.other.constant.property.ts\n                                                                         ^\n                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>                    }\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n>                    if (this.indexedVariables > chunkSize) {\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                     ^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.control.conditional.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                         ^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts variable.language.this.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n                              ^^^^^^^^^^^^^^^^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.property.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.operator.relational.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                                 ^^^^^^^^^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                                                          ^\n                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>                        // There are a lot of children, create fake intermediate values that represent chunks #9537\n ^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n                         ^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts comment.line.double-slash.ts\n>                        const numberOfChunks = Math.ceil(this.indexedVariables / chunkSize);\n ^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts\n                         ^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                               ^^^^^^^^^^^^^^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                                ^^^^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.constant.math.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                                     ^^^^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.function.math.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                          ^^^^\n                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                                                              ^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                                               ^^^^^^^^^^^^^^^^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                                                               ^\n                                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                                                                ^\n                                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                                                                 ^\n                                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                                                                  ^^^^^^^^^\n                                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                                                           ^\n                                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                                                            ^\n                                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>                        for (let i = 0; i < numberOfChunks; i++) {\n ^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts\n                         ^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts keyword.control.loop.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                              ^^^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts keyword.operator.relational.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts\n                                             ^^^^^^^^^^^^^^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                                                              ^^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts keyword.operator.increment.ts\n                                                                ^\n                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                                                 ^\n                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts\n                                                                  ^\n                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>                            const start = this.startOfVariables + i * chunkSize;\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts\n                             ^^^^^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                   ^^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                           ^^^^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                                ^^^^^^^^^^^^^^^^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                                                ^\n                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                                                 ^\n                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                                                  ^\n                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                                                   ^\n                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                                    ^\n                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                                                     ^\n                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                                                      ^\n                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                                                       ^^^^^^^^^\n                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                                                ^\n                                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>                            const count = Math.min(chunkSize, this.indexedVariables - i * chunkSize);\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts\n                             ^^^^^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                   ^^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                           ^^^^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.constant.math.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                                ^^^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.function.math.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                    ^^^^^^^^^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n                                                              ^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                                               ^^^^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                                                                   ^\n                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                                                    ^^^^^^^^^^^^^^^^\n                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                                                                    ^\n                                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                                                                     ^\n                                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                                                                      ^\n                                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                                                                       ^\n                                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                                                        ^\n                                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                                                                         ^\n                                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                                                                          ^\n                                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                                                                                           ^^^^^^^^^\n                                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                                                                    ^\n                                                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                                                                     ^\n                                                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>                            childrenArray.push(new Variable(this, this.reference, `[${start}..${start + count - 1}]`, '', null, count, null, true, start));\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts\n                             ^^^^^^^^^^^^^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                           ^^^^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                                ^^^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts\n                                                    ^^^^^^^^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                             ^^^^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                                                 ^\n                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                                                  ^\n                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts\n                                                                   ^^^^\n                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                                                       ^\n                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                                                        ^^^^^^^^^\n                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts variable.other.property.ts\n                                                                                 ^\n                                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                                                                  ^\n                                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts\n                                                                                   ^\n                                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                                                                    ^\n                                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts\n                                                                                     ^^\n                                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                                       ^^^^^\n                                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                                                                            ^\n                                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                                             ^^\n                                                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts\n                                                                                               ^^\n                                                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                                                 ^^^^^\n                                                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                                                                                      ^\n                                                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts\n                                                                                                       ^\n                                                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts keyword.operator.arithmetic.ts\n                                                                                                        ^\n                                                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts\n                                                                                                         ^^^^^\n                                                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                                                                                              ^\n                                                                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts\n                                                                                                               ^\n                                                                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts keyword.operator.arithmetic.ts\n                                                                                                                ^\n                                                                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts\n                                                                                                                 ^\n                                                                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts constant.numeric.decimal.ts\n                                                                                                                  ^\n                                                                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                                                                   ^\n                                                                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts\n                                                                                                                    ^\n                                                                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                                                                                     ^\n                                                                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                                                                                                      ^\n                                                                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts\n                                                                                                                       ^\n                                                                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                                                                                        ^\n                                                                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                                                                         ^\n                                                                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                                                                                                          ^\n                                                                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts\n                                                                                                                           ^^^^\n                                                                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts constant.language.null.ts\n                                                                                                                               ^\n                                                                                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                                                                                                                ^\n                                                                                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts\n                                                                                                                                 ^^^^^\n                                                                                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts variable.other.readwrite.ts\n                                                                                                                                      ^\n                                                                                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                                                                                                                       ^\n                                                                                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts\n                                                                                                                                        ^^^^\n                                                                                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts constant.language.null.ts\n                                                                                                                                            ^\n                                                                                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                                                                                                                             ^\n                                                                                                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts\n                                                                                                                                              ^^^^\n                                                                                                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts constant.language.boolean.true.ts\n                                                                                                                                                  ^\n                                                                                                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                                                                                                                                   ^\n                                                                                                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts\n                                                                                                                                                    ^^^^^\n                                                                                                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts variable.other.readwrite.ts\n                                                                                                                                                         ^\n                                                                                                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                                                                                                          ^\n                                                                                                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                           ^\n                                                                                                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>                        }\n ^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts\n>                        return childrenArray;\n ^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts\n                         ^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts\n                                ^^^^^^^^^^^^^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>                    }\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n>                    const start = this.getChildrenInChunks ? this.startOfVariables : undefined;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                     ^^^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                           ^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                   ^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                        ^^^^^^^^^^^^^^^^^^^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.ternary.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                                              ^^^^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                                                                  ^\n                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                                                   ^^^^^^^^^^^^^^^^\n                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                                                                   ^\n                                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                                                                    ^\n                                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.ternary.ts\n                                                                                     ^\n                                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                                                                      ^^^^^^^^^\n                                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts constant.language.undefined.ts\n                                                                                               ^\n                                                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>                    const count = this.getChildrenInChunks ? this.indexedVariables : undefined;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                     ^^^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                           ^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                   ^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                        ^^^^^^^^^^^^^^^^^^^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.ternary.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                                              ^^^^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                                                                  ^\n                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                                                   ^^^^^^^^^^^^^^^^\n                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                                                                   ^\n                                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                                                                    ^\n                                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.ternary.ts\n                                                                                     ^\n                                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                                                                      ^^^^^^^^^\n                                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.var.expr.ts constant.language.undefined.ts\n                                                                                               ^\n                                                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>                    return this.fetchVariables(session, start, count, 'indexed')\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                     ^^^^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                            ^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts variable.language.this.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                 ^^^^^^^^^^^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                ^^^^^^^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.separator.comma.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                                         ^^^^^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                                                              ^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.separator.comma.ts\n                                                               ^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                                                ^^^^^\n                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                                                                     ^\n                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.separator.comma.ts\n                                                                      ^\n                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                                                       ^\n                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                                        ^^^^^^^\n                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts string.quoted.single.ts\n                                                                               ^\n                                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                                ^\n                                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n>                        .then(variables => arrays.distinct(childrenArray.concat(variables), child => child.name));\n ^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                          ^^^^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.function.promise.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                               ^^^^^^^^^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.arrow.ts variable.parameter.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.arrow.ts\n                                         ^^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.arrow.ts\n                                            ^^^^^^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                                   ^^^^^^^^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                                           ^\n                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                            ^^^^^^^^^^^^^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                                                                         ^\n                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                                                          ^^^^^^\n                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.function.ts\n                                                                                ^\n                                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                                                 ^^^^^^^^^\n                                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                                                                                          ^\n                                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                                                           ^\n                                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.separator.comma.ts\n                                                                                            ^\n                                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                                                                             ^^^^^\n                                                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.arrow.ts variable.parameter.ts\n                                                                                                  ^\n                                                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.arrow.ts\n                                                                                                   ^^\n                                                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                                                                     ^\n                                                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.arrow.ts\n                                                                                                      ^^^^^\n                                                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.object.ts\n                                                                                                           ^\n                                                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n                                                                                                            ^^^^\n                                                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                ^\n                                                                                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                                                                                 ^\n                                                                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                                                                                  ^\n                                                                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>                });\n ^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>            }\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>        }\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>        return this.children;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                ^^^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n                     ^^^^^^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue322.baseline.txt",
    "content": "original file\n-----------------------------------\nexport enum TokenType {\n    StartCommentTag,\n    Comment,\n    EndCommentTag,\n    StartTagOpen,\n    StartTagClose,\n    StartTagSelfClose,\n    StartTag,\n    EndTagOpen,\n    EndTagClose,\n    EndTag,\n    DelimiterAssign,\n    AttributeName,\n    AttributeValue,\n    StartDoctypeTag,\n    Doctype,\n    EndDoctypeTag,\n    Content,\n    Whitespace,\n    Unknown,\n    Script,\n    Styles,\n    EOS\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export enum TokenType {\n ^^^^^^\n source.ts meta.enum.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.enum.declaration.ts\n        ^^^^\n        source.ts meta.enum.declaration.ts storage.type.enum.ts\n            ^\n            source.ts meta.enum.declaration.ts\n             ^^^^^^^^^\n             source.ts meta.enum.declaration.ts entity.name.type.enum.ts\n                      ^\n                      source.ts meta.enum.declaration.ts\n                       ^\n                       source.ts meta.enum.declaration.ts punctuation.definition.block.ts\n>    StartCommentTag,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^^^^^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n                    ^\n                    source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    Comment,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n            ^\n            source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    EndCommentTag,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^^^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n                  ^\n                  source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    StartTagOpen,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n                 ^\n                 source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    StartTagClose,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^^^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n                  ^\n                  source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    StartTagSelfClose,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^^^^^^^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n                      ^\n                      source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    StartTag,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n             ^\n             source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    EndTagOpen,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n               ^\n               source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    EndTagClose,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n                ^\n                source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    EndTag,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n           ^\n           source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    DelimiterAssign,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^^^^^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n                    ^\n                    source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    AttributeName,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^^^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n                  ^\n                  source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    AttributeValue,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^^^^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n                   ^\n                   source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    StartDoctypeTag,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^^^^^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n                    ^\n                    source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    Doctype,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n            ^\n            source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    EndDoctypeTag,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^^^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n                  ^\n                  source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    Content,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n            ^\n            source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    Whitespace,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n               ^\n               source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    Unknown,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n            ^\n            source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    Script,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n           ^\n           source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    Styles,\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n           ^\n           source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    EOS\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^^^\n     source.ts meta.enum.declaration.ts variable.other.enummember.ts\n>}\n ^\n source.ts meta.enum.declaration.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue326.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Bar extends getFoo(\"baz\") {}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Bar extends getFoo(\"baz\") {}\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                  ^\n                  source.ts meta.class.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                           ^^^\n                           source.ts meta.class.ts string.quoted.double.ts\n                              ^\n                              source.ts meta.class.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                               ^\n                               source.ts meta.class.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.definition.block.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue334.baseline.txt",
    "content": "original file\n-----------------------------------\nvar Backbone= require(\"backbone\");\nvar SearchModel= require(\"./../search/models/SearchModel\");\nvar ResultsContainerModel= require(\"./ResultsContainerModel\");\n\nvar _PROP_SEARCH_ = \"SEARCH\";\nvar _PROP_RESULTS_CONTAINER_   = \"SERCH_RESULTS\";\n\nvar PageModel= Backbone.Model.extend({\n\n    defaults: function() {\n        var defaults= {};\n        defaults[_PROP_SEARCH_]= new SearchModel();\n        defaults[_PROP_RESULTS_CONTAINER_]= new ResultsContainerModel();\n        return defaults;\n    },\n\n}, {\n    propSearch: _PROP_SEARCH_,\n    propResultsContainer: _PROP_RESULTS_CONTAINER_\n});\n\nmodule.exports= PageModel;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var Backbone= require(\"backbone\");\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^^^^^^\n               source.ts meta.var.expr.ts meta.function-call.ts support.function.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                        ^^^^^^^^\n                        source.ts meta.var.expr.ts string.quoted.double.ts\n                                ^\n                                source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts punctuation.terminator.statement.ts\n>var SearchModel= require(\"./../search/models/SearchModel\");\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^^^^^^^\n                  source.ts meta.var.expr.ts meta.function-call.ts support.function.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                           source.ts meta.var.expr.ts string.quoted.double.ts\n                                                         ^\n                                                         source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                          ^\n                                                          source.ts meta.var.expr.ts meta.brace.round.ts\n                                                           ^\n                                                           source.ts punctuation.terminator.statement.ts\n>var ResultsContainerModel= require(\"./ResultsContainerModel\");\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^^^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                           ^\n                           source.ts meta.var.expr.ts\n                            ^^^^^^^\n                            source.ts meta.var.expr.ts meta.function-call.ts support.function.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                     ^^^^^^^^^^^^^^^^^^^^^^^\n                                     source.ts meta.var.expr.ts string.quoted.double.ts\n                                                            ^\n                                                            source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                             ^\n                                                             source.ts meta.var.expr.ts meta.brace.round.ts\n                                                              ^\n                                                              source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>var _PROP_SEARCH_ = \"SEARCH\";\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                      ^^^^^^\n                      source.ts meta.var.expr.ts string.quoted.double.ts\n                            ^\n                            source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                             ^\n                             source.ts punctuation.terminator.statement.ts\n>var _PROP_RESULTS_CONTAINER_   = \"SERCH_RESULTS\";\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^^^^^^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                             ^^^\n                             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                                ^\n                                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                 ^\n                                 source.ts meta.var.expr.ts\n                                  ^\n                                  source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                   ^^^^^^^^^^^^^\n                                   source.ts meta.var.expr.ts string.quoted.double.ts\n                                                ^\n                                                source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                 ^\n                                                 source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>var PageModel= Backbone.Model.extend({\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^^^^^^^^\n                source.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^\n                         source.ts meta.var.expr.ts meta.function-call.ts variable.other.object.property.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                               ^^^^^^\n                               source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n>    defaults: function() {\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^^^^^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts entity.name.function.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n               ^^^^^^^^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts storage.type.function.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>        var defaults= {};\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n         ^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>        defaults[_PROP_SEARCH_]= new SearchModel();\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n         ^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                  ^^^^^^^^^^^^^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                  ^^^\n                                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts new.expr.ts\n                                      ^^^^^^^^^^^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>        defaults[_PROP_RESULTS_CONTAINER_]= new ResultsContainerModel();\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n         ^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                  ^^^^^^^^^^^^^^^^^^^^^^^^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                             ^^^\n                                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts new.expr.ts\n                                                 ^^^^^^^^^^^^^^^^^^^^^\n                                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                                                                      ^\n                                                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                       ^\n                                                                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                        ^\n                                                                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>        return defaults;\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                ^^^^^^^^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>    },\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n>}, {\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.var.expr.ts punctuation.separator.comma.ts\n   ^\n   source.ts meta.var.expr.ts\n    ^\n    source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    propSearch: _PROP_SEARCH_,\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                 ^^^^^^^^^^^^^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>    propResultsContainer: _PROP_RESULTS_CONTAINER_\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^^^^^^^^^^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                           ^^^^^^^^^^^^^^^^^^^^^^^^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n>});\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.var.expr.ts meta.brace.round.ts\n   ^\n   source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>module.exports= PageModel;\n ^^^^^^\n source.ts support.type.object.module.ts\n       ^\n       source.ts punctuation.accessor.ts\n        ^^^^^^^\n        source.ts support.type.object.module.ts\n               ^\n               source.ts keyword.operator.assignment.ts\n                ^\n                source.ts\n                 ^^^^^^^^^\n                 source.ts variable.other.readwrite.ts\n                          ^\n                          source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue335.baseline.txt",
    "content": "original file\n-----------------------------------\nclass A1 {\n\tb() {\n\t\tlet d;\n\t\td.default = 1;\n\t}\n\n\tprivate static c() {\n\t}\n}\n\nclass A2 {\n\tb() {\n\t\tlet d;\n\t\td.case = 1\n\t}\n\n\tprivate static c() {\n\t}\n}\n\nclass A3 {\n\tb() {\n\t\tlet d\n\t\td.default = 1\n\t\tswitch (d.default) {\n\t\t\tcase 1:\n\t\t\tcase 2:\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tprivate static c() {\n\t}\n}\n\nclass A4 {\n\tb() {\n\t\tlet d\n\t\td.case = 1\n\t\tswitch (d.default) {\n\t\t\tcase 1:\n\t\t\tcase 2:\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tprivate static c() {\n\t}\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class A1 {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^\n       source.ts meta.class.ts entity.name.type.class.ts\n         ^\n         source.ts meta.class.ts\n          ^\n          source.ts meta.class.ts punctuation.definition.block.ts\n>\tb() {\n ^\n source.ts meta.class.ts meta.method.declaration.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\t\tlet d;\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\t\td.default = 1;\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.object.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\t}\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>\tprivate static c() {\n ^\n source.ts meta.class.ts\n  ^^^^^^^\n  source.ts meta.class.ts storage.modifier.ts\n         ^\n         source.ts meta.class.ts\n          ^^^^^^\n          source.ts meta.class.ts storage.modifier.ts\n                ^\n                source.ts meta.class.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\t}\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>class A2 {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^\n       source.ts meta.class.ts entity.name.type.class.ts\n         ^\n         source.ts meta.class.ts\n          ^\n          source.ts meta.class.ts punctuation.definition.block.ts\n>\tb() {\n ^\n source.ts meta.class.ts meta.method.declaration.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\t\tlet d;\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\t\td.case = 1\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.object.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n     ^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n>\t}\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>\tprivate static c() {\n ^\n source.ts meta.class.ts\n  ^^^^^^^\n  source.ts meta.class.ts storage.modifier.ts\n         ^\n         source.ts meta.class.ts\n          ^^^^^^\n          source.ts meta.class.ts storage.modifier.ts\n                ^\n                source.ts meta.class.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\t}\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>class A3 {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^\n       source.ts meta.class.ts entity.name.type.class.ts\n         ^\n         source.ts meta.class.ts\n          ^\n          source.ts meta.class.ts punctuation.definition.block.ts\n>\tb() {\n ^\n source.ts meta.class.ts meta.method.declaration.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\t\tlet d\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n>\t\td.default = 1\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.object.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n>\t\tswitch (d.default) {\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts keyword.control.switch.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts meta.brace.round.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts variable.other.object.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts punctuation.accessor.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts variable.other.property.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts meta.brace.round.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.definition.block.ts\n>\t\t\tcase 1:\n ^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n    ^^^^\n    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts constant.numeric.decimal.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>\t\t\tcase 2:\n ^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n    ^^^^\n    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts constant.numeric.decimal.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>\t\t\tdefault:\n ^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n    ^^^^^^^\n    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>\t\t\t\tbreak;\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n     ^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>\t\t}\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts punctuation.definition.block.ts\n>\t}\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>\tprivate static c() {\n ^\n source.ts meta.class.ts\n  ^^^^^^^\n  source.ts meta.class.ts storage.modifier.ts\n         ^\n         source.ts meta.class.ts\n          ^^^^^^\n          source.ts meta.class.ts storage.modifier.ts\n                ^\n                source.ts meta.class.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\t}\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>class A4 {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^\n       source.ts meta.class.ts entity.name.type.class.ts\n         ^\n         source.ts meta.class.ts\n          ^\n          source.ts meta.class.ts punctuation.definition.block.ts\n>\tb() {\n ^\n source.ts meta.class.ts meta.method.declaration.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\t\tlet d\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n>\t\td.case = 1\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.object.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n     ^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n>\t\tswitch (d.default) {\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts keyword.control.switch.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts meta.brace.round.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts variable.other.object.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts punctuation.accessor.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts variable.other.property.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts meta.brace.round.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.definition.block.ts\n>\t\t\tcase 1:\n ^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n    ^^^^\n    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts constant.numeric.decimal.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>\t\t\tcase 2:\n ^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n    ^^^^\n    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts constant.numeric.decimal.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>\t\t\tdefault:\n ^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n    ^^^^^^^\n    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>\t\t\t\tbreak;\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n     ^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>\t\t}\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts switch-statement.expr.ts punctuation.definition.block.ts\n>\t}\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>\tprivate static c() {\n ^\n source.ts meta.class.ts\n  ^^^^^^^\n  source.ts meta.class.ts storage.modifier.ts\n         ^\n         source.ts meta.class.ts\n          ^^^^^^\n          source.ts meta.class.ts storage.modifier.ts\n                ^\n                source.ts meta.class.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\t}\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue337.baseline.txt",
    "content": "original file\n-----------------------------------\n#!/usr/bin/env node -r babel-register\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>#!/usr/bin/env node -r babel-register\n ^^\n source.ts comment.line.shebang.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.shebang.ts"
  },
  {
    "path": "tests/baselines/Issue338.baseline.txt",
    "content": "original file\n-----------------------------------\nlet a = {\n    [['a', 'b', 'c'].join(' ')]: 'foo',\n};\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let a = {\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    [['a', 'b', 'c'].join(' ')]: 'foo',\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.brace.square.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.array.literal.ts meta.brace.square.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.array.literal.ts string.quoted.single.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.array.literal.ts punctuation.separator.comma.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.array.literal.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.array.literal.ts string.quoted.single.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.array.literal.ts punctuation.separator.comma.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.array.literal.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.array.literal.ts string.quoted.single.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.array.literal.ts meta.brace.square.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                      ^^^^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.function-call.ts support.function.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts string.quoted.single.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                   ^^^\n                                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>};\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue339.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction f() {\n\n    class implements BeingSpreading<Spreading> {\n        copy = copy;\n        fuse = fuse;\n        toInternalSpreading = toInternalSpreading;\n        toFiltersOnlySpreading = toFiltersOnlySpreading;\n        toResultsOnlySpreading = toResultsOnlySpreading;\n        toNormalSpreading = toNormalSpreading;\n        toNormalOrMaximizedSpreadingIfNotYet = ensureNormalOrMaximizedSpreading;\n    };\n\n    return new class implements BeingSpreading<Spreading> {\n        copy = copy;\n        fuse = fuse;\n        toInternalSpreading = toInternalSpreading;\n        toFiltersOnlySpreading = toFiltersOnlySpreading;\n        toResultsOnlySpreading = toResultsOnlySpreading;\n        toNormalSpreading = toNormalSpreading;\n        toNormalOrMaximizedSpreadingIfNotYet = ensureNormalOrMaximizedSpreading;\n    };\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function f() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.function.ts\n              ^\n              source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.function.ts meta.block.ts\n>    class implements BeingSpreading<Spreading> {\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^\n     source.ts meta.function.ts meta.block.ts meta.class.ts storage.type.class.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.class.ts\n           ^^^^^^^^^^\n           source.ts meta.function.ts meta.block.ts meta.class.ts storage.modifier.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.class.ts\n                      ^^^^^^^^^^^^^^\n                      source.ts meta.function.ts meta.block.ts meta.class.ts entity.other.inherited-class.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                     ^^^^^^^^^\n                                     source.ts meta.function.ts meta.block.ts meta.class.ts meta.type.parameters.ts entity.name.type.ts\n                                              ^\n                                              source.ts meta.function.ts meta.block.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                               ^\n                                               source.ts meta.function.ts meta.block.ts meta.class.ts\n                                                ^\n                                                source.ts meta.function.ts meta.block.ts meta.class.ts punctuation.definition.block.ts\n>        copy = copy;\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n         ^^^^\n         source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n                ^^^^\n                source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts\n>        fuse = fuse;\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n         ^^^^\n         source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n                ^^^^\n                source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts\n>        toInternalSpreading = toInternalSpreading;\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n         ^^^^^^^^^^^^^^^^^^^\n         source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n                               ^^^^^^^^^^^^^^^^^^^\n                               source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts variable.other.readwrite.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts\n>        toFiltersOnlySpreading = toFiltersOnlySpreading;\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n         ^^^^^^^^^^^^^^^^^^^^^^\n         source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n                                  ^^^^^^^^^^^^^^^^^^^^^^\n                                  source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts variable.other.readwrite.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts\n>        toResultsOnlySpreading = toResultsOnlySpreading;\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n         ^^^^^^^^^^^^^^^^^^^^^^\n         source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n                                  ^^^^^^^^^^^^^^^^^^^^^^\n                                  source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts variable.other.readwrite.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts\n>        toNormalSpreading = toNormalSpreading;\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n         ^^^^^^^^^^^^^^^^^\n         source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n                             ^^^^^^^^^^^^^^^^^\n                             source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts variable.other.readwrite.ts\n                                              ^\n                                              source.ts meta.function.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts\n>        toNormalOrMaximizedSpreadingIfNotYet = ensureNormalOrMaximizedSpreading;\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n         source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                             ^\n                                             source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n                                              ^\n                                              source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                               ^\n                                               source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                source.ts meta.function.ts meta.block.ts meta.class.ts meta.field.declaration.ts variable.other.readwrite.ts\n                                                                                ^\n                                                                                source.ts meta.function.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts\n>    };\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.class.ts\n     ^\n     source.ts meta.function.ts meta.block.ts meta.class.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.function.ts meta.block.ts\n>    return new class implements BeingSpreading<Spreading> {\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^^^\n            source.ts meta.function.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n               ^\n               source.ts meta.function.ts meta.block.ts new.expr.ts\n                ^^^^^\n                source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts storage.type.class.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts\n                      ^^^^^^^^^^\n                      source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts storage.modifier.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts\n                                 ^^^^^^^^^^^^^^\n                                 source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts entity.other.inherited-class.ts\n                                               ^\n                                               source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                ^^^^^^^^^\n                                                source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.type.parameters.ts entity.name.type.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts punctuation.definition.block.ts\n>        copy = copy;\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n         ^^^^\n         source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n             ^\n             source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n                ^^^^\n                source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts punctuation.terminator.statement.ts\n>        fuse = fuse;\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n         ^^^^\n         source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n             ^\n             source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n                ^^^^\n                source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts punctuation.terminator.statement.ts\n>        toInternalSpreading = toInternalSpreading;\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n         ^^^^^^^^^^^^^^^^^^^\n         source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n                               ^^^^^^^^^^^^^^^^^^^\n                               source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts variable.other.readwrite.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts punctuation.terminator.statement.ts\n>        toFiltersOnlySpreading = toFiltersOnlySpreading;\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n         ^^^^^^^^^^^^^^^^^^^^^^\n         source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n                                  ^^^^^^^^^^^^^^^^^^^^^^\n                                  source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts variable.other.readwrite.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts punctuation.terminator.statement.ts\n>        toResultsOnlySpreading = toResultsOnlySpreading;\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n         ^^^^^^^^^^^^^^^^^^^^^^\n         source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n                                  ^^^^^^^^^^^^^^^^^^^^^^\n                                  source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts variable.other.readwrite.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts punctuation.terminator.statement.ts\n>        toNormalSpreading = toNormalSpreading;\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n         ^^^^^^^^^^^^^^^^^\n         source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n                             ^^^^^^^^^^^^^^^^^\n                             source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts variable.other.readwrite.ts\n                                              ^\n                                              source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts punctuation.terminator.statement.ts\n>        toNormalOrMaximizedSpreadingIfNotYet = ensureNormalOrMaximizedSpreading;\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n         source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                             ^\n                                             source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n                                              ^\n                                              source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                               ^\n                                               source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts\n                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts meta.field.declaration.ts variable.other.readwrite.ts\n                                                                                ^\n                                                                                source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts punctuation.terminator.statement.ts\n>    };\n ^^^^\n source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts\n     ^\n     source.ts meta.function.ts meta.block.ts new.expr.ts meta.class.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue343.baseline.txt",
    "content": "original file\n-----------------------------------\nconsole.log(`${Math.round(responseTime / requests)} ns (${Math.round(requests / ( responseTime / 1e9))}/sec)`);\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>console.log(`${Math.round(responseTime / requests)} ns (${Math.round(requests / ( responseTime / 1e9))}/sec)`);\n ^^^^^^^\n source.ts meta.function-call.ts support.class.console.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^\n         source.ts meta.function-call.ts support.function.console.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts string.template.ts punctuation.definition.string.template.begin.ts\n              ^^\n              source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                ^^^^\n                source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.function-call.ts support.constant.math.ts\n                    ^\n                    source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.function-call.ts punctuation.accessor.ts\n                     ^^^^^\n                     source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.function-call.ts support.function.math.ts\n                          ^\n                          source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.brace.round.ts\n                           ^^^^^^^^^^^^\n                           source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                       ^\n                                       source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts\n                                        ^\n                                        source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts keyword.operator.arithmetic.ts\n                                         ^\n                                         source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts\n                                          ^^^^^^^^\n                                          source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                                  ^\n                                                  source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.brace.round.ts\n                                                   ^\n                                                   source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                    ^^^^^\n                                                    source.ts string.template.ts\n                                                         ^^\n                                                         source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                           ^^^^\n                                                           source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.function-call.ts support.constant.math.ts\n                                                               ^\n                                                               source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.function-call.ts punctuation.accessor.ts\n                                                                ^^^^^\n                                                                source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.function-call.ts support.function.math.ts\n                                                                     ^\n                                                                     source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.brace.round.ts\n                                                                      ^^^^^^^^\n                                                                      source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                                                              ^\n                                                                              source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts\n                                                                               ^\n                                                                               source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts keyword.operator.arithmetic.ts\n                                                                                ^\n                                                                                source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts\n                                                                                 ^\n                                                                                 source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.brace.round.ts\n                                                                                  ^\n                                                                                  source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts\n                                                                                   ^^^^^^^^^^^^\n                                                                                   source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                                                                               ^\n                                                                                               source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts\n                                                                                                ^\n                                                                                                source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts keyword.operator.arithmetic.ts\n                                                                                                 ^\n                                                                                                 source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts\n                                                                                                  ^^^\n                                                                                                  source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts constant.numeric.decimal.ts\n                                                                                                     ^\n                                                                                                     source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.brace.round.ts\n                                                                                                      ^\n                                                                                                      source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.brace.round.ts\n                                                                                                       ^\n                                                                                                       source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                                                        ^^^^^\n                                                                                                        source.ts string.template.ts\n                                                                                                             ^\n                                                                                                             source.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                                                                              ^\n                                                                                                              source.ts meta.brace.round.ts\n                                                                                                               ^\n                                                                                                               source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue344.baseline.txt",
    "content": "original file\n-----------------------------------\nlet a = Array<number>();   // Highlight ok here\n\ninterface egGenericsInArray {\n   a: Array<number>;\n}\nlet s = \"nothing should fail here...\";\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>let a = Array<number>();   // Highlight ok here\n ^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n    ^\n    source.tsx meta.var.expr.tsx\n     ^\n     source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.readwrite.tsx\n      ^\n      source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n       ^\n       source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n        ^\n        source.tsx meta.var.expr.tsx\n         ^^^^^\n         source.tsx meta.var.expr.tsx meta.function-call.tsx support.class.builtin.tsx\n              ^\n              source.tsx meta.var.expr.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n               ^^^^^^\n               source.tsx meta.var.expr.tsx meta.type.parameters.tsx support.type.primitive.tsx\n                     ^\n                     source.tsx meta.var.expr.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n                      ^\n                      source.tsx meta.var.expr.tsx meta.brace.round.tsx\n                       ^\n                       source.tsx meta.var.expr.tsx meta.brace.round.tsx\n                        ^\n                        source.tsx punctuation.terminator.statement.tsx\n                         ^^^\n                         source.tsx\n                            ^^\n                            source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n                              ^^^^^^^^^^^^^^^^^^\n                              source.tsx comment.line.double-slash.tsx\n>\n ^\n source.tsx\n>interface egGenericsInArray {\n ^^^^^^^^^\n source.tsx meta.interface.tsx storage.type.interface.tsx\n          ^\n          source.tsx meta.interface.tsx\n           ^^^^^^^^^^^^^^^^^\n           source.tsx meta.interface.tsx entity.name.type.interface.tsx\n                            ^\n                            source.tsx meta.interface.tsx\n                             ^\n                             source.tsx meta.interface.tsx punctuation.definition.block.tsx\n>   a: Array<number>;\n ^^^\n source.tsx meta.interface.tsx meta.field.declaration.tsx\n    ^\n    source.tsx meta.interface.tsx meta.field.declaration.tsx meta.definition.property.tsx variable.object.property.tsx\n     ^\n     source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n      ^\n      source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx\n       ^^^^^\n       source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx entity.name.type.tsx\n            ^\n            source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n             ^^^^^^\n             source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx support.type.primitive.tsx\n                   ^\n                   source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n                    ^\n                    source.tsx meta.interface.tsx punctuation.terminator.statement.tsx\n>}\n ^\n source.tsx meta.interface.tsx punctuation.definition.block.tsx\n>let s = \"nothing should fail here...\";\n ^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n    ^\n    source.tsx meta.var.expr.tsx\n     ^\n     source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.readwrite.tsx\n      ^\n      source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n       ^\n       source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n        ^\n        source.tsx meta.var.expr.tsx\n         ^\n         source.tsx meta.var.expr.tsx string.quoted.double.tsx punctuation.definition.string.begin.tsx\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n          source.tsx meta.var.expr.tsx string.quoted.double.tsx\n                                     ^\n                                     source.tsx meta.var.expr.tsx string.quoted.double.tsx punctuation.definition.string.end.tsx\n                                      ^\n                                      source.tsx punctuation.terminator.statement.tsx"
  },
  {
    "path": "tests/baselines/Issue346.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction f()\n{\n\tlet t = 0\n\tlet TAU440 = Math.PI*2 * 440\n\n\tonmessage = function(e)\n\t{\n\t\tlet b = new Float64Array(e.data.bufferSize)\n\t\tlet s = e.data.sampleRate\n\n\t\tfor (let i = 0; i < b.length; i++) b[i] = Math.sin(TAU440 * t++/s * Math.sin(t++/s*.5))\n\n\t\tpostMessage(b)\n\t}\n}\n\nlet a = new AudioContext()\nlet s = a.createScriptProcessor(0,1,1)\nlet b = new Float64Array(s.bufferSize)\nlet w = new Worker(URL.createObjectURL(new Blob([\"(\"+f+\"())\"],{type:\"application/javascript\"})))\n\nw.onmessage = e => b = e.data\ns.connect(a.destination)\n\ns.onaudioprocess = function(e)\n{\n\tw.postMessage({ bufferSize: s.bufferSize, sampleRate: a.sampleRate })\n\te.outputBuffer.getChannelData(0).set(b)\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function f()\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>{\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\tlet t = 0\n ^\n source.ts meta.function.ts meta.block.ts\n  ^^^\n  source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n     ^\n     source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n>\tlet TAU440 = Math.PI*2 * 440\n ^\n source.ts meta.function.ts meta.block.ts\n  ^^^\n  source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n     ^\n     source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n      ^^^^^^\n      source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n               ^^^^\n               source.ts meta.function.ts meta.block.ts meta.var.expr.ts support.constant.math.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                    ^^\n                    source.ts meta.function.ts meta.block.ts meta.var.expr.ts support.constant.property.math.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                           ^^^\n                           source.ts meta.function.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n>\n ^\n source.ts meta.function.ts meta.block.ts\n>\tonmessage = function(e)\n ^\n source.ts meta.function.ts meta.block.ts\n  ^^^^^^^^^\n  source.ts meta.function.ts meta.block.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^\n            source.ts meta.function.ts meta.block.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.function.ts meta.block.ts\n              ^^^^^^^^\n              source.ts meta.function.ts meta.block.ts meta.function.ts storage.type.function.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>\t{\n ^\n source.ts meta.function.ts meta.block.ts meta.function.ts\n  ^\n  source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\t\tlet b = new Float64Array(e.data.bufferSize)\n ^^\n source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n   ^^^\n   source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts\n       ^\n       source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts\n           ^^^\n           source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts new.expr.ts\n               ^^^^^^^^^^^^\n               source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts new.expr.ts meta.function-call.ts support.class.builtin.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts new.expr.ts variable.other.object.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts new.expr.ts punctuation.accessor.ts\n                              ^^^^\n                              source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts new.expr.ts support.variable.property.dom.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts new.expr.ts punctuation.accessor.ts\n                                   ^^^^^^^^^^\n                                   source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts new.expr.ts variable.other.property.ts\n                                             ^\n                                             source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n>\t\tlet s = e.data.sampleRate\n ^^\n source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n   ^^^\n   source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts\n       ^\n       source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n             ^^^^\n             source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts support.variable.property.dom.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                  ^^^^^^^^^^\n                  source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n>\n ^\n source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n>\t\tfor (let i = 0; i < b.length; i++) b[i] = Math.sin(TAU440 * t++/s * Math.sin(t++/s*.5))\n ^^\n source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n   ^^^\n   source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts keyword.control.loop.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n       ^\n       source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.brace.round.ts\n        ^^^\n        source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts keyword.operator.relational.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts variable.other.object.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts punctuation.accessor.ts\n                         ^^^^^^\n                         source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts support.variable.property.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                  ^^\n                                  source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts keyword.operator.increment.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                          ^\n                                          source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n                                           ^\n                                           source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts keyword.operator.assignment.ts\n                                            ^\n                                            source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n                                             ^^^^\n                                             source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.function-call.ts support.constant.math.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                                  ^^^\n                                                  source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.math.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                                      ^^^^^^\n                                                      source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts variable.other.constant.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                                                ^^\n                                                                source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts keyword.operator.increment.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n                                                                       ^^^^\n                                                                       source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.function-call.ts support.constant.math.ts\n                                                                           ^\n                                                                           source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                                                            ^^^\n                                                                            source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.math.ts\n                                                                               ^\n                                                                               source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                                                                ^\n                                                                                source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                                                                 ^^\n                                                                                 source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts keyword.operator.increment.ts\n                                                                                   ^\n                                                                                   source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                                                    ^\n                                                                                    source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                                                                     ^\n                                                                                     source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                                                      ^\n                                                                                      source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n                                                                                       ^\n                                                                                       source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts\n                                                                                        ^\n                                                                                        source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                                                                         ^\n                                                                                         source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.brace.round.ts\n>\n ^\n source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n>\t\tpostMessage(b)\n ^^\n source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n   ^^^^^^^^^^^\n   source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.brace.round.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts meta.brace.round.ts\n>\t}\n ^\n source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts\n  ^\n  source.ts meta.function.ts meta.block.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>let a = new AudioContext()\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^\n         source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n            ^\n            source.ts meta.var.expr.ts new.expr.ts\n             ^^^^^^^^^^^^\n             source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts support.class.dom.ts\n                         ^\n                         source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n>let s = a.createScriptProcessor(0,1,1)\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n          ^\n          source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n           ^^^^^^^^^^^^^^^^^^^^^\n           source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                  ^\n                                  source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                                   ^\n                                   source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                    ^\n                                    source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                                     ^\n                                     source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.brace.round.ts\n>let b = new Float64Array(s.bufferSize)\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^\n         source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n            ^\n            source.ts meta.var.expr.ts new.expr.ts\n             ^^^^^^^^^^^^\n             source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts support.class.builtin.ts\n                         ^\n                         source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.var.expr.ts new.expr.ts variable.other.object.ts\n                           ^\n                           source.ts meta.var.expr.ts new.expr.ts punctuation.accessor.ts\n                            ^^^^^^^^^^\n                            source.ts meta.var.expr.ts new.expr.ts variable.other.property.ts\n                                      ^\n                                      source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n>let w = new Worker(URL.createObjectURL(new Blob([\"(\"+f+\"())\"],{type:\"application/javascript\"})))\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^\n         source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n            ^\n            source.ts meta.var.expr.ts new.expr.ts\n             ^^^^^^\n             source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts support.class.dom.ts\n                   ^\n                   source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                    ^^^\n                    source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts variable.other.constant.object.ts\n                       ^\n                       source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^^^^^^^^^^\n                        source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                                       ^\n                                       source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                        ^^^\n                                        source.ts meta.var.expr.ts new.expr.ts new.expr.ts keyword.operator.new.ts\n                                           ^\n                                           source.ts meta.var.expr.ts new.expr.ts new.expr.ts\n                                            ^^^^\n                                            source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.function-call.ts support.class.dom.ts\n                                                ^\n                                                source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.brace.round.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.array.literal.ts string.quoted.double.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.array.literal.ts keyword.operator.arithmetic.ts\n                                                      ^\n                                                      source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                                                       ^\n                                                       source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.array.literal.ts keyword.operator.arithmetic.ts\n                                                        ^\n                                                        source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                         ^^^\n                                                         source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.array.literal.ts string.quoted.double.ts\n                                                            ^\n                                                            source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                             ^\n                                                             source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                              ^\n                                                              source.ts meta.var.expr.ts new.expr.ts new.expr.ts punctuation.separator.comma.ts\n                                                               ^\n                                                               source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                ^^^^\n                                                                source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                                    ^\n                                                                    source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                                     ^\n                                                                     source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                      ^^^^^^^^^^^^^^^^^^^^^^\n                                                                      source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                                                                                            ^\n                                                                                            source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                             ^\n                                                                                             source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                                              ^\n                                                                                              source.ts meta.var.expr.ts new.expr.ts new.expr.ts meta.brace.round.ts\n                                                                                               ^\n                                                                                               source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                                                                                ^\n                                                                                                source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n>\n ^\n source.ts\n>w.onmessage = e => b = e.data\n ^\n source.ts variable.other.object.ts\n  ^\n  source.ts punctuation.accessor.ts\n   ^^^^^^^^^\n   source.ts entity.name.function.ts\n            ^\n            source.ts\n             ^\n             source.ts keyword.operator.assignment.ts\n              ^\n              source.ts\n               ^\n               source.ts meta.arrow.ts variable.parameter.ts\n                ^\n                source.ts meta.arrow.ts\n                 ^^\n                 source.ts meta.arrow.ts storage.type.function.arrow.ts\n                   ^\n                   source.ts meta.arrow.ts\n                    ^\n                    source.ts variable.other.readwrite.ts\n                     ^\n                     source.ts\n                      ^\n                      source.ts keyword.operator.assignment.ts\n                       ^\n                       source.ts\n                        ^\n                        source.ts variable.other.object.ts\n                         ^\n                         source.ts punctuation.accessor.ts\n                          ^^^^\n                          source.ts support.variable.property.dom.ts\n>s.connect(a.destination)\n ^\n source.ts meta.function-call.ts variable.other.object.ts\n  ^\n  source.ts meta.function-call.ts punctuation.accessor.ts\n   ^^^^^^^\n   source.ts meta.function-call.ts entity.name.function.ts\n          ^\n          source.ts meta.brace.round.ts\n           ^\n           source.ts variable.other.object.ts\n            ^\n            source.ts punctuation.accessor.ts\n             ^^^^^^^^^^^\n             source.ts variable.other.property.ts\n                        ^\n                        source.ts meta.brace.round.ts\n>\n ^\n source.ts\n>s.onaudioprocess = function(e)\n ^\n source.ts variable.other.object.ts\n  ^\n  source.ts punctuation.accessor.ts\n   ^^^^^^^^^^^^^^\n   source.ts entity.name.function.ts\n                 ^\n                 source.ts\n                  ^\n                  source.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts\n                    ^^^^^^^^\n                    source.ts meta.function.ts storage.type.function.ts\n                            ^\n                            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                              ^\n                              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>{\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\tw.postMessage({ bufferSize: s.bufferSize, sampleRate: a.sampleRate })\n ^\n source.ts meta.function.ts meta.block.ts\n  ^\n  source.ts meta.function.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n   ^\n   source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n    ^^^^^^^^^^^\n    source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.dom.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n                  ^^^^^^^^^^\n                  source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                                ^^^^^^^^^^\n                                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.property.ts\n                                          ^\n                                          source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                                           ^\n                                           source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n                                            ^^^^^^^^^^\n                                            source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                                                          ^^^^^^^^^^\n                                                          source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.property.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n>\te.outputBuffer.getChannelData(0).set(b)\n ^\n source.ts meta.function.ts meta.block.ts\n  ^\n  source.ts meta.function.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n   ^\n   source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n    ^^^^^^^^^^^^\n    source.ts meta.function.ts meta.block.ts meta.function-call.ts variable.other.object.property.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                   ^^^\n                                   source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.dom.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue347.baseline.txt",
    "content": "original file\n-----------------------------------\nconst a = new Promise (resolve => {\n    const file = this.props.doc.file;\n    resolve({\n        abc: Math.random()\n    });\n\n    class Foo extends React.Component {\n        render() {\n        }\n    }\n    \n});\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const a = new Promise (resolve => {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^^^\n           source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n              ^\n              source.ts meta.var.expr.ts new.expr.ts\n               ^^^^^^^\n               source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts support.class.promise.ts\n                      ^\n                      source.ts meta.var.expr.ts new.expr.ts\n                       ^\n                       source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                        ^^^^^^^\n                        source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts variable.parameter.ts\n                               ^\n                               source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts\n                                ^^\n                                source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                  ^\n                                  source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts\n                                   ^\n                                   source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    const file = this.props.doc.file;\n ^^^^\n source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts\n     ^^^^^\n     source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n           ^^^^\n           source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^\n               source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                  ^^^^\n                  source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                      ^\n                      source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^^^^^\n                       source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                            ^\n                            source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                             ^^^\n                             source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                                ^\n                                source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                 ^^^^\n                                 source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                     ^\n                                     source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>    resolve({\n ^^^^\n source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n            ^\n            source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n             ^\n             source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        abc: Math.random()\n ^^^^^^^^\n source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts\n         ^^^\n         source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n            ^\n            source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n             ^\n             source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n              ^^^^\n              source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts support.constant.math.ts\n                  ^\n                  source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts support.function.math.ts\n                         ^\n                         source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n>    });\n ^^^^\n source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n     ^\n     source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n       ^\n       source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts\n>    class Foo extends React.Component {\n ^^^^\n source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts\n     ^^^^^\n     source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts storage.type.class.ts\n          ^\n          source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts\n           ^^^\n           source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts entity.name.type.class.ts\n              ^\n              source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts\n               ^^^^^^^\n               source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts storage.modifier.ts\n                      ^\n                      source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts\n                       ^^^^^\n                       source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts entity.name.type.module.ts\n                            ^\n                            source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts punctuation.accessor.ts\n                             ^^^^^^^^^\n                             source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts entity.other.inherited-class.ts\n                                      ^\n                                      source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts\n                                       ^\n                                       source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts punctuation.definition.block.ts\n>        render() {\n ^^^^^^^^\n source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts meta.method.declaration.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n               ^\n               source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                 ^\n                 source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts meta.method.declaration.ts\n                  ^\n                  source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        }\n ^^^^^^^^\n source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^\n         source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts\n     ^\n     source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts meta.class.ts punctuation.definition.block.ts\n>    \n ^^^^^\n source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts\n>});\n ^\n source.ts meta.var.expr.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n   ^\n   source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue351.baseline.txt",
    "content": "original file\n-----------------------------------\nthis._blockRenderMap = Map<any>({});\nthis._eventsMap = {};\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>this._blockRenderMap = Map<any>({});\n ^^^^\n source.tsx variable.language.this.tsx\n     ^\n     source.tsx punctuation.accessor.tsx\n      ^^^^^^^^^^^^^^^\n      source.tsx variable.other.property.tsx\n                     ^\n                     source.tsx\n                      ^\n                      source.tsx keyword.operator.assignment.tsx\n                       ^\n                       source.tsx\n                        ^^^\n                        source.tsx meta.function-call.tsx support.class.builtin.tsx\n                           ^\n                           source.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n                            ^^^\n                            source.tsx meta.type.parameters.tsx support.type.primitive.tsx\n                               ^\n                               source.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n                                ^\n                                source.tsx meta.brace.round.tsx\n                                 ^\n                                 source.tsx meta.objectliteral.tsx punctuation.definition.block.tsx\n                                  ^\n                                  source.tsx meta.objectliteral.tsx punctuation.definition.block.tsx\n                                   ^\n                                   source.tsx meta.brace.round.tsx\n                                    ^\n                                    source.tsx punctuation.terminator.statement.tsx\n>this._eventsMap = {};\n ^^^^\n source.tsx variable.language.this.tsx\n     ^\n     source.tsx punctuation.accessor.tsx\n      ^^^^^^^^^^\n      source.tsx variable.other.property.tsx\n                ^\n                source.tsx\n                 ^\n                 source.tsx keyword.operator.assignment.tsx\n                  ^\n                  source.tsx meta.objectliteral.tsx\n                   ^\n                   source.tsx meta.objectliteral.tsx punctuation.definition.block.tsx\n                    ^\n                    source.tsx meta.objectliteral.tsx punctuation.definition.block.tsx\n                     ^\n                     source.tsx punctuation.terminator.statement.tsx"
  },
  {
    "path": "tests/baselines/Issue356.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction formatBigNum(num) {\n  num = Number(num)\n  if (num < 10000) {\n    return num\n  }\n  return (num/10000).toString().replace(/(\\.[\\d]{1})\\d+$/,\"$1\") + 'w '\n}\nlet hbAnimIndex = 0;\nlet hbAnimNode = null;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function formatBigNum(num) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                       ^^^\n                       source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                           ^\n                           source.ts meta.function.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  num = Number(num)\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^\n   source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.function.ts meta.block.ts\n       ^\n       source.ts meta.function.ts meta.block.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.function.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.function.ts meta.block.ts meta.function-call.ts support.class.builtin.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                ^^^\n                source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n>  if (num < 10000) {\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^\n   source.ts meta.function.ts meta.block.ts keyword.control.conditional.ts\n     ^\n     source.ts meta.function.ts meta.block.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n       ^^^\n       source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.function.ts meta.block.ts\n           ^\n           source.ts meta.function.ts meta.block.ts keyword.operator.relational.ts\n            ^\n            source.ts meta.function.ts meta.block.ts\n             ^^^^^\n             source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    return num\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.block.ts\n            ^^^\n            source.ts meta.function.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n>  }\n ^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n   ^\n   source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>  return (num/10000).toString().replace(/(\\.[\\d]{1})\\d+$/,\"$1\") + 'w '\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.function.ts meta.block.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n           ^^^\n           source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.function.ts meta.block.ts keyword.operator.arithmetic.ts\n               ^^^^^\n               source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                      ^^^^^^^^\n                      source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                 ^^^^^^^\n                                 source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts string.regexp.ts punctuation.definition.string.begin.ts\n                                          ^\n                                          source.ts meta.function.ts meta.block.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp\n                                           ^^\n                                           source.ts meta.function.ts meta.block.ts string.regexp.ts meta.group.regexp constant.character.escape.backslash.regexp\n                                             ^\n                                             source.ts meta.function.ts meta.block.ts string.regexp.ts meta.group.regexp constant.other.character-class.set.regexp punctuation.definition.character-class.regexp\n                                              ^^\n                                              source.ts meta.function.ts meta.block.ts string.regexp.ts meta.group.regexp constant.other.character-class.set.regexp constant.other.character-class.regexp\n                                                ^\n                                                source.ts meta.function.ts meta.block.ts string.regexp.ts meta.group.regexp constant.other.character-class.set.regexp punctuation.definition.character-class.regexp\n                                                 ^^^\n                                                 source.ts meta.function.ts meta.block.ts string.regexp.ts meta.group.regexp keyword.operator.quantifier.regexp\n                                                    ^\n                                                    source.ts meta.function.ts meta.block.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp\n                                                     ^^\n                                                     source.ts meta.function.ts meta.block.ts string.regexp.ts constant.other.character-class.regexp\n                                                       ^\n                                                       source.ts meta.function.ts meta.block.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                                        ^\n                                                        source.ts meta.function.ts meta.block.ts string.regexp.ts keyword.control.anchor.regexp\n                                                         ^\n                                                         source.ts meta.function.ts meta.block.ts string.regexp.ts punctuation.definition.string.end.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.block.ts punctuation.separator.comma.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                            ^^\n                                                            source.ts meta.function.ts meta.block.ts string.quoted.double.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.block.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.block.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                                    ^^\n                                                                    source.ts meta.function.ts meta.block.ts string.quoted.single.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>let hbAnimIndex = 0;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n>let hbAnimNode = null;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^^^^\n                  source.ts meta.var.expr.ts constant.language.null.ts\n                      ^\n                      source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue357.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\nconst ProductPrice = ({inStock, price}) => {\n  const dashCode = 8211\n  const dash = String.fromCharCode(dashCode)\n  return (\n    <span\n      className={styles.uPrice}\n      itemProp='offers'\n      itemScope=''\n      itemType='https://schema.org/Offer'\n    >\n      <span\n        itemProp='price'\n      >\n        {inStock\n          ? I18n.toCurrency(price)\n          : <div className={styles.outOfStock}>\n                      {`${dash}`}{I18n.t('spree.out_of_stock')}{`${dash}`}\n            </div>}\n      </span>\n    </span>\n  )\n}\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>const ProductPrice = ({inStock, price}) => {\n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^^^^^^^^^^^^\n       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx\n                   ^\n                   source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n                    ^\n                    source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n                     ^\n                     source.tsx meta.var.expr.tsx meta.arrow.tsx\n                      ^\n                      source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n                       ^\n                       source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx punctuation.definition.binding-pattern.object.tsx\n                        ^^^^^^^\n                        source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx variable.parameter.tsx\n                               ^\n                               source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx punctuation.separator.comma.tsx\n                                ^\n                                source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx\n                                 ^^^^^\n                                 source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx variable.parameter.tsx\n                                      ^\n                                      source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx punctuation.definition.binding-pattern.object.tsx\n                                       ^\n                                       source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n                                        ^\n                                        source.tsx meta.var.expr.tsx meta.arrow.tsx\n                                         ^^\n                                         source.tsx meta.var.expr.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n                                           ^\n                                           source.tsx meta.var.expr.tsx meta.arrow.tsx\n                                            ^\n                                            source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx punctuation.definition.block.tsx\n>  const dashCode = 8211\n ^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx\n   ^^^^^\n   source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx storage.type.tsx\n        ^\n        source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx\n         ^^^^^^^^\n         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n                  ^\n                  source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n                   ^\n                   source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx\n                    ^^^^\n                    source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx constant.numeric.decimal.tsx\n>  const dash = String.fromCharCode(dashCode)\n ^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx\n   ^^^^^\n   source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx storage.type.tsx\n        ^\n        source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx\n         ^^^^\n         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n              ^\n              source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n               ^\n               source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx\n                ^^^^^^\n                source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx meta.function-call.tsx support.class.builtin.tsx\n                      ^\n                      source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx meta.function-call.tsx punctuation.accessor.tsx\n                       ^^^^^^^^^^^^\n                       source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx meta.function-call.tsx support.function.tsx\n                                   ^\n                                   source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx meta.brace.round.tsx\n                                    ^^^^^^^^\n                                    source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx variable.other.readwrite.tsx\n                                            ^\n                                            source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx meta.brace.round.tsx\n>  return (\n ^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx\n   ^^^^^^\n   source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx keyword.control.flow.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx\n          ^\n          source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.brace.round.tsx\n>    <span\n ^^^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx\n     ^\n     source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n      ^^^^\n      source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx entity.name.tag.tsx\n>      className={styles.uPrice}\n ^^^^^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx\n       ^^^^^^^^^\n       source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                ^\n                source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n                  ^^^^^^\n                  source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.object.tsx\n                        ^\n                        source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                         ^^^^^^\n                         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.property.tsx\n                               ^\n                               source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n>      itemProp='offers'\n ^^^^^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx\n       ^^^^^^^^\n       source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n               ^\n               source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                ^\n                source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                 ^^^^^^\n                 source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx\n                       ^\n                       source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n>      itemScope=''\n ^^^^^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx\n       ^^^^^^^^^\n       source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                ^\n                source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                  ^\n                  source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n>      itemType='https://schema.org/Offer'\n ^^^^^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx\n       ^^^^^^^^\n       source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n               ^\n               source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                ^\n                source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                 ^^^^^^^^^^^^^^^^^^^^^^^^\n                 source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx\n                                         ^\n                                         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n>    >\n ^^^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx\n     ^\n     source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>      <span\n ^^^^^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx\n       ^\n       source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n        ^^^^\n        source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n>        itemProp='price'\n ^^^^^^^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n         ^^^^^^^^\n         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                  ^\n                  source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                   ^^^^^\n                   source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx\n                        ^\n                        source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n>      >\n ^^^^^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n       ^\n       source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>        {inStock\n ^^^^^^^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx punctuation.section.embedded.begin.tsx\n          ^^^^^^^\n          source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx variable.other.readwrite.tsx\n>          ? I18n.toCurrency(price)\n ^^^^^^^^^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx\n           ^\n           source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx keyword.operator.ternary.tsx\n            ^\n            source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx\n             ^^^^\n             source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx variable.other.object.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx punctuation.accessor.tsx\n                  ^^^^^^^^^^\n                  source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx entity.name.function.tsx\n                            ^\n                            source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.brace.round.tsx\n                             ^^^^^\n                             source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx variable.other.readwrite.tsx\n                                  ^\n                                  source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.brace.round.tsx\n>          : <div className={styles.outOfStock}>\n ^^^^^^^^^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx\n           ^\n           source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx keyword.operator.ternary.tsx\n            ^\n            source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n              ^^^\n              source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx entity.name.tag.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.tag.attributes.tsx\n                  ^^^^^^^^^\n                  source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                           ^\n                           source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                            ^\n                            source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n                             ^^^^^^\n                             source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.object.tsx\n                                   ^\n                                   source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                                    ^^^^^^^^^^\n                                    source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.property.tsx\n                                              ^\n                                              source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n                                               ^\n                                               source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>                      {`${dash}`}{I18n.t('spree.out_of_stock')}{`${dash}`}\n ^^^^^^^^^^^^^^^^^^^^^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx\n                       ^\n                       source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx punctuation.section.embedded.begin.tsx\n                        ^\n                        source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.template.tsx punctuation.definition.string.template.begin.tsx\n                         ^^\n                         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.template.tsx meta.template.expression.tsx punctuation.definition.template-expression.begin.tsx\n                           ^^^^\n                           source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.template.tsx meta.template.expression.tsx meta.embedded.line.tsx variable.other.readwrite.tsx\n                               ^\n                               source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.template.tsx meta.template.expression.tsx punctuation.definition.template-expression.end.tsx\n                                ^\n                                source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.template.tsx punctuation.definition.string.template.end.tsx\n                                 ^\n                                 source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx punctuation.section.embedded.end.tsx\n                                  ^\n                                  source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx punctuation.section.embedded.begin.tsx\n                                   ^^^^\n                                   source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx variable.other.object.tsx\n                                       ^\n                                       source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx punctuation.accessor.tsx\n                                        ^\n                                        source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx entity.name.function.tsx\n                                         ^\n                                         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.brace.round.tsx\n                                          ^\n                                          source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                                           ^^^^^^^^^^^^^^^^^^\n                                           source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.quoted.single.tsx\n                                                             ^\n                                                             source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                                              ^\n                                                              source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.brace.round.tsx\n                                                               ^\n                                                               source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx punctuation.section.embedded.end.tsx\n                                                                ^\n                                                                source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx punctuation.section.embedded.begin.tsx\n                                                                 ^\n                                                                 source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.template.tsx punctuation.definition.string.template.begin.tsx\n                                                                  ^^\n                                                                  source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.template.tsx meta.template.expression.tsx punctuation.definition.template-expression.begin.tsx\n                                                                    ^^^^\n                                                                    source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.template.tsx meta.template.expression.tsx meta.embedded.line.tsx variable.other.readwrite.tsx\n                                                                        ^\n                                                                        source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.template.tsx meta.template.expression.tsx punctuation.definition.template-expression.end.tsx\n                                                                         ^\n                                                                         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.template.tsx punctuation.definition.string.template.end.tsx\n                                                                          ^\n                                                                          source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx punctuation.section.embedded.end.tsx\n>            </div>}\n ^^^^^^^^^^^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx meta.jsx.children.tsx\n             ^^\n             source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n               ^^^\n               source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx entity.name.tag.tsx\n                  ^\n                  source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                   ^\n                   source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx punctuation.section.embedded.end.tsx\n>      </span>\n ^^^^^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx\n       ^^\n       source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n         ^^^^\n         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>    </span>\n ^^^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx\n     ^^\n     source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n       ^^^^\n       source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx entity.name.tag.tsx\n           ^\n           source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>  )\n ^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx\n   ^\n   source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.brace.round.tsx\n>}\n ^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx punctuation.definition.block.tsx"
  },
  {
    "path": "tests/baselines/Issue359.baseline.txt",
    "content": "original file\n-----------------------------------\nconst test = (value: string) => {\n    const a = 123;\n    const b = {\n        [`${value}[]`]: a,\n    };\n    const c = 123;\n    return b;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const test = (value: string) => {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^^^^^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                      ^^^^^^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.arrow.ts\n                              ^^\n                              source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.arrow.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    const a = 123;\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n               ^^^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>    const b = {\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        [`${value}[]`]: a,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.brace.square.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts string.template.ts punctuation.definition.string.template.begin.ts\n           ^^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n             ^^^^^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                   ^^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts string.template.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts string.template.ts punctuation.definition.string.template.end.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.brace.square.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>    };\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>    const c = 123;\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n               ^^^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>    return b;\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue36.baseline.txt",
    "content": "original file\n-----------------------------------\nlet x = {\n    hello() {\n        let hello = \"world\";\n    }\n};\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let x = {\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    hello() {\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        let hello = \"world\";\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n         ^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                      ^^^^^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>};\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue361.baseline.txt",
    "content": "original file\n-----------------------------------\nconst constructor = someObject.prototype.constructor;\n const objectLiteral = { constructor };\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const constructor = someObject.prototype.constructor;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.var.expr.ts\n                     ^^^^^^^^^^\n                     source.ts meta.var.expr.ts support.class.ts\n                               ^\n                               source.ts meta.var.expr.ts punctuation.accessor.ts\n                                ^^^^^^^^^\n                                source.ts meta.var.expr.ts support.variable.property.ts\n                                         ^\n                                         source.ts meta.var.expr.ts punctuation.accessor.ts\n                                          ^^^^^^^^^^^\n                                          source.ts meta.var.expr.ts support.variable.property.ts\n                                                     ^\n                                                     source.ts punctuation.terminator.statement.ts\n> const objectLiteral = { constructor };\n ^\n source.ts\n  ^^^^^\n  source.ts meta.var.expr.ts storage.type.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^^^^^^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                      ^\n                      source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                       ^\n                       source.ts meta.var.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts\n                          ^^^^^^^^^^^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                       ^\n                                       source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue365.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Renamer {\n  constructor (private readonly srcName: string, private readonly target: string, readonly copy: boolean = false) {}\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Renamer {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n              ^\n              source.ts meta.class.ts\n               ^\n               source.ts meta.class.ts punctuation.definition.block.ts\n>  constructor (private readonly srcName: string, private readonly target: string, readonly copy: boolean = false) {}\n ^^\n source.ts meta.class.ts meta.method.declaration.ts\n   ^^^^^^^^^^^\n   source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^^^^^^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts storage.modifier.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                        ^^^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts storage.modifier.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                 ^^^^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                          ^^^^^^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                  ^^^^^^^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts storage.modifier.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                          ^^^^^^^^\n                                                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts storage.modifier.ts\n                                                                  ^\n                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                                   ^^^^^^\n                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                                                         ^\n                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                          ^\n                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                                           ^^^^^^\n                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                                 ^\n                                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                                  ^\n                                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                                                   ^^^^^^^^\n                                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts storage.modifier.ts\n                                                                                           ^\n                                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                                                            ^^^^\n                                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                                                                                ^\n                                                                                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                                                 ^\n                                                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                                                                  ^^^^^^^\n                                                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                                                         ^\n                                                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                                                                          ^\n                                                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts keyword.operator.assignment.ts\n                                                                                                           ^\n                                                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                                                                            ^^^^^\n                                                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts constant.language.boolean.false.ts\n                                                                                                                 ^\n                                                                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                                                                  ^\n                                                                                                                  source.ts meta.class.ts meta.method.declaration.ts\n                                                                                                                   ^\n                                                                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                                                                                                    ^\n                                                                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue366.baseline.txt",
    "content": "original file\n-----------------------------------\nlet foo = a ? b ? c : d : e;\nlet bar;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let foo = a ? b ? c : d : e;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.ternary.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts keyword.operator.ternary.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.var.expr.ts keyword.operator.ternary.ts\n                      ^\n                      source.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.var.expr.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.var.expr.ts keyword.operator.ternary.ts\n                          ^\n                          source.ts meta.var.expr.ts\n                           ^\n                           source.ts meta.var.expr.ts variable.other.readwrite.ts\n                            ^\n                            source.ts punctuation.terminator.statement.ts\n>let bar;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue368.baseline.txt",
    "content": "original file\n-----------------------------------\nlet creditCard = 'cc';\nconst CREDIT_CARD = 'CC';\n\nconsole.log(`Payment Type: ${creditCard}`);\nconsole.log(`Payment Type: ${CREDIT_CARD}`);\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let creditCard = 'cc';\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                   ^^\n                   source.ts meta.var.expr.ts string.quoted.single.ts\n                     ^\n                     source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                      ^\n                      source.ts punctuation.terminator.statement.ts\n>const CREDIT_CARD = 'CC';\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                      ^^\n                      source.ts meta.var.expr.ts string.quoted.single.ts\n                        ^\n                        source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>console.log(`Payment Type: ${creditCard}`);\n ^^^^^^^\n source.ts meta.function-call.ts support.class.console.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^\n         source.ts meta.function-call.ts support.function.console.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts string.template.ts punctuation.definition.string.template.begin.ts\n              ^^^^^^^^^^^^^^\n              source.ts string.template.ts\n                            ^^\n                            source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                              ^^^^^^^^^^\n                              source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                        ^\n                                        source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                         ^\n                                         source.ts string.template.ts punctuation.definition.string.template.end.ts\n                                          ^\n                                          source.ts meta.brace.round.ts\n                                           ^\n                                           source.ts punctuation.terminator.statement.ts\n>console.log(`Payment Type: ${CREDIT_CARD}`);\n ^^^^^^^\n source.ts meta.function-call.ts support.class.console.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^\n         source.ts meta.function-call.ts support.function.console.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts string.template.ts punctuation.definition.string.template.begin.ts\n              ^^^^^^^^^^^^^^\n              source.ts string.template.ts\n                            ^^\n                            source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                              ^^^^^^^^^^^\n                              source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.constant.ts\n                                         ^\n                                         source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                          ^\n                                          source.ts string.template.ts punctuation.definition.string.template.end.ts\n                                           ^\n                                           source.ts meta.brace.round.ts\n                                            ^\n                                            source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue37.baseline.txt",
    "content": "original file\n-----------------------------------\n//Test For Scopes\n\nimport * as req from \"./Required\"\nimport { Scale } from \"./scale\";\n\nif (object.instanceof(ClassNew)) {\n}\n\nclass class1(){\n\tstatic functioname(){\n\n\t}\n}\n\nexport class className(){\n\tprivate state = { }\n}\n\nvoid newFunctionName(){\n\n\tvar c = a + b;\n\n\tswitch (someNum) {\n\t\tcase 1: break;\n\t\tcase 2: break;\n\t\tdefault: break;\n\t} \n\n}\n\n/**\n * Verify comments\n */\n\nmodule M {\n    export function myFun(x: number) {\n        return x;\n    }\n}\n\nvar m: typeof M = M;\n\nvar adder = new Adder(3, 4);\ndelete (adder)\n\nvar s = typeof {}git \ninterface I {}\nvar j: I = {}\n\n\nmodule Body {\n    export class Cell {\n        public parent: Cell;\n\n        constructor(parent: Cell) {\n            this.parent = parent;\n            if (typeof parent === 'object' || parent instanceof Error) {\n            \t\n            }\n        }\n    }\n}\n\n/*\n\n  End of file\n\n*/\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>//Test For Scopes\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>import * as req from \"./Required\"\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts constant.language.import-export-all.ts\n         ^\n         source.ts meta.import.ts\n          ^^\n          source.ts meta.import.ts keyword.control.as.ts\n            ^\n            source.ts meta.import.ts\n             ^^^\n             source.ts meta.import.ts variable.other.readwrite.alias.ts\n                ^\n                source.ts meta.import.ts\n                 ^^^^\n                 source.ts meta.import.ts keyword.control.from.ts\n                     ^\n                     source.ts meta.import.ts\n                      ^\n                      source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                       ^^^^^^^^^^\n                       source.ts meta.import.ts string.quoted.double.ts\n                                 ^\n                                 source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>import { Scale } from \"./scale\";\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.import.ts meta.block.ts\n          ^^^^^\n          source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n               ^\n               source.ts meta.import.ts meta.block.ts\n                ^\n                source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                 ^\n                 source.ts meta.import.ts\n                  ^^^^\n                  source.ts meta.import.ts keyword.control.from.ts\n                      ^\n                      source.ts meta.import.ts\n                       ^\n                       source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                        ^^^^^^^\n                        source.ts meta.import.ts string.quoted.double.ts\n                               ^\n                               source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                ^\n                                source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>if (object.instanceof(ClassNew)) {\n ^^\n source.ts keyword.control.conditional.ts\n   ^\n   source.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^^^^^^\n     source.ts meta.function-call.ts variable.other.object.ts\n           ^\n           source.ts meta.function-call.ts punctuation.accessor.ts\n            ^^^^^^^^^^\n            source.ts meta.function-call.ts entity.name.function.ts\n                      ^\n                      source.ts meta.brace.round.ts\n                       ^^^^^^^^\n                       source.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.brace.round.ts\n                                 ^\n                                 source.ts\n                                  ^\n                                  source.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>class class1(){\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n             ^^\n             source.ts meta.class.ts\n               ^\n               source.ts meta.class.ts punctuation.definition.block.ts\n>\tstatic functioname(){\n ^\n source.ts meta.class.ts\n  ^^^^^^\n  source.ts meta.class.ts storage.modifier.ts\n        ^\n        source.ts meta.class.ts\n         ^^^^^^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>\t}\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>export class className(){\n ^^^^^^\n source.ts meta.class.ts keyword.control.export.ts\n       ^\n       source.ts meta.class.ts\n        ^^^^^\n        source.ts meta.class.ts storage.type.class.ts\n             ^\n             source.ts meta.class.ts\n              ^^^^^^^^^\n              source.ts meta.class.ts entity.name.type.class.ts\n                       ^^\n                       source.ts meta.class.ts\n                         ^\n                         source.ts meta.class.ts punctuation.definition.block.ts\n>\tprivate state = { }\n ^\n source.ts meta.class.ts\n  ^^^^^^^\n  source.ts meta.class.ts storage.modifier.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts\n          ^^^^^\n          source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts punctuation.definition.block.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>void newFunctionName(){\n ^^^^\n source.ts keyword.operator.expression.void.ts\n     ^\n     source.ts\n      ^^^^^^^^^^^^^^^\n      source.ts meta.function-call.ts entity.name.function.ts\n                     ^\n                     source.ts meta.brace.round.ts\n                      ^\n                      source.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.block.ts\n>\tvar c = a + b;\n ^\n source.ts meta.block.ts\n  ^^^\n  source.ts meta.block.ts meta.var.expr.ts storage.type.ts\n     ^\n     source.ts meta.block.ts meta.var.expr.ts\n      ^\n      source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n        ^\n        source.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.block.ts meta.var.expr.ts\n          ^\n          source.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.block.ts meta.var.expr.ts\n            ^\n            source.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n             ^\n             source.ts meta.block.ts meta.var.expr.ts\n              ^\n              source.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.block.ts\n>\tswitch (someNum) {\n ^\n source.ts meta.block.ts\n  ^^^^^^\n  source.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts keyword.control.switch.ts\n        ^\n        source.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts\n         ^\n         source.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts meta.brace.round.ts\n          ^^^^^^^\n          source.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-expression.expr.ts meta.brace.round.ts\n                  ^\n                  source.ts meta.block.ts switch-statement.expr.ts\n                   ^\n                   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.definition.block.ts\n>\t\tcase 1: break;\n ^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n   ^^^^\n   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n       ^\n       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts\n        ^\n        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts constant.numeric.decimal.ts\n         ^\n         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n          ^\n          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n           ^^^^^\n           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                ^\n                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>\t\tcase 2: break;\n ^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n   ^^^^\n   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n       ^\n       source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts\n        ^\n        source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts constant.numeric.decimal.ts\n         ^\n         source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n          ^\n          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n           ^^^^^\n           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                ^\n                source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>\t\tdefault: break;\n ^^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n   ^^^^^^^\n   source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n          ^\n          source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n           ^\n           source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n            ^^^^^\n            source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts keyword.control.loop.ts\n                 ^\n                 source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts punctuation.terminator.statement.ts\n>\t} \n ^\n source.ts meta.block.ts switch-statement.expr.ts switch-block.expr.ts\n  ^\n  source.ts meta.block.ts switch-statement.expr.ts punctuation.definition.block.ts\n   ^^\n   source.ts meta.block.ts\n>\n ^\n source.ts meta.block.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>/**\n ^^^\n source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n> * Verify comments\n ^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.documentation.ts\n> */\n ^\n source.ts comment.block.documentation.ts\n  ^^\n  source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>\n ^\n source.ts\n>module M {\n ^^^^^^\n source.ts meta.namespace.declaration.ts storage.type.namespace.ts\n       ^\n       source.ts meta.namespace.declaration.ts\n        ^\n        source.ts meta.namespace.declaration.ts entity.name.type.module.ts\n         ^\n         source.ts meta.namespace.declaration.ts\n          ^\n          source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    export function myFun(x: number) {\n ^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts keyword.control.export.ts\n           ^\n           source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts\n            ^^^^^^^^\n            source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts storage.type.function.ts\n                    ^\n                    source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts\n                     ^^^^^\n                     source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                          ^\n                          source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                           ^\n                           source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                            ^\n                            source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                             ^\n                             source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                              ^^^^^^\n                              source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                    ^\n                                    source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                     ^\n                                     source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts\n                                      ^\n                                      source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>        return x;\n ^^^^^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.block.ts\n                ^\n                source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.block.ts\n     ^\n     source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>var m: typeof M = M;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.expression.typeof.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts variable.other.constant.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                 ^\n                 source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts variable.other.constant.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>var adder = new Adder(3, 4);\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^^^\n             source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n                ^\n                source.ts meta.var.expr.ts new.expr.ts\n                 ^^^^^\n                 source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                      ^\n                      source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.var.expr.ts new.expr.ts constant.numeric.decimal.ts\n                        ^\n                        source.ts meta.var.expr.ts new.expr.ts punctuation.separator.comma.ts\n                         ^\n                         source.ts meta.var.expr.ts new.expr.ts\n                          ^\n                          source.ts meta.var.expr.ts new.expr.ts constant.numeric.decimal.ts\n                           ^\n                           source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                            ^\n                            source.ts punctuation.terminator.statement.ts\n>delete (adder)\n ^^^^^^\n source.ts keyword.operator.expression.delete.ts\n       ^\n       source.ts\n        ^\n        source.ts meta.brace.round.ts\n         ^^^^^\n         source.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.brace.round.ts\n>\n ^\n source.ts\n>var s = typeof {}git \n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts keyword.operator.expression.typeof.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                  ^^^\n                  source.ts meta.var.expr.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.var.expr.ts\n>interface I {}\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^\n             source.ts meta.interface.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.interface.ts punctuation.definition.block.ts\n>var j: I = {}\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>\n ^\n source.ts\n>module Body {\n ^^^^^^\n source.ts meta.namespace.declaration.ts storage.type.namespace.ts\n       ^\n       source.ts meta.namespace.declaration.ts\n        ^^^^\n        source.ts meta.namespace.declaration.ts entity.name.type.module.ts\n            ^\n            source.ts meta.namespace.declaration.ts\n             ^\n             source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    export class Cell {\n ^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts keyword.control.export.ts\n           ^\n           source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts\n            ^^^^^\n            source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts storage.type.class.ts\n                 ^\n                 source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts\n                  ^^^^\n                  source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts entity.name.type.class.ts\n                      ^\n                      source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts\n                       ^\n                       source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.definition.block.ts\n>        public parent: Cell;\n ^^^^^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts\n         ^^^^^^\n         source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts storage.modifier.ts\n               ^\n               source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts\n                ^^^^^^\n                source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                      ^\n                      source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                       ^\n                       source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                        ^^^^\n                        source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                            ^\n                            source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts\n>        constructor(parent: Cell) {\n ^^^^^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts\n         ^^^^^^^^^^^\n         source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n                    ^\n                    source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                     ^^^^^^\n                     source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                           ^\n                           source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                            ^\n                            source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                             ^^^^\n                             source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                 ^\n                                 source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                  ^\n                                  source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts\n                                   ^\n                                   source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>            this.parent = parent;\n ^^^^^^^^^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n             ^^^^\n             source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n                 ^\n                 source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n                  ^^^^^^\n                  source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts support.variable.property.dom.ts\n                        ^\n                        source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                         ^\n                         source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts\n                          ^\n                          source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                           ^^^^^^\n                           source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                                 ^\n                                 source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>            if (typeof parent === 'object' || parent instanceof Error) {\n ^^^^^^^^^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n             ^^\n             source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n               ^\n               source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                ^\n                source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                 ^^^^^^\n                 source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.expression.typeof.ts\n                       ^\n                       source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                        ^^^^^^\n                        source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                              ^\n                              source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                               ^^^\n                               source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.comparison.ts\n                                  ^\n                                  source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                   ^\n                                   source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                    ^^^^^^\n                                    source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts\n                                          ^\n                                          source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                           ^\n                                           source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                            ^^\n                                            source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.logical.ts\n                                              ^\n                                              source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                               ^^^^^^\n                                               source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                                                     ^\n                                                     source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                      ^^^^^^^^^^\n                                                      source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.expression.instanceof.ts\n                                                                ^\n                                                                source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                                 ^^^^^\n                                                                 source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts entity.name.type.ts\n                                                                      ^\n                                                                      source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                                                       ^\n                                                                       source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                                        ^\n                                                                        source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>            \t\n ^^^^^^^^^^^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n>            }\n ^^^^^^^^^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n             ^\n             source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>        }\n ^^^^^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^\n         source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts\n     ^\n     source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>/*\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n>\n ^\n source.ts comment.block.ts\n>  End of file\n ^^^^^^^^^^^^^^\n source.ts comment.block.ts\n>\n ^\n source.ts comment.block.ts\n>*/\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts"
  },
  {
    "path": "tests/baselines/Issue375.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has type assertion\nclass Foo {\n    constructor(public x: string) {}\n}\n\nconst foo1 = <Foo> { x: '1' };\nconst foo2 = <Foo> {\n    x: '2'\n};\nconst foo3 =\n    <Foo> {\n        x: '3'\n    };\n\nlet foos: Foo[] = <Foo[]> [\n    new Foo('4'),\n    <Foo>{ x: '5' },\n    <Foo>{\n        x: '6'\n    },\n];\n\nlet obj = Object.assign(new Foo('7'), <Foo> { x: '8' },\n    <Foo>{ x: '9' }, <Foo> { x: '10' }, <Foo>{\n        x: '11'\n    },\n    <Foo>{\n        x: '12'\n    });\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has type assertion\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>class Foo {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^\n          source.ts meta.class.ts\n           ^\n           source.ts meta.class.ts punctuation.definition.block.ts\n>    constructor(public x: string) {}\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts storage.modifier.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>const foo1 = <Foo> { x: '1' };\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts cast.expr.ts\n              ^\n              source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n               ^^^\n               source.ts meta.var.expr.ts cast.expr.ts entity.name.type.ts\n                  ^\n                  source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                   ^\n                   source.ts meta.var.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts\n>const foo2 = <Foo> {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts cast.expr.ts\n              ^\n              source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n               ^^^\n               source.ts meta.var.expr.ts cast.expr.ts entity.name.type.ts\n                  ^\n                  source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                   ^\n                   source.ts meta.var.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    x: '2'\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>};\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts\n>const foo3 =\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n>    <Foo> {\n ^^^^\n source.ts meta.var.expr.ts cast.expr.ts\n     ^\n     source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n      ^^^\n      source.ts meta.var.expr.ts cast.expr.ts entity.name.type.ts\n         ^\n         source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        x: '3'\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>    };\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>let foos: Foo[] = <Foo[]> [\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n           ^^^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                 ^\n                 source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.var.expr.ts cast.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                    ^^^\n                    source.ts meta.var.expr.ts cast.expr.ts entity.name.type.ts\n                       ^\n                       source.ts meta.var.expr.ts cast.expr.ts meta.type.tuple.ts meta.brace.square.ts\n                        ^\n                        source.ts meta.var.expr.ts cast.expr.ts meta.type.tuple.ts meta.brace.square.ts\n                         ^\n                         source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.array.literal.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n>    new Foo('4'),\n ^^^^\n source.ts meta.var.expr.ts meta.array.literal.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.array.literal.ts new.expr.ts keyword.operator.new.ts\n        ^\n        source.ts meta.var.expr.ts meta.array.literal.ts new.expr.ts\n         ^^^\n         source.ts meta.var.expr.ts meta.array.literal.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n            ^\n            source.ts meta.var.expr.ts meta.array.literal.ts new.expr.ts meta.brace.round.ts\n             ^\n             source.ts meta.var.expr.ts meta.array.literal.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n              ^\n              source.ts meta.var.expr.ts meta.array.literal.ts new.expr.ts string.quoted.single.ts\n               ^\n               source.ts meta.var.expr.ts meta.array.literal.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                ^\n                source.ts meta.var.expr.ts meta.array.literal.ts new.expr.ts meta.brace.round.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.array.literal.ts punctuation.separator.comma.ts\n>    <Foo>{ x: '5' },\n ^^^^\n source.ts meta.var.expr.ts meta.array.literal.ts cast.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.array.literal.ts cast.expr.ts meta.brace.angle.ts\n      ^^^\n      source.ts meta.var.expr.ts meta.array.literal.ts cast.expr.ts entity.name.type.ts\n         ^\n         source.ts meta.var.expr.ts meta.array.literal.ts cast.expr.ts meta.brace.angle.ts\n          ^\n          source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n           ^\n           source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts\n            ^\n            source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n             ^\n             source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n              ^\n              source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n               ^\n               source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                ^\n                source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.array.literal.ts punctuation.separator.comma.ts\n>    <Foo>{\n ^^^^\n source.ts meta.var.expr.ts meta.array.literal.ts cast.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.array.literal.ts cast.expr.ts meta.brace.angle.ts\n      ^^^\n      source.ts meta.var.expr.ts meta.array.literal.ts cast.expr.ts entity.name.type.ts\n         ^\n         source.ts meta.var.expr.ts meta.array.literal.ts cast.expr.ts meta.brace.angle.ts\n          ^\n          source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        x: '6'\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts\n         ^\n         source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n          ^\n          source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n           ^\n           source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n            ^\n            source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n             ^\n             source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n              ^\n              source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>    },\n ^^^^\n source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n     ^\n     source.ts meta.var.expr.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts meta.array.literal.ts punctuation.separator.comma.ts\n>];\n ^\n source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n  ^\n  source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>let obj = Object.assign(new Foo('7'), <Foo> { x: '8' },\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^^^^^^\n           source.ts meta.var.expr.ts meta.function-call.ts support.class.builtin.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                  ^^^^^^\n                  source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.brace.round.ts\n                         ^^^\n                         source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n                            ^\n                            source.ts meta.var.expr.ts new.expr.ts\n                             ^^^\n                             source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.var.expr.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                  ^\n                                  source.ts meta.var.expr.ts new.expr.ts string.quoted.single.ts\n                                   ^\n                                   source.ts meta.var.expr.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                    ^\n                                    source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                                      ^\n                                      source.ts meta.var.expr.ts cast.expr.ts\n                                       ^\n                                       source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                                        ^^^\n                                        source.ts meta.var.expr.ts cast.expr.ts entity.name.type.ts\n                                           ^\n                                           source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                                            ^\n                                            source.ts meta.var.expr.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.objectliteral.ts\n                                               ^\n                                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                                      ^\n                                                      source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                       ^\n                                                       source.ts meta.var.expr.ts punctuation.separator.comma.ts\n>    <Foo>{ x: '9' }, <Foo> { x: '10' }, <Foo>{\n ^^^^\n source.ts meta.var.expr.ts cast.expr.ts\n     ^\n     source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n      ^^^\n      source.ts meta.var.expr.ts cast.expr.ts entity.name.type.ts\n         ^\n         source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                    ^\n                    source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                     ^\n                     source.ts meta.var.expr.ts cast.expr.ts\n                      ^\n                      source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                       ^^^\n                       source.ts meta.var.expr.ts cast.expr.ts entity.name.type.ts\n                          ^\n                          source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                           ^\n                           source.ts meta.var.expr.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                  ^^\n                                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                       ^\n                                       source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                                        ^\n                                        source.ts meta.var.expr.ts cast.expr.ts\n                                         ^\n                                         source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                                          ^^^\n                                          source.ts meta.var.expr.ts cast.expr.ts entity.name.type.ts\n                                             ^\n                                             source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        x: '11'\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n             ^^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>    },\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts punctuation.separator.comma.ts\n>    <Foo>{\n ^^^^\n source.ts meta.var.expr.ts cast.expr.ts\n     ^\n     source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n      ^^^\n      source.ts meta.var.expr.ts cast.expr.ts entity.name.type.ts\n         ^\n         source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        x: '12'\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n             ^^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>    });\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts meta.brace.round.ts\n       ^\n       source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue376.baseline.txt",
    "content": "original file\n-----------------------------------\n interface Itest {\n\ta: 'a1' // a1 is good\n\t\t| 'a2' // a2 is good\n\t\t| 'a3' // a3 is good\n\tb: {\n\t\ta: 'a1'\n\t\t\t| 'a2' // oh , the color is not good !\n\t\t\t| 'a3' // oh , the color is not good !\n\t}\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n> interface Itest {\n ^\n source.ts\n  ^^^^^^^^^\n  source.ts meta.interface.ts storage.type.interface.ts\n           ^\n           source.ts meta.interface.ts\n            ^^^^^\n            source.ts meta.interface.ts entity.name.type.interface.ts\n                 ^\n                 source.ts meta.interface.ts\n                  ^\n                  source.ts meta.interface.ts punctuation.definition.block.ts\n>\ta: 'a1' // a1 is good\n ^\n source.ts meta.interface.ts meta.field.declaration.ts\n  ^\n  source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n   ^\n   source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n    ^\n    source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n     ^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n      ^^\n      source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts string.quoted.single.ts\n        ^\n        source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.end.ts\n         ^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n          ^^\n          source.ts meta.interface.ts meta.field.declaration.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n            ^^^^^^^^^^^\n            source.ts meta.interface.ts meta.field.declaration.ts comment.line.double-slash.ts\n>\t\t| 'a2' // a2 is good\n ^^\n source.ts meta.interface.ts\n   ^\n   source.ts meta.interface.ts keyword.operator.bitwise.ts\n    ^\n    source.ts meta.interface.ts\n     ^\n     source.ts meta.interface.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n      ^^\n      source.ts meta.interface.ts string.quoted.single.ts\n        ^\n        source.ts meta.interface.ts string.quoted.single.ts punctuation.definition.string.end.ts\n         ^\n         source.ts meta.interface.ts\n          ^^\n          source.ts meta.interface.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n            ^^^^^^^^^^^\n            source.ts meta.interface.ts comment.line.double-slash.ts\n>\t\t| 'a3' // a3 is good\n ^^\n source.ts meta.interface.ts\n   ^\n   source.ts meta.interface.ts keyword.operator.bitwise.ts\n    ^\n    source.ts meta.interface.ts\n     ^\n     source.ts meta.interface.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n      ^^\n      source.ts meta.interface.ts string.quoted.single.ts\n        ^\n        source.ts meta.interface.ts string.quoted.single.ts punctuation.definition.string.end.ts\n         ^\n         source.ts meta.interface.ts\n          ^^\n          source.ts meta.interface.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n            ^^^^^^^^^^^\n            source.ts meta.interface.ts comment.line.double-slash.ts\n>\tb: {\n ^\n source.ts meta.interface.ts meta.field.declaration.ts\n  ^\n  source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n   ^\n   source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n    ^\n    source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n     ^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>\t\ta: 'a1'\n ^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n   ^\n   source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n    ^\n    source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n     ^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n      ^\n      source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n       ^^\n       source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts string.quoted.single.ts\n         ^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>\t\t\t| 'a2' // oh , the color is not good !\n ^^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n    ^\n    source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.ts\n     ^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n      ^\n      source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n       ^^\n       source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts string.quoted.single.ts\n         ^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.end.ts\n          ^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n           ^^\n           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n             source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts comment.line.double-slash.ts\n>\t\t\t| 'a3' // oh , the color is not good !\n ^^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts\n    ^\n    source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts keyword.operator.type.ts\n     ^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts\n      ^\n      source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n       ^^\n       source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts string.quoted.single.ts\n         ^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts string.quoted.single.ts punctuation.definition.string.end.ts\n          ^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts\n           ^^\n           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n             source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts comment.line.double-slash.ts\n>\t}\n ^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts\n  ^\n  source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue377.baseline.txt",
    "content": "original file\n-----------------------------------\ndt = ((dt[0] * 1e9 + dt[1]) / 1e6).toFixed(3).replace(/\\.?0+$/, '') + 'ms';\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>dt = ((dt[0] * 1e9 + dt[1]) / 1e6).toFixed(3).replace(/\\.?0+$/, '') + 'ms';\n ^^\n source.ts variable.other.readwrite.ts\n   ^\n   source.ts\n    ^\n    source.ts keyword.operator.assignment.ts\n     ^\n     source.ts\n      ^\n      source.ts meta.brace.round.ts\n       ^\n       source.ts meta.brace.round.ts\n        ^^\n        source.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.array.literal.ts meta.brace.square.ts\n           ^\n           source.ts meta.array.literal.ts constant.numeric.decimal.ts\n            ^\n            source.ts meta.array.literal.ts meta.brace.square.ts\n             ^\n             source.ts\n              ^\n              source.ts keyword.operator.arithmetic.ts\n               ^\n               source.ts\n                ^^^\n                source.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts\n                    ^\n                    source.ts keyword.operator.arithmetic.ts\n                     ^\n                     source.ts\n                      ^^\n                      source.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.array.literal.ts meta.brace.square.ts\n                         ^\n                         source.ts meta.array.literal.ts constant.numeric.decimal.ts\n                          ^\n                          source.ts meta.array.literal.ts meta.brace.square.ts\n                           ^\n                           source.ts meta.brace.round.ts\n                            ^\n                            source.ts\n                             ^\n                             source.ts keyword.operator.arithmetic.ts\n                              ^\n                              source.ts\n                               ^^^\n                               source.ts constant.numeric.decimal.ts\n                                  ^\n                                  source.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.function-call.ts punctuation.accessor.ts\n                                    ^^^^^^^\n                                    source.ts meta.function-call.ts entity.name.function.ts\n                                           ^\n                                           source.ts meta.brace.round.ts\n                                            ^\n                                            source.ts constant.numeric.decimal.ts\n                                             ^\n                                             source.ts meta.brace.round.ts\n                                              ^\n                                              source.ts meta.function-call.ts punctuation.accessor.ts\n                                               ^^^^^^^\n                                               source.ts meta.function-call.ts support.function.ts\n                                                      ^\n                                                      source.ts meta.brace.round.ts\n                                                       ^\n                                                       source.ts string.regexp.ts punctuation.definition.string.begin.ts\n                                                        ^^\n                                                        source.ts string.regexp.ts constant.character.escape.backslash.regexp\n                                                          ^\n                                                          source.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                                           ^\n                                                           source.ts string.regexp.ts\n                                                            ^\n                                                            source.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                                             ^\n                                                             source.ts string.regexp.ts keyword.control.anchor.regexp\n                                                              ^\n                                                              source.ts string.regexp.ts punctuation.definition.string.end.ts\n                                                               ^\n                                                               source.ts punctuation.separator.comma.ts\n                                                                ^\n                                                                source.ts\n                                                                 ^\n                                                                 source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                                  ^\n                                                                  source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                   ^\n                                                                   source.ts meta.brace.round.ts\n                                                                    ^\n                                                                    source.ts\n                                                                     ^\n                                                                     source.ts keyword.operator.arithmetic.ts\n                                                                      ^\n                                                                      source.ts\n                                                                       ^\n                                                                       source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                                        ^^\n                                                                        source.ts string.quoted.single.ts\n                                                                          ^\n                                                                          source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                           ^\n                                                                           source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue379.baseline.txt",
    "content": "original file\n-----------------------------------\ninterface A {\n    prop1: string\n    prop2: string\n    method1(): void\n    prop3: string\n    prop4: string\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>interface A {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^\n             source.ts meta.interface.ts punctuation.definition.block.ts\n>    prop1: string\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n            ^^^^^^\n            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>    prop2: string\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n            ^^^^^^\n            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>    method1(): void\n ^^^^\n source.ts meta.interface.ts meta.method.declaration.ts\n     ^^^^^^^\n     source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n            ^\n            source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n             ^\n             source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n              ^\n              source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n                ^^^^\n                source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n>    prop3: string\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n            ^^^^^^\n            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>    prop4: string\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n            ^^^^^^\n            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue380.baseline.txt",
    "content": "original file\n-----------------------------------\nlet namespace;\nnamespace = `${\"a\"}`;\n\nlet x = 1\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let namespace;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>namespace = `${\"a\"}`;\n ^^^^^^^^^\n source.ts variable.other.readwrite.ts\n          ^\n          source.ts\n           ^\n           source.ts keyword.operator.assignment.ts\n            ^\n            source.ts\n             ^\n             source.ts string.template.ts punctuation.definition.string.template.begin.ts\n              ^^\n              source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                ^\n                source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                 ^\n                 source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.double.ts\n                  ^\n                  source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                   ^\n                   source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                    ^\n                    source.ts string.template.ts punctuation.definition.string.template.end.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>let x = 1\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts constant.numeric.decimal.ts"
  },
  {
    "path": "tests/baselines/Issue381.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Foo{\n  constructor(){\n\n  }\n  test(){\n    return `/game.php?village=${source}&screen=main&ajaxaction=upgrade_building&type=main&h=${csrf_token}&&client_time=${+new Date}`\n  }\n  noColorSyntax(){\n    \n  }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Foo{\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^\n          source.ts meta.class.ts punctuation.definition.block.ts\n>  constructor(){\n ^^\n source.ts meta.class.ts meta.method.declaration.ts\n   ^^^^^^^^^^^\n   source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>  }\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>  test(){\n ^^\n source.ts meta.class.ts meta.method.declaration.ts\n   ^^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    return `/game.php?village=${source}&screen=main&ajaxaction=upgrade_building&type=main&h=${csrf_token}&&client_time=${+new Date}`\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.template.ts punctuation.definition.string.template.begin.ts\n             ^^^^^^^^^^^^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.template.ts\n                               ^^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                 ^^^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.template.ts\n                                                                                             ^^\n                                                                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                                               ^^^^^^^^^^\n                                                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                                                                                         ^\n                                                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                                                          ^^^^^^^^^^^^^^\n                                                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.template.ts\n                                                                                                                        ^^\n                                                                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                                                                          ^\n                                                                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts keyword.operator.arithmetic.ts\n                                                                                                                           ^^^\n                                                                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts new.expr.ts keyword.operator.new.ts\n                                                                                                                              ^\n                                                                                                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts new.expr.ts\n                                                                                                                               ^^^^\n                                                                                                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts new.expr.ts support.class.builtin.ts\n                                                                                                                                   ^\n                                                                                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                                                                                    ^\n                                                                                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.template.ts punctuation.definition.string.template.end.ts\n>  }\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>  noColorSyntax(){\n ^^\n source.ts meta.class.ts meta.method.declaration.ts\n   ^^^^^^^^^^^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    \n ^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>  }\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue382.baseline.txt",
    "content": "original file\n-----------------------------------\n\n   class ConstrainedBasedObjectcolection<T extends Core.Model.DataEntity>\n     {\n          public GetState(): { [index : string]: string } \n          {\n              if (this.ShouldFilter())\n                  return { fpn: this.CurrentFilter().PropertyOfDefinition.DisplayName, fpv: this.CuttrentFilter().FilterValue }\n              return {};\n          }\n\n          public CurrentFilter: knockoutObservable<CollectionFilter<any>> = ko.observable<CollectionFilter<any>>();\n\n     }\n \n\n\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>\n ^\n source.ts\n>   class ConstrainedBasedObjectcolection<T extends Core.Model.DataEntity>\n ^^^\n source.ts\n    ^^^^^\n    source.ts meta.class.ts storage.type.class.ts\n         ^\n         source.ts meta.class.ts\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n          source.ts meta.class.ts entity.name.type.class.ts\n                                         ^\n                                         source.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                          ^\n                                          source.ts meta.class.ts meta.type.parameters.ts entity.name.type.ts\n                                           ^\n                                           source.ts meta.class.ts meta.type.parameters.ts\n                                            ^^^^^^^\n                                            source.ts meta.class.ts meta.type.parameters.ts storage.modifier.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.type.parameters.ts\n                                                    ^^^^\n                                                    source.ts meta.class.ts meta.type.parameters.ts entity.name.type.module.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.type.parameters.ts punctuation.accessor.ts\n                                                         ^^^^^\n                                                         source.ts meta.class.ts meta.type.parameters.ts entity.name.type.module.ts\n                                                              ^\n                                                              source.ts meta.class.ts meta.type.parameters.ts punctuation.accessor.ts\n                                                               ^^^^^^^^^^\n                                                               source.ts meta.class.ts meta.type.parameters.ts entity.name.type.ts\n                                                                         ^\n                                                                         source.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n>     {\n ^^^^^\n source.ts meta.class.ts\n      ^\n      source.ts meta.class.ts punctuation.definition.block.ts\n>          public GetState(): { [index : string]: string } \n ^^^^^^^^^^\n source.ts meta.class.ts\n           ^^^^^^\n           source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts\n                  ^^^^^^^^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts meta.brace.square.ts\n                                 ^^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts variable.parameter.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts\n                                         ^^^^^^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts meta.brace.square.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.type.annotation.ts\n                                                  ^^^^^^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.type.annotation.ts support.type.primitive.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts meta.type.annotation.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                                                          ^\n                                                          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n>          {\n ^^^^^^^^^^\n source.ts meta.class.ts\n           ^\n           source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>              if (this.ShouldFilter())\n ^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.block.ts\n               ^^\n               source.ts meta.class.ts meta.block.ts keyword.control.conditional.ts\n                 ^\n                 source.ts meta.class.ts meta.block.ts\n                  ^\n                  source.ts meta.class.ts meta.block.ts meta.brace.round.ts\n                   ^^^^\n                   source.ts meta.class.ts meta.block.ts meta.function-call.ts variable.language.this.ts\n                       ^\n                       source.ts meta.class.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^^^^^^^\n                        source.ts meta.class.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                    ^\n                                    source.ts meta.class.ts meta.block.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.block.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts meta.block.ts meta.brace.round.ts\n>                  return { fpn: this.CurrentFilter().PropertyOfDefinition.DisplayName, fpv: this.CuttrentFilter().FilterValue }\n ^^^^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.block.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.block.ts keyword.control.flow.ts\n                         ^\n                         source.ts meta.class.ts meta.block.ts\n                          ^\n                          source.ts meta.class.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                           ^\n                           source.ts meta.class.ts meta.block.ts meta.objectliteral.ts\n                            ^^^\n                            source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                               ^\n                               source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                ^\n                                source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                                 ^^^^\n                                 source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts variable.language.this.ts\n                                     ^\n                                     source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts punctuation.accessor.ts\n                                      ^^^^^^^^^^^^^\n                                      source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts entity.name.function.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                                                      ^^^^^^^^^^^^^^^^^^^^\n                                                      source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.property.ts\n                                                                          ^\n                                                                          source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                                                                           ^^^^^^^^^^^\n                                                                           source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.property.ts\n                                                                                      ^\n                                                                                      source.ts meta.class.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                                                                                       ^\n                                                                                       source.ts meta.class.ts meta.block.ts meta.objectliteral.ts\n                                                                                        ^^^\n                                                                                        source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                                                           ^\n                                                                                           source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                                                            ^\n                                                                                            source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                                                                                             ^^^^\n                                                                                             source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts variable.language.this.ts\n                                                                                                 ^\n                                                                                                 source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                  ^^^^^^^^^^^^^^\n                                                                                                  source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                ^\n                                                                                                                source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                                                                                                                 ^\n                                                                                                                 source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                                                                                                                  ^\n                                                                                                                  source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                                                                                                                   ^^^^^^^^^^^\n                                                                                                                   source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.property.ts\n                                                                                                                              ^\n                                                                                                                              source.ts meta.class.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                                                                                                                               ^\n                                                                                                                               source.ts meta.class.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n>              return {};\n ^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.block.ts\n               ^^^^^^\n               source.ts meta.class.ts meta.block.ts keyword.control.flow.ts\n                     ^\n                     source.ts meta.class.ts meta.block.ts\n                      ^\n                      source.ts meta.class.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.class.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.class.ts meta.block.ts punctuation.terminator.statement.ts\n>          }\n ^^^^^^^^^^\n source.ts meta.class.ts meta.block.ts\n           ^\n           source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>          public CurrentFilter: knockoutObservable<CollectionFilter<any>> = ko.observable<CollectionFilter<any>>();\n ^^^^^^^^^^\n source.ts meta.class.ts\n           ^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts\n                  ^^^^^^^^^^^^^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                                 ^^^^^^^^^^^^^^^^^^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                    ^^^^^^^^^^^^^^^^\n                                                    source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts entity.name.type.ts\n                                                                    ^\n                                                                    source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                     ^^^\n                                                                     source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts support.type.primitive.ts\n                                                                        ^\n                                                                        source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                         ^\n                                                                         source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                          ^\n                                                                          source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                                           ^\n                                                                           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                                                            ^\n                                                                            source.ts meta.class.ts meta.field.declaration.ts\n                                                                             ^^\n                                                                             source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                                                                               ^\n                                                                               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                ^^^^^^^^^^\n                                                                                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                                                                          ^\n                                                                                          source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                                           ^^^^^^^^^^^^^^^^\n                                                                                           source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                                                                                                           ^\n                                                                                                           source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                                                            ^^^\n                                                                                                            source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts meta.type.parameters.ts support.type.primitive.ts\n                                                                                                               ^\n                                                                                                               source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                                                                ^\n                                                                                                                source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                                                                 ^\n                                                                                                                 source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                                                                                                  ^\n                                                                                                                  source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                                                                                                   ^\n                                                                                                                   source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>     }\n ^^^^^\n source.ts meta.class.ts\n      ^\n      source.ts meta.class.ts punctuation.definition.block.ts\n> \n ^^\n source.ts\n>\n ^\n source.ts\n>\n ^\n source.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue383.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\n\nconst singleLineArrow = (first: number, second: Set<string>) => (<div></div>);\n\nconst multilineArrow = (first: number,\n\tsecond: number[],\n) => (<div></div>);\n\nconst multilineArrowWithGenericType = (first: number,\n\tsecond: Set<string>,\n) => (<div></div>);\n\nconst followup = (first: number, second: Set<string>) => (<div></div>);\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>\n ^\n source.tsx\n>const singleLineArrow = (first: number, second: Set<string>) => (<div></div>);\n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^^^^^^^^^^^^^^^\n       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx\n                      ^\n                      source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n                       ^\n                       source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n                        ^\n                        source.tsx meta.var.expr.tsx meta.arrow.tsx\n                         ^\n                         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n                          ^^^^^\n                          source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n                               ^\n                               source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n                                ^\n                                source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx\n                                 ^^^^^^\n                                 source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx support.type.primitive.tsx\n                                       ^\n                                       source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx punctuation.separator.parameter.tsx\n                                        ^\n                                        source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx\n                                         ^^^^^^\n                                         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n                                               ^\n                                               source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n                                                ^\n                                                source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx\n                                                 ^^^\n                                                 source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx entity.name.type.tsx\n                                                    ^\n                                                    source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n                                                     ^^^^^^\n                                                     source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx meta.type.parameters.tsx support.type.primitive.tsx\n                                                           ^\n                                                           source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n                                                            ^\n                                                            source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n                                                             ^\n                                                             source.tsx meta.var.expr.tsx meta.arrow.tsx\n                                                              ^^\n                                                              source.tsx meta.var.expr.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n                                                                ^\n                                                                source.tsx meta.var.expr.tsx meta.arrow.tsx\n                                                                 ^\n                                                                 source.tsx meta.var.expr.tsx meta.brace.round.tsx\n                                                                  ^\n                                                                  source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                   ^^^\n                                                                   source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                      ^\n                                                                      source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                                       ^^\n                                                                       source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                         ^^^\n                                                                         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                            ^\n                                                                            source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                                             ^\n                                                                             source.tsx meta.var.expr.tsx meta.brace.round.tsx\n                                                                              ^\n                                                                              source.tsx punctuation.terminator.statement.tsx\n>\n ^\n source.tsx\n>const multilineArrow = (first: number,\n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^^^^^^^^^^^^^^\n       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx\n                     ^\n                     source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n                      ^\n                      source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n                       ^\n                       source.tsx meta.var.expr.tsx meta.arrow.tsx\n                        ^\n                        source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n                         ^^^^^\n                         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n                              ^\n                              source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n                               ^\n                               source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx\n                                ^^^^^^\n                                source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx support.type.primitive.tsx\n                                      ^\n                                      source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx punctuation.separator.parameter.tsx\n>\tsecond: number[],\n ^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx\n  ^^^^^^\n  source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n        ^\n        source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx\n          ^^^^^^\n          source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx support.type.primitive.tsx\n                ^\n                source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx meta.type.tuple.tsx meta.brace.square.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx meta.type.tuple.tsx meta.brace.square.tsx\n                  ^\n                  source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx punctuation.separator.parameter.tsx\n>) => (<div></div>);\n ^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n  ^\n  source.tsx meta.var.expr.tsx meta.arrow.tsx\n   ^^\n   source.tsx meta.var.expr.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n     ^\n     source.tsx meta.var.expr.tsx meta.arrow.tsx\n      ^\n      source.tsx meta.var.expr.tsx meta.brace.round.tsx\n       ^\n       source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n        ^^^\n        source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n           ^\n           source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n            ^^\n            source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n              ^^^\n              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                  ^\n                  source.tsx meta.var.expr.tsx meta.brace.round.tsx\n                   ^\n                   source.tsx punctuation.terminator.statement.tsx\n>\n ^\n source.tsx\n>const multilineArrowWithGenericType = (first: number,\n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx\n                                    ^\n                                    source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n                                     ^\n                                     source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n                                      ^\n                                      source.tsx meta.var.expr.tsx meta.arrow.tsx\n                                       ^\n                                       source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n                                        ^^^^^\n                                        source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n                                             ^\n                                             source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n                                              ^\n                                              source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx\n                                               ^^^^^^\n                                               source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx support.type.primitive.tsx\n                                                     ^\n                                                     source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx punctuation.separator.parameter.tsx\n>\tsecond: Set<string>,\n ^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx\n  ^^^^^^\n  source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n        ^\n        source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx\n          ^^^\n          source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx entity.name.type.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n              ^^^^^^\n              source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx meta.type.parameters.tsx support.type.primitive.tsx\n                    ^\n                    source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n                     ^\n                     source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx punctuation.separator.parameter.tsx\n>) => (<div></div>);\n ^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n  ^\n  source.tsx meta.var.expr.tsx meta.arrow.tsx\n   ^^\n   source.tsx meta.var.expr.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n     ^\n     source.tsx meta.var.expr.tsx meta.arrow.tsx\n      ^\n      source.tsx meta.var.expr.tsx meta.brace.round.tsx\n       ^\n       source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n        ^^^\n        source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n           ^\n           source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n            ^^\n            source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n              ^^^\n              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                  ^\n                  source.tsx meta.var.expr.tsx meta.brace.round.tsx\n                   ^\n                   source.tsx punctuation.terminator.statement.tsx\n>\n ^\n source.tsx\n>const followup = (first: number, second: Set<string>) => (<div></div>);\n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^^^^^^^^\n       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx\n               ^\n               source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n                ^\n                source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx meta.arrow.tsx\n                  ^\n                  source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n                   ^^^^^\n                   source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n                        ^\n                        source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n                         ^\n                         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx\n                          ^^^^^^\n                          source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx support.type.primitive.tsx\n                                ^\n                                source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx punctuation.separator.parameter.tsx\n                                 ^\n                                 source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx\n                                  ^^^^^^\n                                  source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n                                        ^\n                                        source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n                                         ^\n                                         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx\n                                          ^^^\n                                          source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx entity.name.type.tsx\n                                             ^\n                                             source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n                                              ^^^^^^\n                                              source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx meta.type.parameters.tsx support.type.primitive.tsx\n                                                    ^\n                                                    source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n                                                     ^\n                                                     source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n                                                      ^\n                                                      source.tsx meta.var.expr.tsx meta.arrow.tsx\n                                                       ^^\n                                                       source.tsx meta.var.expr.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n                                                         ^\n                                                         source.tsx meta.var.expr.tsx meta.arrow.tsx\n                                                          ^\n                                                          source.tsx meta.var.expr.tsx meta.brace.round.tsx\n                                                           ^\n                                                           source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                            ^^^\n                                                            source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                               ^\n                                                               source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                                ^^\n                                                                source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                  ^^^\n                                                                  source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                     ^\n                                                                     source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                                      ^\n                                                                      source.tsx meta.var.expr.tsx meta.brace.round.tsx\n                                                                       ^\n                                                                       source.tsx punctuation.terminator.statement.tsx"
  },
  {
    "path": "tests/baselines/Issue384.baseline.txt",
    "content": "original file\n-----------------------------------\ndeclare function foo(): any\ndeclare function foo(): any\n\nexport function X(): void\nexport as namespace Y\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>declare function foo(): any\n ^^^^^^^\n source.ts meta.function.ts storage.modifier.ts\n        ^\n        source.ts meta.function.ts\n         ^^^^^^^^\n         source.ts meta.function.ts storage.type.function.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^^^\n                  source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                       ^\n                       source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                        ^\n                        source.ts meta.function.ts meta.return.type.ts\n                         ^^^\n                         source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n>declare function foo(): any\n ^^^^^^^\n source.ts meta.function.ts storage.modifier.ts\n        ^\n        source.ts meta.function.ts\n         ^^^^^^^^\n         source.ts meta.function.ts storage.type.function.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^^^\n                  source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                       ^\n                       source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                        ^\n                        source.ts meta.function.ts meta.return.type.ts\n                         ^^^\n                         source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n>\n ^\n source.ts\n>export function X(): void\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                    ^\n                    source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                     ^\n                     source.ts meta.function.ts meta.return.type.ts\n                      ^^^^\n                      source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n>export as namespace Y\n ^^^^^^\n source.ts keyword.control.export.ts\n       ^\n       source.ts\n        ^^\n        source.ts keyword.control.as.ts\n          ^\n          source.ts\n           ^^^^^^^^^\n           source.ts storage.type.namespace.ts\n                    ^\n                    source.ts\n                     ^\n                     source.ts entity.name.type.module.ts"
  },
  {
    "path": "tests/baselines/Issue387.baseline.txt",
    "content": "original file\n-----------------------------------\n//\n// Copyright 2016 Kary Foundation, Inc.\n//   Author: Pouya Kary <k@karyfoundation.org>\n//\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this\n// file, You can obtain one at http://mozilla.org/MPL/2.0/.\n//\n\n//\n// --- IMPORTS --------------------------------------------------------------------\n//\n\n    import * as readline from 'readline';\n\n//\n// --- READLINE -------------------------------------------------------------------\n//\n\n    /**\n     * Reads a string from the command line\n     * ```\n     * async function main ( ) {\n     *    let name = await kary.terminal.input('Your name: ')\n     *    console.log(`Hello, ${ name }!`)\n     * }\n     * ```\n     */\n    export async function input ( message = '' ) {\n        const readlineInterface = readline.createInterface({\n            input: process.stdin,\n            output: process.stdout,\n        })\n        return new Promise<string> ( resolve => {\n            readlineInterface.question ( message , answer => {\n                readlineInterface.close( );\n                resolve( answer );\n            });\n        });\n    }\n\n// --------------------------------------------------------------------------------\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>//\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n>// Copyright 2016 Kary Foundation, Inc.\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>//   Author: Pouya Kary <k@karyfoundation.org>\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>//\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n>// This Source Code Form is subject to the terms of the Mozilla Public\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>// License, v. 2.0. If a copy of the MPL was not distributed with this\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>// file, You can obtain one at http://mozilla.org/MPL/2.0/.\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>//\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n>\n ^\n source.ts\n>//\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n>// --- IMPORTS --------------------------------------------------------------------\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>//\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n>\n ^\n source.ts\n>    import * as readline from 'readline';\n ^^^^\n source.ts\n     ^^^^^^\n     source.ts meta.import.ts keyword.control.import.ts\n           ^\n           source.ts meta.import.ts\n            ^\n            source.ts meta.import.ts constant.language.import-export-all.ts\n             ^\n             source.ts meta.import.ts\n              ^^\n              source.ts meta.import.ts keyword.control.as.ts\n                ^\n                source.ts meta.import.ts\n                 ^^^^^^^^\n                 source.ts meta.import.ts variable.other.readwrite.alias.ts\n                         ^\n                         source.ts meta.import.ts\n                          ^^^^\n                          source.ts meta.import.ts keyword.control.from.ts\n                              ^\n                              source.ts meta.import.ts\n                               ^\n                               source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                ^^^^^^^^\n                                source.ts meta.import.ts string.quoted.single.ts\n                                        ^\n                                        source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                         ^\n                                         source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>//\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n>// --- READLINE -------------------------------------------------------------------\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>//\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n>\n ^\n source.ts\n>    /**\n ^^^^\n source.ts\n     ^^^\n     source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>     * Reads a string from the command line\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.documentation.ts\n>     * ```\n ^^^^^^^^^^^\n source.ts comment.block.documentation.ts\n>     * async function main ( ) {\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.documentation.ts\n>     *    let name = await kary.terminal.input('Your name: ')\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.documentation.ts\n>     *    console.log(`Hello, ${ name }!`)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.documentation.ts\n>     * }\n ^^^^^^^^^\n source.ts comment.block.documentation.ts\n>     * ```\n ^^^^^^^^^^^\n source.ts comment.block.documentation.ts\n>     */\n ^^^^^\n source.ts comment.block.documentation.ts\n      ^^\n      source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>    export async function input ( message = '' ) {\n ^^^^\n source.ts\n     ^^^^^^\n     source.ts meta.function.ts keyword.control.export.ts\n           ^\n           source.ts meta.function.ts\n            ^^^^^\n            source.ts meta.function.ts storage.modifier.async.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^^^^^^^^\n                  source.ts meta.function.ts storage.type.function.ts\n                          ^\n                          source.ts meta.function.ts\n                           ^^^^^\n                           source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                ^\n                                source.ts meta.function.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                  ^\n                                  source.ts meta.function.ts meta.parameters.ts\n                                   ^^^^^^^\n                                   source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                          ^\n                                          source.ts meta.function.ts meta.parameters.ts\n                                           ^\n                                           source.ts meta.function.ts meta.parameters.ts keyword.operator.assignment.ts\n                                            ^\n                                            source.ts meta.function.ts meta.parameters.ts\n                                             ^\n                                             source.ts meta.function.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                              ^\n                                              source.ts meta.function.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                               ^\n                                               source.ts meta.function.ts meta.parameters.ts\n                                                ^\n                                                source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                 ^\n                                                 source.ts meta.function.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>        const readlineInterface = readline.createInterface({\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts\n         ^^^^^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n               ^^^^^^^^^^^^^^^^^\n               source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                                   ^^^^^^^^\n                                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                                           ^\n                                           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                            ^^^^^^^^^^^^^^^\n                                            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>            input: process.stdin,\n ^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts\n             ^^^^^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                    ^^^^^^^\n                    source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts support.variable.object.process.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                            ^^^^^\n                            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts support.variable.property.process.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>            output: process.stdout,\n ^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts\n             ^^^^^^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                     ^^^^^^^\n                     source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts support.variable.object.process.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                             ^^^^^^\n                             source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts support.variable.property.process.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        })\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n>        return new Promise<string> ( resolve => {\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.function.ts meta.block.ts\n                ^^^\n                source.ts meta.function.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts new.expr.ts\n                    ^^^^^^^\n                    source.ts meta.function.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.promise.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts new.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                            ^^^^^^\n                            source.ts meta.function.ts meta.block.ts new.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts new.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts new.expr.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts new.expr.ts\n                                      ^^^^^^^\n                                      source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts variable.parameter.ts\n                                             ^\n                                             source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts\n                                              ^^\n                                              source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                ^\n                                                source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>            readlineInterface.question ( message , answer => {\n ^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts\n             ^^^^^^^^^^^^^^^^^\n             source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                               ^^^^^^^^\n                               source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts\n                                          ^^^^^^^\n                                          source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.separator.comma.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts\n                                                    ^^^^^^\n                                                    source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts variable.parameter.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts\n                                                           ^^\n                                                           source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>                readlineInterface.close( );\n ^^^^^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts\n                 ^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                   ^^^^^\n                                   source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.function.dom.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                          ^\n                                          source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>                resolve( answer );\n ^^^^^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts\n                 ^^^^^^^\n                 source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts\n                          ^^^^^^\n                          source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>            });\n ^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts\n             ^\n             source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n               ^\n               source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>        });\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts\n         ^\n         source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts\n           ^\n           source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^\n     source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>// --------------------------------------------------------------------------------\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts"
  },
  {
    "path": "tests/baselines/Issue388.baseline.txt",
    "content": "original file\n-----------------------------------\nexport const fun = (param: ParamType): FunResult => { }\n\nexport const fun = \n  (param: ParamType): \n    FunResult => {\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export const fun = (param: ParamType): FunResult => { }\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^^^\n        source.ts meta.var.expr.ts storage.type.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                     ^^^^^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                            ^^^^^^^^^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n                                        ^^^^^^^^^\n                                        source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts entity.name.type.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n                                                  ^^\n                                                  source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts meta.arrow.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                                                      ^\n                                                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                                                       ^\n                                                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>export const fun = \n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^^^\n        source.ts meta.var.expr.ts storage.type.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                   ^^\n                   source.ts meta.var.expr.ts\n>  (param: ParamType): \n ^^\n source.ts meta.var.expr.ts meta.arrow.ts\n   ^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n    ^^^^^\n    source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n           ^^^^^^^^^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n                      ^^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n>    FunResult => {\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n     ^^^^^^^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts entity.name.type.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n               ^^\n               source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue389.baseline.txt",
    "content": "original file\n-----------------------------------\n[function ()\n{\n    let foo;\n}];\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>[function ()\n ^\n source.ts meta.array.literal.ts meta.brace.square.ts\n  ^^^^^^^^\n  source.ts meta.array.literal.ts meta.function.expression.ts storage.type.function.ts\n          ^\n          source.ts meta.array.literal.ts meta.function.expression.ts\n           ^\n           source.ts meta.array.literal.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.array.literal.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>{\n ^\n source.ts meta.array.literal.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>    let foo;\n ^^^^\n source.ts meta.array.literal.ts meta.function.expression.ts meta.block.ts\n     ^^^\n     source.ts meta.array.literal.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.array.literal.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n         ^^^\n         source.ts meta.array.literal.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.array.literal.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>}];\n ^\n source.ts meta.array.literal.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.array.literal.ts meta.brace.square.ts\n   ^\n   source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue391.baseline.txt",
    "content": "original file\n-----------------------------------\nvar interface = require('./../interface');\nvar ctrl = require('./controllers');\nvar utils = require('./../utils');\nvar Promise = require('bluebird');\nvar deligate = require('./core');\nvar log = require('./../log');\n\nvar constructor = deligate.then(function(bot)\n{\n    bot.sendMessage(110224344, 'here is the index');\n    bot.on('message', function(message)\n    {\n        if(utils.telegram.is_command(message.text))\n        {\n            ctrl.commands(message).catch(function(error_log)\n            {\n                bot.sendMessage(message.chat.id, interface.text.errors.redirect);\n                log.uncaughtException(error_log);\n            });\n        }\n    });\n\n    return '  ? Telegram WebHook Set: Successfull!';\n});\n\nmodule.exports = constructor;\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var interface = require('./../interface');\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^^^^^^^\n                 source.ts meta.var.expr.ts meta.function-call.ts support.function.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                          ^^^^^^^^^^^^^^\n                          source.ts meta.var.expr.ts string.quoted.single.ts\n                                        ^\n                                        source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts punctuation.terminator.statement.ts\n>var ctrl = require('./controllers');\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^^^^^^^\n            source.ts meta.var.expr.ts meta.function-call.ts support.function.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.brace.round.ts\n                    ^\n                    source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                     ^^^^^^^^^^^^^\n                     source.ts meta.var.expr.ts string.quoted.single.ts\n                                  ^\n                                  source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts punctuation.terminator.statement.ts\n>var utils = require('./../utils');\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.var.expr.ts meta.function-call.ts support.function.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.brace.round.ts\n                     ^\n                     source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                      ^^^^^^^^^^\n                      source.ts meta.var.expr.ts string.quoted.single.ts\n                                ^\n                                source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts punctuation.terminator.statement.ts\n>var Promise = require('bluebird');\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^^^^^^\n               source.ts meta.var.expr.ts meta.function-call.ts support.function.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                        ^^^^^^^^\n                        source.ts meta.var.expr.ts string.quoted.single.ts\n                                ^\n                                source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts punctuation.terminator.statement.ts\n>var deligate = require('./core');\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^^^^^^^\n                source.ts meta.var.expr.ts meta.function-call.ts support.function.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                         ^^^^^^\n                         source.ts meta.var.expr.ts string.quoted.single.ts\n                               ^\n                               source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.brace.round.ts\n                                 ^\n                                 source.ts punctuation.terminator.statement.ts\n>var log = require('./../log');\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^^^^^^^\n           source.ts meta.var.expr.ts meta.function-call.ts support.function.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                    ^^^^^^^^\n                    source.ts meta.var.expr.ts string.quoted.single.ts\n                            ^\n                            source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.brace.round.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>var constructor = deligate.then(function(bot)\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^^^^^^^^\n                   source.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^\n                            source.ts meta.var.expr.ts meta.function-call.ts support.function.promise.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.brace.round.ts\n                                 ^^^^^^^^\n                                 source.ts meta.var.expr.ts meta.function.expression.ts storage.type.function.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                          ^^^\n                                          source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>{\n ^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>    bot.sendMessage(110224344, 'here is the index');\n ^^^^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n        ^\n        source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^^^^^^^^^\n         source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                     ^^^^^^^^^\n                     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts constant.numeric.decimal.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                 ^^^^^^^^^^^^^^^^^\n                                 source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts string.quoted.single.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>    bot.on('message', function(message)\n ^^^^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n        ^\n        source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n         ^^\n         source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n           ^\n           source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n            ^\n            source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n             ^^^^^^^\n             source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts string.quoted.single.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n                       ^^^^^^^^\n                       source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts storage.type.function.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                ^^^^^^^\n                                source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>    {\n ^^^^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts\n     ^\n     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>        if(utils.telegram.is_command(message.text))\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts\n         ^^\n         source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts keyword.control.conditional.ts\n           ^\n           source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n            ^^^^^\n            source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                  ^^^^^^^^\n                  source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.function-call.ts variable.other.object.property.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^^^^^\n                           source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                      ^^^^^^^\n                                      source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                              ^^^^\n                                              source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n>        {\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts\n         ^\n         source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>            ctrl.commands(message).catch(function(error_log)\n ^^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts\n             ^^^^\n             source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                  ^^^^^^^^\n                  source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                           ^^^^^^^\n                           source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                    ^^^^^\n                                    source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.promise.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                          ^^^^^^^^\n                                          source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts storage.type.function.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                   ^^^^^^^^^\n                                                   source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                                            ^\n                                                            source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>            {\n ^^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts\n             ^\n             source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>                bot.sendMessage(message.chat.id, interface.text.errors.redirect);\n ^^^^^^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                 ^^^\n                 source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                     ^^^^^^^^^^^\n                     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                 ^^^^^^^\n                                 source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                         ^^^^\n                                         source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.object.property.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                              ^^\n                                              source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                                  ^^^^^^^^^\n                                                  source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                           ^\n                                                           source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                            ^^^^\n                                                            source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                ^\n                                                                source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                 ^^^^^^\n                                                                 source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.object.property.ts\n                                                                       ^\n                                                                       source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                        ^^^^^^^^\n                                                                        source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.property.ts\n                                                                                ^\n                                                                                source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                 ^\n                                                                                 source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>                log.uncaughtException(error_log);\n ^^^^^^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                 ^^^\n                 source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                     ^^^^^^^^^^^^^^^^^\n                     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                       ^^^^^^^^^\n                                       source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>            });\n ^^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts\n             ^\n             source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n               ^\n               source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>        }\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    });\n ^^^^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts\n     ^\n     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n       ^\n       source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n>    return '  ? Telegram WebHook Set: Successfull!';\n ^^^^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n            ^\n            source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n             source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts string.quoted.single.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>});\n ^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.var.expr.ts meta.brace.round.ts\n   ^\n   source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>module.exports = constructor;\n ^^^^^^\n source.ts support.type.object.module.ts\n       ^\n       source.ts punctuation.accessor.ts\n        ^^^^^^^\n        source.ts support.type.object.module.ts\n               ^\n               source.ts\n                ^\n                source.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts\n                  ^^^^^^^^^^^\n                  source.ts variable.other.readwrite.ts\n                             ^\n                             source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue393.baseline.txt",
    "content": "original file\n-----------------------------------\nclass ColorsBars extends React.Component {\n\tconstructor(...args) {\n\t\tsuper(...args)\n\t\tthis.toggleEdit = this.toggleEdit.bind(this)\n\t}\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class ColorsBars extends React.Component {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n                 ^\n                 source.ts meta.class.ts\n                  ^^^^^^^\n                  source.ts meta.class.ts storage.modifier.ts\n                         ^\n                         source.ts meta.class.ts\n                          ^^^^^\n                          source.ts meta.class.ts entity.name.type.module.ts\n                               ^\n                               source.ts meta.class.ts punctuation.accessor.ts\n                                ^^^^^^^^^\n                                source.ts meta.class.ts entity.other.inherited-class.ts\n                                         ^\n                                         source.ts meta.class.ts\n                                          ^\n                                          source.ts meta.class.ts punctuation.definition.block.ts\n>\tconstructor(...args) {\n ^\n source.ts meta.class.ts meta.method.declaration.ts\n  ^^^^^^^^^^^\n  source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts keyword.operator.rest.ts\n                 ^^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\t\tsuper(...args)\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^^^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.language.super.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n         ^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.spread.ts\n            ^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n>\t\tthis.toggleEdit = this.toggleEdit.bind(this)\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n        ^^^^^^^^^^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                     ^^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.language.this.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                          ^^^^^^^^^^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.other.object.property.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                     ^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                          ^^^^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n>\t}\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue394.baseline.txt",
    "content": "original file\n-----------------------------------\n gulp.add('watch-' + (asset.name || asset.route), function ()\n        {\n            gulp.watch('./modules/*' + asset.moduleRelativePath, ['build-' + (asset.name || asset.route)]);\n        });\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n> gulp.add('watch-' + (asset.name || asset.route), function ()\n ^\n source.ts\n  ^^^^\n  source.ts meta.function-call.ts variable.other.object.ts\n      ^\n      source.ts meta.function-call.ts punctuation.accessor.ts\n       ^^^\n       source.ts meta.function-call.ts support.function.dom.ts\n          ^\n          source.ts meta.brace.round.ts\n           ^\n           source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n            ^^^^^^\n            source.ts string.quoted.single.ts\n                  ^\n                  source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                   ^\n                   source.ts\n                    ^\n                    source.ts keyword.operator.arithmetic.ts\n                     ^\n                     source.ts\n                      ^\n                      source.ts meta.brace.round.ts\n                       ^^^^^\n                       source.ts variable.other.object.ts\n                            ^\n                            source.ts punctuation.accessor.ts\n                             ^^^^\n                             source.ts support.variable.property.dom.ts\n                                 ^\n                                 source.ts\n                                  ^^\n                                  source.ts keyword.operator.logical.ts\n                                    ^\n                                    source.ts\n                                     ^^^^^\n                                     source.ts variable.other.object.ts\n                                          ^\n                                          source.ts punctuation.accessor.ts\n                                           ^^^^^\n                                           source.ts variable.other.property.ts\n                                                ^\n                                                source.ts meta.brace.round.ts\n                                                 ^\n                                                 source.ts punctuation.separator.comma.ts\n                                                  ^\n                                                  source.ts\n                                                   ^^^^^^^^\n                                                   source.ts meta.function.expression.ts storage.type.function.ts\n                                                           ^\n                                                           source.ts meta.function.expression.ts\n                                                            ^\n                                                            source.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                             ^\n                                                             source.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>        {\n ^^^^^^^^\n source.ts meta.function.expression.ts\n         ^\n         source.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>            gulp.watch('./modules/*' + asset.moduleRelativePath, ['build-' + (asset.name || asset.route)]);\n ^^^^^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts\n             ^^^^\n             source.ts meta.function.expression.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                 ^\n                 source.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                  ^^^^^\n                  source.ts meta.function.expression.ts meta.block.ts meta.function-call.ts support.function.ts\n                       ^\n                       source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.function.expression.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                         ^^^^^^^^^^^\n                         source.ts meta.function.expression.ts meta.block.ts string.quoted.single.ts\n                                    ^\n                                    source.ts meta.function.expression.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                     ^\n                                     source.ts meta.function.expression.ts meta.block.ts\n                                      ^\n                                      source.ts meta.function.expression.ts meta.block.ts keyword.operator.arithmetic.ts\n                                       ^\n                                       source.ts meta.function.expression.ts meta.block.ts\n                                        ^^^^^\n                                        source.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                             ^\n                                             source.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                              ^^^^^^^^^^^^^^^^^^\n                                              source.ts meta.function.expression.ts meta.block.ts variable.other.property.ts\n                                                                ^\n                                                                source.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                                                 ^\n                                                                 source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts\n                                                                  ^\n                                                                  source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                   ^\n                                                                   source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                                    ^^^^^^\n                                                                    source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts string.quoted.single.ts\n                                                                          ^\n                                                                          source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                           ^\n                                                                           source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts\n                                                                            ^\n                                                                            source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts keyword.operator.arithmetic.ts\n                                                                             ^\n                                                                             source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts\n                                                                              ^\n                                                                              source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                               ^^^^^\n                                                                               source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts variable.other.object.ts\n                                                                                    ^\n                                                                                    source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts punctuation.accessor.ts\n                                                                                     ^^^^\n                                                                                     source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts support.variable.property.dom.ts\n                                                                                         ^\n                                                                                         source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts\n                                                                                          ^^\n                                                                                          source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts keyword.operator.logical.ts\n                                                                                            ^\n                                                                                            source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts\n                                                                                             ^^^^^\n                                                                                             source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts variable.other.object.ts\n                                                                                                  ^\n                                                                                                  source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts punctuation.accessor.ts\n                                                                                                   ^^^^^\n                                                                                                   source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts variable.other.property.ts\n                                                                                                        ^\n                                                                                                        source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                         ^\n                                                                                                         source.ts meta.function.expression.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                                                          ^\n                                                                                                          source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                           ^\n                                                                                                           source.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>        });\n ^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts\n         ^\n         source.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.brace.round.ts\n           ^\n           source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue396.baseline.txt",
    "content": "original file\n-----------------------------------\n/* jshint esnext:true */\nlet it = require('./it');\nit.execute(function* builder(options) {\n   let metaData = yield it.read(option.metaFile);\n   it.meta = yield it.parse(metaData, {\n      ICON: yield it.read(options.icon),\n      ICON64: (yield it.read(options.icon64)).base64()\n   });\n});\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/* jshint esnext:true */\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.block.ts\n                       ^^\n                       source.ts comment.block.ts punctuation.definition.comment.ts\n>let it = require('./it');\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n        ^\n        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^^^^^^^\n          source.ts meta.var.expr.ts meta.function-call.ts support.function.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.brace.round.ts\n                  ^\n                  source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                   ^^^^\n                   source.ts meta.var.expr.ts string.quoted.single.ts\n                       ^\n                       source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.brace.round.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n>it.execute(function* builder(options) {\n ^^\n source.ts meta.function-call.ts variable.other.object.ts\n   ^\n   source.ts meta.function-call.ts punctuation.accessor.ts\n    ^^^^^^^\n    source.ts meta.function-call.ts entity.name.function.ts\n           ^\n           source.ts meta.brace.round.ts\n            ^^^^^^^^\n            source.ts meta.function.expression.ts storage.type.function.ts\n                    ^\n                    source.ts meta.function.expression.ts keyword.generator.asterisk.ts\n                     ^\n                     source.ts meta.function.expression.ts\n                      ^^^^^^^\n                      source.ts meta.function.expression.ts meta.definition.function.ts entity.name.function.ts\n                             ^\n                             source.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                              ^^^^^^^\n                              source.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                     ^\n                                     source.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                      ^\n                                      source.ts meta.function.expression.ts\n                                       ^\n                                       source.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>   let metaData = yield it.read(option.metaFile);\n ^^^\n source.ts meta.function.expression.ts meta.block.ts\n    ^^^\n    source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts storage.type.ts\n       ^\n       source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n        ^^^^^^^^\n        source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                   ^^^^^\n                   source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.control.flow.ts\n                        ^\n                        source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^^\n                         source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                           ^\n                           source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^\n                            source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                 ^^^^^^\n                                 source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                                       ^\n                                       source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                        ^^^^^^^^\n                                        source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                                ^\n                                                source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                 ^\n                                                 source.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>   it.meta = yield it.parse(metaData, {\n ^^^\n source.ts meta.function.expression.ts meta.block.ts\n    ^^\n    source.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n      ^\n      source.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n       ^^^^\n       source.ts meta.function.expression.ts meta.block.ts variable.other.property.ts\n           ^\n           source.ts meta.function.expression.ts meta.block.ts\n            ^\n            source.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.function.expression.ts meta.block.ts\n              ^^^^^\n              source.ts meta.function.expression.ts meta.block.ts keyword.control.flow.ts\n                   ^\n                   source.ts meta.function.expression.ts meta.block.ts\n                    ^^\n                    source.ts meta.function.expression.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                      ^\n                      source.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                       ^^^^^\n                       source.ts meta.function.expression.ts meta.block.ts meta.function-call.ts support.function.ts\n                            ^\n                            source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                             ^^^^^^^^\n                             source.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                     ^\n                                     source.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                      ^\n                                      source.ts meta.function.expression.ts meta.block.ts\n                                       ^\n                                       source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n>      ICON: yield it.read(options.icon),\n ^^^^^^\n source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts\n       ^^^^\n       source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n           ^\n           source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n            ^\n            source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n             ^^^^^\n             source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts keyword.control.flow.ts\n                  ^\n                  source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                   ^^\n                   source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts variable.other.object.ts\n                     ^\n                     source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts punctuation.accessor.ts\n                      ^^^^\n                      source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts entity.name.function.ts\n                          ^\n                          source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                           ^^^^^^^\n                           source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.ts\n                                  ^\n                                  source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                                   ^^^^\n                                   source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.property.ts\n                                       ^\n                                       source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                                        ^\n                                        source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>      ICON64: (yield it.read(options.icon64)).base64()\n ^^^^^^\n source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts\n       ^^^^^^\n       source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n             ^\n             source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n              ^\n              source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n               ^\n               source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                ^^^^^\n                source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts keyword.control.flow.ts\n                     ^\n                     source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                      ^^\n                      source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^\n                         source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts entity.name.function.ts\n                             ^\n                             source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                              ^^^^^^^\n                              source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.ts\n                                     ^\n                                     source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                                      ^^^^^^\n                                      source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.property.ts\n                                            ^\n                                            source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                                              ^\n                                              source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts punctuation.accessor.ts\n                                               ^^^^^^\n                                               source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts entity.name.function.ts\n                                                     ^\n                                                     source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                                                      ^\n                                                      source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n>   });\n ^^^\n source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n    ^\n    source.ts meta.function.expression.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n     ^\n     source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n      ^\n      source.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>});\n ^\n source.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.brace.round.ts\n   ^\n   source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue397.baseline.txt",
    "content": "original file\n-----------------------------------\nconst a = Math.max(...x);\nconst b = 2;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const a = Math.max(...x);\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^^^^\n           source.ts meta.var.expr.ts meta.function-call.ts support.constant.math.ts\n               ^\n               source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                ^^^\n                source.ts meta.var.expr.ts meta.function-call.ts support.function.math.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.brace.round.ts\n                    ^^^\n                    source.ts meta.var.expr.ts keyword.operator.spread.ts\n                       ^\n                       source.ts meta.var.expr.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.brace.round.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n>const b = 2;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts constant.numeric.decimal.ts\n            ^\n            source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue398.baseline.txt",
    "content": "original file\n-----------------------------------\nlet x: Array<{ name: string, fn(): any, field: string }>\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let x: Array<{ name: string, fn(): any, field: string }>\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts punctuation.definition.block.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts\n                ^^^^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                      ^^^^^^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts punctuation.separator.comma.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.method.declaration.ts\n                              ^^\n                              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts\n                                    ^^^\n                                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts punctuation.separator.comma.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts\n                                         ^^^^^\n                                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                               ^\n                                               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                ^^^^^^\n                                                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                                      ^\n                                                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                       ^\n                                                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts punctuation.definition.block.ts\n                                                        ^\n                                                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts"
  },
  {
    "path": "tests/baselines/Issue402.baseline.txt",
    "content": "original file\n-----------------------------------\nipcMain.on('ELECTRON_GUEST_WINDOW_MANAGER_WEB_CONTENTS_METHOD', function (event, guestId, method, ...args) {\n  const guestContents = webContents.fromId(guestId)\n  if (guestContents == null) return\n\n  if (canAccessWindow(event.sender, guestContents)) {\n    guestContents[method](...args)\n  } else {\n    console.error(`Blocked ${event.sender.getURL()} from calling ${method} on its opener.`)\n  }\n})\n\nipcMain.on('ELECTRON_GUEST_WINDOW_MANAGER_WEB_CONTENTS_METHOD_SYNC', function (event, guestId, method, ...args) {\n  const guestContents = webContents.fromId(guestId)\n  if (guestContents == null) {\n    event.returnValue = null\n    return\n  }\n\n  if (canAccessWindow(event.sender, guestContents)) {\n    event.returnValue = guestContents[method](...args)\n  } else {\n    console.error(`Blocked ${event.sender.getURL()} from calling ${method} on its opener.`)\n    event.returnValue = null\n  }\n})\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>ipcMain.on('ELECTRON_GUEST_WINDOW_MANAGER_WEB_CONTENTS_METHOD', function (event, guestId, method, ...args) {\n ^^^^^^^\n source.ts meta.function-call.ts variable.other.object.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^\n         source.ts meta.function-call.ts entity.name.function.ts\n           ^\n           source.ts meta.brace.round.ts\n            ^\n            source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n             source.ts string.quoted.single.ts\n                                                              ^\n                                                              source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                               ^\n                                                               source.ts punctuation.separator.comma.ts\n                                                                ^\n                                                                source.ts\n                                                                 ^^^^^^^^\n                                                                 source.ts meta.function.expression.ts storage.type.function.ts\n                                                                         ^\n                                                                         source.ts meta.function.expression.ts\n                                                                          ^\n                                                                          source.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                                           ^^^^^\n                                                                           source.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                                                                ^\n                                                                                source.ts meta.function.expression.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                                 ^\n                                                                                 source.ts meta.function.expression.ts meta.parameters.ts\n                                                                                  ^^^^^^^\n                                                                                  source.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                                                                         ^\n                                                                                         source.ts meta.function.expression.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                                          ^\n                                                                                          source.ts meta.function.expression.ts meta.parameters.ts\n                                                                                           ^^^^^^\n                                                                                           source.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                                                                                 ^\n                                                                                                 source.ts meta.function.expression.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                                                  ^\n                                                                                                  source.ts meta.function.expression.ts meta.parameters.ts\n                                                                                                   ^^^\n                                                                                                   source.ts meta.function.expression.ts meta.parameters.ts keyword.operator.rest.ts\n                                                                                                      ^^^^\n                                                                                                      source.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                                                                                          ^\n                                                                                                          source.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                                                           ^\n                                                                                                           source.ts meta.function.expression.ts\n                                                                                                            ^\n                                                                                                            source.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>  const guestContents = webContents.fromId(guestId)\n ^^\n source.ts meta.function.expression.ts meta.block.ts\n   ^^^^^\n   source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n         ^^^^^^^^^^^^^\n         source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                      ^\n                      source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^^^^^^^^^^^\n                         source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                                    ^\n                                    source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                     ^^^^^^\n                                     source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                           ^\n                                           source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                            ^^^^^^^\n                                            source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                   ^\n                                                   source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n>  if (guestContents == null) return\n ^^\n source.ts meta.function.expression.ts meta.block.ts\n   ^^\n   source.ts meta.function.expression.ts meta.block.ts keyword.control.conditional.ts\n     ^\n     source.ts meta.function.expression.ts meta.block.ts\n      ^\n      source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n       ^^^^^^^^^^^^^\n       source.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.function.expression.ts meta.block.ts\n                     ^^\n                     source.ts meta.function.expression.ts meta.block.ts keyword.operator.comparison.ts\n                       ^\n                       source.ts meta.function.expression.ts meta.block.ts\n                        ^^^^\n                        source.ts meta.function.expression.ts meta.block.ts constant.language.null.ts\n                            ^\n                            source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.function.expression.ts meta.block.ts\n                              ^^^^^^\n                              source.ts meta.function.expression.ts meta.block.ts keyword.control.flow.ts\n>\n ^\n source.ts meta.function.expression.ts meta.block.ts\n>  if (canAccessWindow(event.sender, guestContents)) {\n ^^\n source.ts meta.function.expression.ts meta.block.ts\n   ^^\n   source.ts meta.function.expression.ts meta.block.ts keyword.control.conditional.ts\n     ^\n     source.ts meta.function.expression.ts meta.block.ts\n      ^\n      source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n       ^^^^^^^^^^^^^^^\n       source.ts meta.function.expression.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                      ^\n                      source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                       ^^^^^\n                       source.ts meta.function.expression.ts meta.block.ts support.variable.dom.ts\n                            ^\n                            source.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                             ^^^^^^\n                             source.ts meta.function.expression.ts meta.block.ts variable.other.property.ts\n                                   ^\n                                   source.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                    ^\n                                    source.ts meta.function.expression.ts meta.block.ts\n                                     ^^^^^^^^^^^^^\n                                     source.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                  ^\n                                                  source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                   ^\n                                                   source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                    ^\n                                                    source.ts meta.function.expression.ts meta.block.ts\n                                                     ^\n                                                     source.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    guestContents[method](...args)\n ^^^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n     ^^^^^^^^^^^^^\n     source.ts meta.function.expression.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                   ^^^^^^\n                   source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n                         ^\n                         source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                          ^\n                          source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                           ^^^\n                           source.ts meta.function.expression.ts meta.block.ts meta.block.ts keyword.operator.spread.ts\n                              ^^^^\n                              source.ts meta.function.expression.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n>  } else {\n ^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n   ^\n   source.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n    ^\n    source.ts meta.function.expression.ts meta.block.ts\n     ^^^^\n     source.ts meta.function.expression.ts meta.block.ts keyword.control.conditional.ts\n         ^\n         source.ts meta.function.expression.ts meta.block.ts\n          ^\n          source.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    console.error(`Blocked ${event.sender.getURL()} from calling ${method} on its opener.`)\n ^^^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n     ^^^^^^^\n     source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts support.class.console.ts\n            ^\n            source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n             ^^^^^\n             source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                  ^\n                  source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts punctuation.definition.string.template.begin.ts\n                    ^^^^^^^^\n                    source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts\n                            ^^\n                            source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                              ^^^^^\n                              source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.function-call.ts support.variable.dom.ts\n                                   ^\n                                   source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.function-call.ts punctuation.accessor.ts\n                                    ^^^^^^\n                                    source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.function-call.ts variable.other.object.property.ts\n                                          ^\n                                          source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.function-call.ts punctuation.accessor.ts\n                                           ^^^^^^\n                                           source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.function-call.ts entity.name.function.ts\n                                                 ^\n                                                 source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.brace.round.ts\n                                                  ^\n                                                  source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.brace.round.ts\n                                                   ^\n                                                   source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                    ^^^^^^^^^^^^^^\n                                                    source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts\n                                                                  ^^\n                                                                  source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                    ^^^^^^\n                                                                    source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                                                          ^\n                                                                          source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                           ^^^^^^^^^^^^^^^\n                                                                           source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts\n                                                                                          ^\n                                                                                          source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                                                           ^\n                                                                                           source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n>  }\n ^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n   ^\n   source.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>})\n ^\n source.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.brace.round.ts\n>\n ^\n source.ts\n>ipcMain.on('ELECTRON_GUEST_WINDOW_MANAGER_WEB_CONTENTS_METHOD_SYNC', function (event, guestId, method, ...args) {\n ^^^^^^^\n source.ts meta.function-call.ts variable.other.object.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^\n         source.ts meta.function-call.ts entity.name.function.ts\n           ^\n           source.ts meta.brace.round.ts\n            ^\n            source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n             source.ts string.quoted.single.ts\n                                                                   ^\n                                                                   source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                    ^\n                                                                    source.ts punctuation.separator.comma.ts\n                                                                     ^\n                                                                     source.ts\n                                                                      ^^^^^^^^\n                                                                      source.ts meta.function.expression.ts storage.type.function.ts\n                                                                              ^\n                                                                              source.ts meta.function.expression.ts\n                                                                               ^\n                                                                               source.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                                                ^^^^^\n                                                                                source.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                                                                     ^\n                                                                                     source.ts meta.function.expression.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                                      ^\n                                                                                      source.ts meta.function.expression.ts meta.parameters.ts\n                                                                                       ^^^^^^^\n                                                                                       source.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                                                                              ^\n                                                                                              source.ts meta.function.expression.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                                               ^\n                                                                                               source.ts meta.function.expression.ts meta.parameters.ts\n                                                                                                ^^^^^^\n                                                                                                source.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                                                                                      ^\n                                                                                                      source.ts meta.function.expression.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                                                       ^\n                                                                                                       source.ts meta.function.expression.ts meta.parameters.ts\n                                                                                                        ^^^\n                                                                                                        source.ts meta.function.expression.ts meta.parameters.ts keyword.operator.rest.ts\n                                                                                                           ^^^^\n                                                                                                           source.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                                                                                               ^\n                                                                                                               source.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                                                                ^\n                                                                                                                source.ts meta.function.expression.ts\n                                                                                                                 ^\n                                                                                                                 source.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>  const guestContents = webContents.fromId(guestId)\n ^^\n source.ts meta.function.expression.ts meta.block.ts\n   ^^^^^\n   source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n         ^^^^^^^^^^^^^\n         source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                      ^\n                      source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^^^^^^^^^^^\n                         source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                                    ^\n                                    source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                     ^^^^^^\n                                     source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                           ^\n                                           source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                            ^^^^^^^\n                                            source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                   ^\n                                                   source.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n>  if (guestContents == null) {\n ^^\n source.ts meta.function.expression.ts meta.block.ts\n   ^^\n   source.ts meta.function.expression.ts meta.block.ts keyword.control.conditional.ts\n     ^\n     source.ts meta.function.expression.ts meta.block.ts\n      ^\n      source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n       ^^^^^^^^^^^^^\n       source.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.function.expression.ts meta.block.ts\n                     ^^\n                     source.ts meta.function.expression.ts meta.block.ts keyword.operator.comparison.ts\n                       ^\n                       source.ts meta.function.expression.ts meta.block.ts\n                        ^^^^\n                        source.ts meta.function.expression.ts meta.block.ts constant.language.null.ts\n                            ^\n                            source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.function.expression.ts meta.block.ts\n                              ^\n                              source.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    event.returnValue = null\n ^^^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n     ^^^^^\n     source.ts meta.function.expression.ts meta.block.ts meta.block.ts support.variable.dom.ts\n          ^\n          source.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.accessor.ts\n           ^^^^^^^^^^^\n           source.ts meta.function.expression.ts meta.block.ts meta.block.ts variable.other.property.ts\n                      ^\n                      source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n                       ^\n                       source.ts meta.function.expression.ts meta.block.ts meta.block.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n                         ^^^^\n                         source.ts meta.function.expression.ts meta.block.ts meta.block.ts constant.language.null.ts\n>    return\n ^^^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.expression.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n>  }\n ^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n   ^\n   source.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.function.expression.ts meta.block.ts\n>  if (canAccessWindow(event.sender, guestContents)) {\n ^^\n source.ts meta.function.expression.ts meta.block.ts\n   ^^\n   source.ts meta.function.expression.ts meta.block.ts keyword.control.conditional.ts\n     ^\n     source.ts meta.function.expression.ts meta.block.ts\n      ^\n      source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n       ^^^^^^^^^^^^^^^\n       source.ts meta.function.expression.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                      ^\n                      source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                       ^^^^^\n                       source.ts meta.function.expression.ts meta.block.ts support.variable.dom.ts\n                            ^\n                            source.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                             ^^^^^^\n                             source.ts meta.function.expression.ts meta.block.ts variable.other.property.ts\n                                   ^\n                                   source.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                    ^\n                                    source.ts meta.function.expression.ts meta.block.ts\n                                     ^^^^^^^^^^^^^\n                                     source.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                  ^\n                                                  source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                   ^\n                                                   source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                    ^\n                                                    source.ts meta.function.expression.ts meta.block.ts\n                                                     ^\n                                                     source.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    event.returnValue = guestContents[method](...args)\n ^^^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n     ^^^^^\n     source.ts meta.function.expression.ts meta.block.ts meta.block.ts support.variable.dom.ts\n          ^\n          source.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.accessor.ts\n           ^^^^^^^^^^^\n           source.ts meta.function.expression.ts meta.block.ts meta.block.ts variable.other.property.ts\n                      ^\n                      source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n                       ^\n                       source.ts meta.function.expression.ts meta.block.ts meta.block.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n                         ^^^^^^^^^^^^^\n                         source.ts meta.function.expression.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                       ^^^^^^\n                                       source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n                                             ^\n                                             source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                              ^\n                                              source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                               ^^^\n                                               source.ts meta.function.expression.ts meta.block.ts meta.block.ts keyword.operator.spread.ts\n                                                  ^^^^\n                                                  source.ts meta.function.expression.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                                                      ^\n                                                      source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n>  } else {\n ^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n   ^\n   source.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n    ^\n    source.ts meta.function.expression.ts meta.block.ts\n     ^^^^\n     source.ts meta.function.expression.ts meta.block.ts keyword.control.conditional.ts\n         ^\n         source.ts meta.function.expression.ts meta.block.ts\n          ^\n          source.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    console.error(`Blocked ${event.sender.getURL()} from calling ${method} on its opener.`)\n ^^^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n     ^^^^^^^\n     source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts support.class.console.ts\n            ^\n            source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n             ^^^^^\n             source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                  ^\n                  source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts punctuation.definition.string.template.begin.ts\n                    ^^^^^^^^\n                    source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts\n                            ^^\n                            source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                              ^^^^^\n                              source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.function-call.ts support.variable.dom.ts\n                                   ^\n                                   source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.function-call.ts punctuation.accessor.ts\n                                    ^^^^^^\n                                    source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.function-call.ts variable.other.object.property.ts\n                                          ^\n                                          source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.function-call.ts punctuation.accessor.ts\n                                           ^^^^^^\n                                           source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.function-call.ts entity.name.function.ts\n                                                 ^\n                                                 source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.brace.round.ts\n                                                  ^\n                                                  source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.brace.round.ts\n                                                   ^\n                                                   source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                    ^^^^^^^^^^^^^^\n                                                    source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts\n                                                                  ^^\n                                                                  source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                    ^^^^^^\n                                                                    source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                                                          ^\n                                                                          source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                           ^^^^^^^^^^^^^^^\n                                                                           source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts\n                                                                                          ^\n                                                                                          source.ts meta.function.expression.ts meta.block.ts meta.block.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                                                           ^\n                                                                                           source.ts meta.function.expression.ts meta.block.ts meta.block.ts meta.brace.round.ts\n>    event.returnValue = null\n ^^^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n     ^^^^^\n     source.ts meta.function.expression.ts meta.block.ts meta.block.ts support.variable.dom.ts\n          ^\n          source.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.accessor.ts\n           ^^^^^^^^^^^\n           source.ts meta.function.expression.ts meta.block.ts meta.block.ts variable.other.property.ts\n                      ^\n                      source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n                       ^\n                       source.ts meta.function.expression.ts meta.block.ts meta.block.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n                         ^^^^\n                         source.ts meta.function.expression.ts meta.block.ts meta.block.ts constant.language.null.ts\n>  }\n ^^\n source.ts meta.function.expression.ts meta.block.ts meta.block.ts\n   ^\n   source.ts meta.function.expression.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>})\n ^\n source.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.brace.round.ts"
  },
  {
    "path": "tests/baselines/Issue403IncorrectlyDetectedArrowTypeParameters.baseline.txt",
    "content": "original file\n-----------------------------------\ne.ui.plugin.add(\"resizable\", \"grid\", {\n            resize: function() {\n                var t = e(this).data(\"ui-resizable\"),\n                    n = t.options,\n                    r = t.size,\n                    i = t.originalSize,\n                    s = t.originalPosition,\n                    o = t.axis,\n                    u = typeof n.grid == \"number\" ? [n.grid, n.grid] : n.grid,\n                    a = u[0] || 1,\n                    f = u[1] || 1,\n                    l = Math.round((r.width - i.width) / a) * a,\n                    c = Math.round((r.height - i.height) / f) * f,\n                    h = i.width + l,\n                    p = i.height + c,\n                    d = n.maxWidth && n.maxWidth < h,\n                    v = n.maxHeight && n.maxHeight < p,\n                    m = n.minWidth && n.minWidth > h,\n                    g = n.minHeight && n.minHeight > p;\n                n.grid = u, m && (h += a), g && (p += f), d && (h -= a), v && (p -= f), /^(se|s|e)$/.test(o) ? (t.size.width = h, t.size.height = p) : /^(ne)$/.test(o) ? (t.size.width = h, t.size.height = p, t.position.top = s.top - c) : /^(sw)$/.test(o) ? (t.size.width = h, t.size.height = p, t.position.left = s.left - l) : (p - f > 0 ? (t.size.height = p, t.position.top = s.top - c) : (t.size.height = f, t.position.top = s.top + i.height - f), h - a > 0 ? (t.size.width = h, t.position.left = s.left - l) : (t.size.width = a, t.position.left = s.left + i.width - a))\n            }\n        })\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>e.ui.plugin.add(\"resizable\", \"grid\", {\n ^\n source.ts meta.function-call.ts variable.other.object.ts\n  ^\n  source.ts meta.function-call.ts punctuation.accessor.ts\n   ^^\n   source.ts meta.function-call.ts variable.other.object.property.ts\n     ^\n     source.ts meta.function-call.ts punctuation.accessor.ts\n      ^^^^^^\n      source.ts meta.function-call.ts variable.other.object.property.ts\n            ^\n            source.ts meta.function-call.ts punctuation.accessor.ts\n             ^^^\n             source.ts meta.function-call.ts support.function.dom.ts\n                ^\n                source.ts meta.brace.round.ts\n                 ^\n                 source.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                  ^^^^^^^^^\n                  source.ts string.quoted.double.ts\n                           ^\n                           source.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                            ^\n                            source.ts punctuation.separator.comma.ts\n                             ^\n                             source.ts\n                              ^\n                              source.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                               ^^^^\n                               source.ts string.quoted.double.ts\n                                   ^\n                                   source.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                    ^\n                                    source.ts punctuation.separator.comma.ts\n                                     ^\n                                     source.ts\n                                      ^\n                                      source.ts meta.objectliteral.ts punctuation.definition.block.ts\n>            resize: function() {\n ^^^^^^^^^^^^\n source.ts meta.objectliteral.ts\n             ^^^^^^\n             source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts entity.name.function.ts\n                   ^\n                   source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                    ^\n                    source.ts meta.objectliteral.ts meta.object.member.ts\n                     ^^^^^^^^\n                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts storage.type.function.ts\n                             ^\n                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                              ^\n                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                               ^\n                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts\n                                ^\n                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>                var t = e(this).data(\"ui-resizable\"),\n ^^^^^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                 ^^^\n                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                    ^\n                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                          ^\n                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                           ^^^^\n                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                               ^\n                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                 ^^^^\n                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                     ^\n                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                       ^^^^^^^^^^^^\n                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts\n                                                   ^\n                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                    ^\n                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                     ^\n                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n>                    n = t.options,\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                          ^\n                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^^\n                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts support.variable.property.dom.ts\n                                  ^\n                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n>                    r = t.size,\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                          ^\n                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^\n                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts support.variable.property.dom.ts\n                               ^\n                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n>                    i = t.originalSize,\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                          ^\n                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^^^^^^^\n                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                       ^\n                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n>                    s = t.originalPosition,\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                          ^\n                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^^^^^^^^^^^\n                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                           ^\n                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n>                    o = t.axis,\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                          ^\n                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^\n                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts support.variable.property.dom.ts\n                               ^\n                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n>                    u = typeof n.grid == \"number\" ? [n.grid, n.grid] : n.grid,\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^^^^^^\n                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.expression.typeof.ts\n                               ^\n                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                ^\n                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                                 ^\n                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                  ^^^^\n                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                      ^\n                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                       ^^\n                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.comparison.ts\n                                         ^\n                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                          ^\n                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                           ^^^^^^\n                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts\n                                                 ^\n                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                  ^\n                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                   ^\n                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.ternary.ts\n                                                    ^\n                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts\n                                                     ^\n                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                      ^\n                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts variable.other.object.ts\n                                                       ^\n                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts punctuation.accessor.ts\n                                                        ^^^^\n                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts variable.other.property.ts\n                                                            ^\n                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                             ^\n                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts\n                                                              ^\n                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts variable.other.object.ts\n                                                               ^\n                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts punctuation.accessor.ts\n                                                                ^^^^\n                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts variable.other.property.ts\n                                                                    ^\n                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                                     ^\n                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                                      ^\n                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.ternary.ts\n                                                                       ^\n                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                                        ^\n                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                                                                         ^\n                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                                                          ^^^^\n                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                                                              ^\n                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n>                    a = u[0] || 1,\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                           ^\n                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                            ^\n                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                             ^\n                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                              ^^\n                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.logical.ts\n                                ^\n                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                 ^\n                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                  ^\n                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n>                    f = u[1] || 1,\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                           ^\n                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                            ^\n                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                             ^\n                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                              ^^\n                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.logical.ts\n                                ^\n                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                 ^\n                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                  ^\n                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n>                    l = Math.round((r.width - i.width) / a) * a,\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^^^^\n                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.constant.math.ts\n                             ^\n                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                              ^^^^^\n                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.function.math.ts\n                                   ^\n                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                                      ^\n                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                       ^^^^^\n                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts support.variable.property.dom.ts\n                                            ^\n                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                             ^\n                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                              ^\n                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                               ^\n                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                                                ^\n                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                                 ^^^^^\n                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts support.variable.property.dom.ts\n                                                      ^\n                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                       ^\n                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                        ^\n                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                                         ^\n                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                          ^\n                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                           ^\n                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                            ^\n                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                             ^\n                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                                              ^\n                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                               ^\n                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                                ^\n                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n>                    c = Math.round((r.height - i.height) / f) * f,\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^^^^\n                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.constant.math.ts\n                             ^\n                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                              ^^^^^\n                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.function.math.ts\n                                   ^\n                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                                      ^\n                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                       ^^^^^^\n                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts support.variable.property.dom.ts\n                                             ^\n                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                              ^\n                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                               ^\n                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                ^\n                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                                                 ^\n                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                                  ^^^^^^\n                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts support.variable.property.dom.ts\n                                                        ^\n                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                         ^\n                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                          ^\n                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                                           ^\n                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                            ^\n                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                             ^\n                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                              ^\n                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                               ^\n                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                                                ^\n                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                                 ^\n                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                                  ^\n                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n>                    h = i.width + l,\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                          ^\n                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^\n                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts support.variable.property.dom.ts\n                                ^\n                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                 ^\n                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                  ^\n                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                   ^\n                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                    ^\n                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n>                    p = i.height + c,\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                          ^\n                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts support.variable.property.dom.ts\n                                 ^\n                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                  ^\n                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                   ^\n                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                    ^\n                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                     ^\n                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n>                    d = n.maxWidth && n.maxWidth < h,\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                          ^\n                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                   ^\n                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                    ^^\n                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.logical.ts\n                                      ^\n                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                       ^\n                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                                        ^\n                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                         ^^^^^^^^\n                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                                 ^\n                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                  ^\n                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.relational.ts\n                                                   ^\n                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                    ^\n                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                     ^\n                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n>                    v = n.maxHeight && n.maxHeight < p,\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                          ^\n                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^^^^\n                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                    ^\n                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                     ^^\n                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.logical.ts\n                                       ^\n                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                        ^\n                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                                         ^\n                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                          ^^^^^^^^^\n                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                                   ^\n                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                    ^\n                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.relational.ts\n                                                     ^\n                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                      ^\n                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                       ^\n                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n>                    m = n.minWidth && n.minWidth > h,\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                          ^\n                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                   ^\n                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                    ^^\n                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.logical.ts\n                                      ^\n                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                       ^\n                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                                        ^\n                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                         ^^^^^^^^\n                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                                 ^\n                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                  ^\n                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.relational.ts\n                                                   ^\n                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                    ^\n                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                     ^\n                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n>                    g = n.minHeight && n.minHeight > p;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                          ^\n                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^^^^\n                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                    ^\n                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                     ^^\n                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.logical.ts\n                                       ^\n                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                        ^\n                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                                         ^\n                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                          ^^^^^^^^^\n                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                                   ^\n                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                    ^\n                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.relational.ts\n                                                     ^\n                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                                                      ^\n                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                       ^\n                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n>                n.grid = u, m && (h += a), g && (p += f), d && (h -= a), v && (p -= f), /^(se|s|e)$/.test(o) ? (t.size.width = h, t.size.height = p) : /^(ne)$/.test(o) ? (t.size.width = h, t.size.height = p, t.position.top = s.top - c) : /^(sw)$/.test(o) ? (t.size.width = h, t.size.height = p, t.position.left = s.left - l) : (p - f > 0 ? (t.size.height = p, t.position.top = s.top - c) : (t.size.height = f, t.position.top = s.top + i.height - f), h - a > 0 ? (t.size.width = h, t.position.left = s.left - l) : (t.size.width = a, t.position.left = s.left + i.width - a))\n ^^^^^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                 ^\n                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                  ^\n                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                   ^^^^\n                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.property.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                          ^\n                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                           ^\n                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                            ^\n                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                             ^\n                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                              ^\n                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                               ^^\n                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.logical.ts\n                                 ^\n                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                  ^\n                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                    ^\n                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                     ^^\n                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.compound.ts\n                                       ^\n                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                        ^\n                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                         ^\n                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                           ^\n                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                            ^\n                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                             ^\n                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                              ^^\n                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.logical.ts\n                                                ^\n                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                 ^\n                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                  ^\n                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                   ^\n                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                    ^^\n                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.compound.ts\n                                                      ^\n                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                       ^\n                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                        ^\n                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                         ^\n                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                                          ^\n                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                           ^\n                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                            ^\n                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                             ^^\n                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.logical.ts\n                                                               ^\n                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                ^\n                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                 ^\n                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                  ^\n                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                   ^^\n                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.compound.ts\n                                                                     ^\n                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                      ^\n                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                       ^\n                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                        ^\n                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                                                         ^\n                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                          ^\n                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                           ^\n                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                            ^^\n                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.logical.ts\n                                                                              ^\n                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                               ^\n                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                ^\n                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                 ^\n                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                  ^^\n                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.compound.ts\n                                                                                    ^\n                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                     ^\n                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                      ^\n                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                       ^\n                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                                                                        ^\n                                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts\n                                                                                         ^\n                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts punctuation.definition.string.begin.ts\n                                                                                          ^\n                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts keyword.control.anchor.regexp\n                                                                                           ^\n                                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp\n                                                                                            ^^\n                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts meta.group.regexp\n                                                                                              ^\n                                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts meta.group.regexp keyword.operator.or.regexp\n                                                                                               ^\n                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts meta.group.regexp\n                                                                                                ^\n                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts meta.group.regexp keyword.operator.or.regexp\n                                                                                                 ^\n                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts meta.group.regexp\n                                                                                                  ^\n                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp\n                                                                                                   ^\n                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts keyword.control.anchor.regexp\n                                                                                                    ^\n                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts punctuation.definition.string.end.ts\n                                                                                                     ^\n                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                      ^^^^\n                                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.function-call.ts support.function.ts\n                                                                                                          ^\n                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                           ^\n                                                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                            ^\n                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                             ^\n                                                                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                              ^\n                                                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.ternary.ts\n                                                                                                               ^\n                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                ^\n                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                 ^\n                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                  ^\n                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                   ^^^^\n                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                       ^\n                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                        ^^^^^\n                                                                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                             ^\n                                                                                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                              ^\n                                                                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                                                                                                               ^\n                                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                ^\n                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                 ^\n                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                                                                                                                  ^\n                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                   ^\n                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                    ^\n                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                     ^^^^\n                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                         ^\n                                                                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                          ^^^^^^\n                                                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                ^\n                                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                 ^\n                                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                                                                                                                                  ^\n                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                   ^\n                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                    ^\n                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                     ^\n                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                      ^\n                                                                                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.ternary.ts\n                                                                                                                                                       ^\n                                                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts\n                                                                                                                                                        ^\n                                                                                                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts punctuation.definition.string.begin.ts\n                                                                                                                                                         ^\n                                                                                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts keyword.control.anchor.regexp\n                                                                                                                                                          ^\n                                                                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp\n                                                                                                                                                           ^^\n                                                                                                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts meta.group.regexp\n                                                                                                                                                             ^\n                                                                                                                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp\n                                                                                                                                                              ^\n                                                                                                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts keyword.control.anchor.regexp\n                                                                                                                                                               ^\n                                                                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts punctuation.definition.string.end.ts\n                                                                                                                                                                ^\n                                                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                 ^^^^\n                                                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.function-call.ts support.function.ts\n                                                                                                                                                                     ^\n                                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                      ^\n                                                                                                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                       ^\n                                                                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                        ^\n                                                                                                                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                         ^\n                                                                                                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.ternary.ts\n                                                                                                                                                                          ^\n                                                                                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                           ^\n                                                                                                                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                            ^\n                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                             ^\n                                                                                                                                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                              ^^^^\n                                                                                                                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                  ^\n                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                   ^^^^^\n                                                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                        ^\n                                                                                                                                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                         ^\n                                                                                                                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                                                                                                                                                                          ^\n                                                                                                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                           ^\n                                                                                                                                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                            ^\n                                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                                                                                                                                                                             ^\n                                                                                                                                                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                              ^\n                                                                                                                                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                               ^\n                                                                                                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                ^^^^\n                                                                                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                    ^\n                                                                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                     ^^^^^^\n                                                                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                           ^\n                                                                                                                                                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                            ^\n                                                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                                                                                                                                                                                             ^\n                                                                                                                                                                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                              ^\n                                                                                                                                                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                                               ^\n                                                                                                                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                   ^^^^^^^^\n                                                                                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.property.ts\n                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                            ^^^\n                                                                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                    ^^^\n                                                                                                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                        ^\n                                                                                                                                                                                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                          ^\n                                                                                                                                                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.ternary.ts\n                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts\n                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts punctuation.definition.string.begin.ts\n                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts keyword.control.anchor.regexp\n                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp\n                                                                                                                                                                                                                                                  ^^\n                                                                                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts meta.group.regexp\n                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp\n                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts keyword.control.anchor.regexp\n                                                                                                                                                                                                                                                      ^\n                                                                                                                                                                                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts string.regexp.ts punctuation.definition.string.end.ts\n                                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                        ^^^^\n                                                                                                                                                                                                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.function-call.ts support.function.ts\n                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.ternary.ts\n                                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                     ^^^^\n                                                                                                                                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                          ^^^^^\n                                                                                                                                                                                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                      ^\n                                                                                                                                                                                                                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                       ^^^^\n                                                                                                                                                                                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                            ^^^^^^\n                                                                                                                                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                                                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                                                                                                                                      ^\n                                                                                                                                                                                                                                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                        ^\n                                                                                                                                                                                                                                                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                          ^^^^^^^^\n                                                                                                                                                                                                                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.property.ts\n                                                                                                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                   ^^^^\n                                                                                                                                                                                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                        ^\n                                                                                                                                                                                                                                                                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                                                                                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                          ^\n                                                                                                                                                                                                                                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                                                                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                            ^^^^\n                                                                                                                                                                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                                                                                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                      ^\n                                                                                                                                                                                                                                                                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.ternary.ts\n                                                                                                                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                        ^\n                                                                                                                                                                                                                                                                                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                                                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                                                                                                                                                                          ^\n                                                                                                                                                                                                                                                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                                                                                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                                                                                                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                                                                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.relational.ts\n                                                                                                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts constant.numeric.decimal.ts\n                                                                                                                                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.ternary.ts\n                                                                                                                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                      ^\n                                                                                                                                                                                                                                                                                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                        ^^^^\n                                                                                                                                                                                                                                                                                                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                             ^^^^^^\n                                                                                                                                                                                                                                                                                                                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                                                                                                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                      ^\n                                                                                                                                                                                                                                                                                                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                                                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                                                                        ^\n                                                                                                                                                                                                                                                                                                                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                                                                                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                          ^\n                                                                                                                                                                                                                                                                                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                           ^^^^^^^^\n                                                                                                                                                                                                                                                                                                                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.property.ts\n                                                                                                                                                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                    ^^^\n                                                                                                                                                                                                                                                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                                                                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                        ^\n                                                                                                                                                                                                                                                                                                                                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                                                                                                                                                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                                                                                                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                          ^\n                                                                                                                                                                                                                                                                                                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                                                                                                                                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                            ^^^\n                                                                                                                                                                                                                                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                                                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                                                                                                                                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                                                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.ternary.ts\n                                                                                                                                                                                                                                                                                                                                                                                                      ^\n                                                                                                                                                                                                                                                                                                                                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                                                                                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                        ^\n                                                                                                                                                                                                                                                                                                                                                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                                                                                                                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                          ^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                                                                                                                                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                               ^^^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                      ^\n                                                                                                                                                                                                                                                                                                                                                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                                                                                                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                        ^\n                                                                                                                                                                                                                                                                                                                                                                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                                                                                                                                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                          ^\n                                                                                                                                                                                                                                                                                                                                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                                                                                                                                                                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                             ^^^^^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.property.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                      ^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                          ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                              ^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                      ^^^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.relational.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts constant.numeric.decimal.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.ternary.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ^^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ^^^^^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.property.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.ternary.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ^^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ^^^^^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.property.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ^^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts support.variable.property.dom.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n>            }\n ^^^^^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts\n             ^\n             source.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>        })\n ^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts\n         ^\n         source.ts meta.objectliteral.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.brace.round.ts"
  },
  {
    "path": "tests/baselines/Issue403IncorrectlyDetectedFunctionCallAsArrow.baseline.txt",
    "content": "original file\n-----------------------------------\np.parseJSON = function(t) {\n        if (e.JSON && e.JSON.parse) return e.JSON.parse(t + \"\");\n        var n, r = null,\n            i = p.trim(t + \"\");\n        return i && !p.trim(i.replace(Nn, function(e, t, i, s) {\n            return n && t && (r = 0), r === 0 ? e : (n = i || t, r += !s - !i, \"\")\n        })) ? Function(\"return \" + i)() : p.error(\"Invalid JSON: \" + t)\n    }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>p.parseJSON = function(t) {\n ^\n source.ts variable.other.object.ts\n  ^\n  source.ts punctuation.accessor.ts\n   ^^^^^^^^^\n   source.ts entity.name.function.ts\n            ^\n            source.ts\n             ^\n             source.ts keyword.operator.assignment.ts\n              ^\n              source.ts\n               ^^^^^^^^\n               source.ts meta.function.ts storage.type.function.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                          ^\n                          source.ts meta.function.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>        if (e.JSON && e.JSON.parse) return e.JSON.parse(t + \"\");\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts\n         ^^\n         source.ts meta.function.ts meta.block.ts keyword.control.conditional.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n             ^\n             source.ts meta.function.ts meta.block.ts variable.other.object.ts\n              ^\n              source.ts meta.function.ts meta.block.ts punctuation.accessor.ts\n               ^^^^\n               source.ts meta.function.ts meta.block.ts variable.other.constant.property.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts\n                    ^^\n                    source.ts meta.function.ts meta.block.ts keyword.operator.logical.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts variable.other.object.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts punctuation.accessor.ts\n                         ^^^^\n                         source.ts meta.function.ts meta.block.ts variable.other.constant.object.property.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts punctuation.accessor.ts\n                              ^^^^^\n                              source.ts meta.function.ts meta.block.ts variable.other.property.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts\n                                     ^^^^^^\n                                     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n                                           ^\n                                           source.ts meta.function.ts meta.block.ts\n                                            ^\n                                            source.ts meta.function.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                                             ^\n                                             source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                              ^^^^\n                                              source.ts meta.function.ts meta.block.ts meta.function-call.ts variable.other.constant.object.property.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                                   ^^^^^\n                                                   source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.block.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.block.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>        var n, r = null,\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts\n         ^^^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                    ^^^^\n                    source.ts meta.function.ts meta.block.ts meta.var.expr.ts constant.language.null.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n>            i = p.trim(t + \"\");\n ^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^\n                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>        return i && !p.trim(i.replace(Nn, function(e, t, i, s) {\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.function.ts meta.block.ts\n                ^\n                source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts\n                  ^^\n                  source.ts meta.function.ts meta.block.ts keyword.operator.logical.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts keyword.operator.logical.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^\n                        source.ts meta.function.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                               ^^^^^^^\n                               source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                       ^^\n                                       source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts punctuation.separator.comma.ts\n                                          ^\n                                          source.ts meta.function.ts meta.block.ts\n                                           ^^^^^^^^\n                                           source.ts meta.function.ts meta.block.ts meta.function.expression.ts storage.type.function.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.parameters.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.parameters.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.parameters.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.block.ts meta.function.expression.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>            return n && t && (r = 0), r === 0 ? e : (n = i || t, r += !s - !i, \"\")\n ^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n             ^^^^^^\n             source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts keyword.control.flow.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                      ^^\n                      source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts keyword.operator.logical.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                           ^^\n                           source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts keyword.operator.logical.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts constant.numeric.decimal.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                         ^^^\n                                         source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts keyword.operator.comparison.ts\n                                            ^\n                                            source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                             ^\n                                             source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts constant.numeric.decimal.ts\n                                              ^\n                                              source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                               ^\n                                               source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts keyword.operator.ternary.ts\n                                                ^\n                                                source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts keyword.operator.ternary.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                                            ^^\n                                                            source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts keyword.operator.logical.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                                                    ^^\n                                                                    source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.compound.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                                                       ^\n                                                                       source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts keyword.operator.logical.ts\n                                                                        ^\n                                                                        source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                         ^\n                                                                         source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                                           ^\n                                                                           source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                                                            ^\n                                                                            source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts keyword.operator.logical.ts\n                                                                             ^\n                                                                             source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts variable.other.readwrite.ts\n                                                                              ^\n                                                                              source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.separator.comma.ts\n                                                                               ^\n                                                                               source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n                                                                                ^\n                                                                                source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                                 ^\n                                                                                 source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                  ^\n                                                                                  source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n>        })) ? Function(\"return \" + i)() : p.error(\"Invalid JSON: \" + t)\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n            ^\n            source.ts meta.function.ts meta.block.ts\n             ^\n             source.ts meta.function.ts meta.block.ts keyword.operator.ternary.ts\n              ^\n              source.ts meta.function.ts meta.block.ts\n               ^^^^^^^^\n               source.ts meta.function.ts meta.block.ts meta.function-call.ts support.class.builtin.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                         ^^^^^^^\n                         source.ts meta.function.ts meta.block.ts string.quoted.double.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts keyword.operator.arithmetic.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts keyword.operator.ternary.ts\n                                          ^\n                                          source.ts meta.function.ts meta.block.ts\n                                           ^\n                                           source.ts meta.function.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                                            ^\n                                            source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                             ^^^^^\n                                             source.ts meta.function.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                    ^^^^^^^^^^^^^^\n                                                    source.ts meta.function.ts meta.block.ts string.quoted.double.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.block.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.block.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                                                       ^\n                                                                       source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n>    }\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^\n     source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue405.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction  myFunction1\n  (a: string)\n{\n  var r = true;\n  return true\n}\n\nfunction myFunction2\n  (a: string): boolean\n{\n  var r = true;\n  return true\n}\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function  myFunction1\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^^\n         source.ts meta.function.ts\n           ^^^^^^^^^^^\n           source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n>  (a: string)\n ^^\n source.ts meta.function.ts\n   ^\n   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n    ^\n    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n     ^\n     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n      ^\n      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n       ^^^^^^\n       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>{\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  var r = true;\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^\n   source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n       ^\n       source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n           ^^^^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts constant.language.boolean.true.ts\n               ^\n               source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>  return true\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.function.ts meta.block.ts\n          ^^^^\n          source.ts meta.function.ts meta.block.ts constant.language.boolean.true.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>function myFunction2\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n>  (a: string): boolean\n ^^\n source.ts meta.function.ts\n   ^\n   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n    ^\n    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n     ^\n     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n      ^\n      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n       ^^^^^^\n       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n              ^\n              source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.function.ts meta.return.type.ts\n                ^^^^^^^\n                source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n>{\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  var r = true;\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^\n   source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n       ^\n       source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n           ^^^^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts constant.language.boolean.true.ts\n               ^\n               source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>  return true\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.function.ts meta.block.ts\n          ^^^^\n          source.ts meta.function.ts meta.block.ts constant.language.boolean.true.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue407.baseline.txt",
    "content": "original file\n-----------------------------------\nlet x: Map<string, string>;\nlet Y: Map<string, string>;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let x: Map<string, string>;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n            ^^^^^^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts\n                    ^^^^^^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                           ^\n                           source.ts punctuation.terminator.statement.ts\n>let Y: Map<string, string>;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n            ^^^^^^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts\n                    ^^^^^^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                           ^\n                           source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue408.baseline.txt",
    "content": "original file\n-----------------------------------\nassert(truthyValue, 'must be true');\npath(pathArgs);\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>assert(truthyValue, 'must be true');\n ^^^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n       ^\n       source.ts meta.brace.round.ts\n        ^^^^^^^^^^^\n        source.ts variable.other.readwrite.ts\n                   ^\n                   source.ts punctuation.separator.comma.ts\n                    ^\n                    source.ts\n                     ^\n                     source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                      ^^^^^^^^^^^^\n                      source.ts string.quoted.single.ts\n                                  ^\n                                  source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                   ^\n                                   source.ts meta.brace.round.ts\n                                    ^\n                                    source.ts punctuation.terminator.statement.ts\n>path(pathArgs);\n ^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^^^^\n      source.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.brace.round.ts\n               ^\n               source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue415.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\n(<View />);\n(<dot.view />);\n(<dot.View />);\n(<dot.View />);\n(<View></View>);\n(<dot.View></dot.View>);\n(<dot.View><b>bold</b></dot.View>);\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>(<View />);\n ^\n source.tsx meta.brace.round.tsx\n  ^\n  source.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n   ^^^^\n   source.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n       ^\n       source.tsx meta.tag.tsx meta.tag.attributes.tsx\n        ^^\n        source.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n          ^\n          source.tsx meta.brace.round.tsx\n           ^\n           source.tsx punctuation.terminator.statement.tsx\n>(<dot.view />);\n ^\n source.tsx meta.brace.round.tsx\n  ^\n  source.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n   ^^^^^^^^\n   source.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n           ^\n           source.tsx meta.tag.tsx meta.tag.attributes.tsx\n            ^^\n            source.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n              ^\n              source.tsx meta.brace.round.tsx\n               ^\n               source.tsx punctuation.terminator.statement.tsx\n>(<dot.View />);\n ^\n source.tsx meta.brace.round.tsx\n  ^\n  source.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n   ^^^^^^^^\n   source.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n           ^\n           source.tsx meta.tag.tsx meta.tag.attributes.tsx\n            ^^\n            source.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n              ^\n              source.tsx meta.brace.round.tsx\n               ^\n               source.tsx punctuation.terminator.statement.tsx\n>(<dot.View />);\n ^\n source.tsx meta.brace.round.tsx\n  ^\n  source.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n   ^^^^^^^^\n   source.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n           ^\n           source.tsx meta.tag.tsx meta.tag.attributes.tsx\n            ^^\n            source.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n              ^\n              source.tsx meta.brace.round.tsx\n               ^\n               source.tsx punctuation.terminator.statement.tsx\n>(<View></View>);\n ^\n source.tsx meta.brace.round.tsx\n  ^\n  source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n   ^^^^\n   source.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n       ^\n       source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n        ^^\n        source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n          ^^^^\n          source.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n              ^\n              source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n               ^\n               source.tsx meta.brace.round.tsx\n                ^\n                source.tsx punctuation.terminator.statement.tsx\n>(<dot.View></dot.View>);\n ^\n source.tsx meta.brace.round.tsx\n  ^\n  source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n   ^^^^^^^^\n   source.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n           ^\n           source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n            ^^\n            source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n              ^^^^^^^^\n              source.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n                      ^\n                      source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                       ^\n                       source.tsx meta.brace.round.tsx\n                        ^\n                        source.tsx punctuation.terminator.statement.tsx\n>(<dot.View><b>bold</b></dot.View>);\n ^\n source.tsx meta.brace.round.tsx\n  ^\n  source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n   ^^^^^^^^\n   source.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n           ^\n           source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n            ^\n            source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n             ^\n             source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n              ^\n              source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n               ^^^^\n               source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                   ^^\n                   source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                     ^\n                     source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                      ^\n                      source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                       ^^\n                       source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                         ^^^^^^^^\n                         source.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n                                 ^\n                                 source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                  ^\n                                  source.tsx meta.brace.round.tsx\n                                   ^\n                                   source.tsx punctuation.terminator.statement.tsx"
  },
  {
    "path": "tests/baselines/Issue417.baseline.txt",
    "content": "original file\n-----------------------------------\nconst a = {\n    1: '1',\n    '2': '2',\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const a = {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    1: '1',\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts constant.numeric.decimal.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>    '2': '2',\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts punctuation.definition.string.end.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue418.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction merge(as, bs) {\n  let res = []\n  let ia = 0\n  let ib = 0\n  while (ia < as.length && ib < bs.length) { // coloring broken\n    if (as[ia] < bs[ib]) {\n      res.push(as[ia++]) // coloring broken\n    } else {\n      res.push(bs[ib++]) // coloring broken\n    }\n  }\n  return res.concat(as.slice(ia)).concat(bs.slice(ib)) // coloring broken\n}\n\nfunction mergesort(array) {\n  if (array.length < 2) {\n    return array\n  }\n  const mid = Math.floor(array.length / 2)\n  return merge(mergesort(array.slice(0, mid)), mergesort(array.slice(mid)))\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function merge(as, bs) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^^\n                source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts\n                    ^^\n                    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                       ^\n                       source.ts meta.function.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  let res = []\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^\n   source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n>  let ia = 0\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^\n   source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n       ^^\n       source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n>  let ib = 0\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^\n   source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n       ^^\n       source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n>  while (ia < as.length && ib < bs.length) { // coloring broken\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^\n   source.ts meta.function.ts meta.block.ts keyword.control.loop.ts\n        ^\n        source.ts meta.function.ts meta.block.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n          ^^\n          source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.function.ts meta.block.ts\n             ^\n             source.ts meta.function.ts meta.block.ts keyword.operator.relational.ts\n              ^\n              source.ts meta.function.ts meta.block.ts\n               ^^\n               source.ts meta.function.ts meta.block.ts variable.other.object.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts punctuation.accessor.ts\n                  ^^^^^^\n                  source.ts meta.function.ts meta.block.ts support.variable.property.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts\n                         ^^\n                         source.ts meta.function.ts meta.block.ts keyword.operator.logical.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts\n                            ^^\n                            source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts keyword.operator.relational.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts\n                                 ^^\n                                 source.ts meta.function.ts meta.block.ts variable.other.object.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts punctuation.accessor.ts\n                                    ^^^^^^\n                                    source.ts meta.function.ts meta.block.ts support.variable.property.ts\n                                          ^\n                                          source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.function.ts meta.block.ts\n                                            ^\n                                            source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n                                             ^\n                                             source.ts meta.function.ts meta.block.ts meta.block.ts\n                                              ^^\n                                              source.ts meta.function.ts meta.block.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                ^^^^^^^^^^^^^^^^\n                                                source.ts meta.function.ts meta.block.ts meta.block.ts comment.line.double-slash.ts\n>    if (as[ia] < bs[ib]) {\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n     ^^\n     source.ts meta.function.ts meta.block.ts meta.block.ts keyword.control.conditional.ts\n       ^\n       source.ts meta.function.ts meta.block.ts meta.block.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.block.ts meta.brace.round.ts\n         ^^\n         source.ts meta.function.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n            ^^\n            source.ts meta.function.ts meta.block.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.block.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.block.ts keyword.operator.relational.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.block.ts\n                  ^^\n                  source.ts meta.function.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                     ^^\n                     source.ts meta.function.ts meta.block.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts meta.block.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>      res.push(as[ia++]) // coloring broken\n ^^^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts\n       ^^^\n       source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n           ^^^^\n           source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                ^^\n                source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                   ^^\n                   source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n                     ^^\n                     source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts meta.array.literal.ts keyword.operator.increment.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts\n                          ^^\n                          source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                            ^^^^^^^^^^^^^^^^\n                            source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts comment.line.double-slash.ts\n>    } else {\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts\n     ^\n     source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.block.ts\n       ^^^^\n       source.ts meta.function.ts meta.block.ts meta.block.ts keyword.control.conditional.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.block.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>      res.push(bs[ib++]) // coloring broken\n ^^^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts\n       ^^^\n       source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n           ^^^^\n           source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                ^^\n                source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                   ^^\n                   source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n                     ^^\n                     source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts meta.array.literal.ts keyword.operator.increment.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts\n                          ^^\n                          source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                            ^^^^^^^^^^^^^^^^\n                            source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts comment.line.double-slash.ts\n>    }\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts\n     ^\n     source.ts meta.function.ts meta.block.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>  }\n ^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n   ^\n   source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>  return res.concat(as.slice(ia)).concat(bs.slice(ib)) // coloring broken\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.function.ts meta.block.ts\n          ^^^\n          source.ts meta.function.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n              ^^^^^^\n              source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                     ^^\n                     source.ts meta.function.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^\n                        source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                              ^^\n                              source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                   ^^^^^^\n                                   source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                          ^^\n                                          source.ts meta.function.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                                            ^\n                                            source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                             ^^^^^\n                                             source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                                   ^^\n                                                   source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.block.ts\n                                                        ^^\n                                                        source.ts meta.function.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                          ^^^^^^^^^^^^^^^^\n                                                          source.ts meta.function.ts meta.block.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>function mergesort(array) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                    ^^^^^\n                    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                          ^\n                          source.ts meta.function.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  if (array.length < 2) {\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^\n   source.ts meta.function.ts meta.block.ts keyword.control.conditional.ts\n     ^\n     source.ts meta.function.ts meta.block.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n       ^^^^^\n       source.ts meta.function.ts meta.block.ts variable.other.object.ts\n            ^\n            source.ts meta.function.ts meta.block.ts punctuation.accessor.ts\n             ^^^^^^\n             source.ts meta.function.ts meta.block.ts support.variable.property.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts keyword.operator.relational.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    return array\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.block.ts\n            ^^^^^\n            source.ts meta.function.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n>  }\n ^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n   ^\n   source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>  const mid = Math.floor(array.length / 2)\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^\n   source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n         ^^^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n               ^^^^\n               source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.constant.math.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^\n                    source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.function.math.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                          ^^^^^\n                          source.ts meta.function.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                ^^^^^^\n                                source.ts meta.function.ts meta.block.ts meta.var.expr.ts support.variable.property.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                          ^\n                                          source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n>  return merge(mergesort(array.slice(0, mid)), mergesort(array.slice(mid)))\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.function.ts meta.block.ts\n          ^^^^^\n          source.ts meta.function.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                ^^^^^^^^^\n                source.ts meta.function.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                          ^^^^^\n                          source.ts meta.function.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                ^^^^^\n                                source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts punctuation.separator.comma.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts\n                                         ^^^\n                                         source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                            ^\n                                            source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                              ^\n                                              source.ts meta.function.ts meta.block.ts punctuation.separator.comma.ts\n                                               ^\n                                               source.ts meta.function.ts meta.block.ts\n                                                ^^^^^^^^^\n                                                source.ts meta.function.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                                          ^^^^^\n                                                          source.ts meta.function.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                                                ^^^^^\n                                                                source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                                                      ^^^\n                                                                      source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                                                         ^\n                                                                         source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                                                           ^\n                                                                           source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue42.baseline.txt",
    "content": "original file\n-----------------------------------\n            return this.travelWorld((cell: Cell) => {\n                cell.live = Math.random() < this.initialLifeProbability;\n                return cell;\n            });\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>            return this.travelWorld((cell: Cell) => {\n ^^^^^^^^^^^^\n source.ts\n             ^^^^^^\n             source.ts keyword.control.flow.ts\n                   ^\n                   source.ts\n                    ^^^^\n                    source.ts meta.function-call.ts variable.language.this.ts\n                        ^\n                        source.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^^^^^^\n                         source.ts meta.function-call.ts entity.name.function.ts\n                                    ^\n                                    source.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                      ^^^^\n                                      source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                          ^\n                                          source.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                           ^\n                                           source.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                                            ^^^^\n                                            source.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                ^\n                                                source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                 ^\n                                                 source.ts meta.arrow.ts\n                                                  ^^\n                                                  source.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                    ^\n                                                    source.ts meta.arrow.ts\n                                                     ^\n                                                     source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>                cell.live = Math.random() < this.initialLifeProbability;\n ^^^^^^^^^^^^^^^^\n source.ts meta.arrow.ts meta.block.ts\n                 ^^^^\n                 source.ts meta.arrow.ts meta.block.ts variable.other.object.ts\n                     ^\n                     source.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n                      ^^^^\n                      source.ts meta.arrow.ts meta.block.ts variable.other.property.ts\n                          ^\n                          source.ts meta.arrow.ts meta.block.ts\n                           ^\n                           source.ts meta.arrow.ts meta.block.ts keyword.operator.assignment.ts\n                            ^\n                            source.ts meta.arrow.ts meta.block.ts\n                             ^^^^\n                             source.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.constant.math.ts\n                                 ^\n                                 source.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                  ^^^^^^\n                                  source.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.function.math.ts\n                                        ^\n                                        source.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.arrow.ts meta.block.ts\n                                           ^\n                                           source.ts meta.arrow.ts meta.block.ts keyword.operator.relational.ts\n                                            ^\n                                            source.ts meta.arrow.ts meta.block.ts\n                                             ^^^^\n                                             source.ts meta.arrow.ts meta.block.ts variable.language.this.ts\n                                                 ^\n                                                 source.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n                                                  ^^^^^^^^^^^^^^^^^^^^^^\n                                                  source.ts meta.arrow.ts meta.block.ts variable.other.property.ts\n                                                                        ^\n                                                                        source.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>                return cell;\n ^^^^^^^^^^^^^^^^\n source.ts meta.arrow.ts meta.block.ts\n                 ^^^^^^\n                 source.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n                       ^\n                       source.ts meta.arrow.ts meta.block.ts\n                        ^^^^\n                        source.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                            ^\n                            source.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>            });\n ^^^^^^^^^^^^\n source.ts meta.arrow.ts meta.block.ts\n             ^\n             source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.brace.round.ts\n               ^\n               source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue420.baseline.txt",
    "content": "original file\n-----------------------------------\nverify.quickInfos({\n    1: \"this: ContextualInterface\",\n    2: \"(parameter) this: void\"\n});\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>verify.quickInfos({\n ^^^^^^\n source.ts meta.function-call.ts variable.other.object.ts\n       ^\n       source.ts meta.function-call.ts punctuation.accessor.ts\n        ^^^^^^^^^^\n        source.ts meta.function-call.ts entity.name.function.ts\n                  ^\n                  source.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    1: \"this: ContextualInterface\",\n ^^^^\n source.ts meta.objectliteral.ts\n     ^\n     source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts constant.numeric.decimal.ts\n      ^\n      source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n       ^\n       source.ts meta.objectliteral.ts meta.object.member.ts\n        ^\n        source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n         ^^^^^^^^^^^^^^^^^^^^^^^^^\n         source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                                  ^\n                                  source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                   ^\n                                   source.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>    2: \"(parameter) this: void\"\n ^^^^\n source.ts meta.objectliteral.ts\n     ^\n     source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts constant.numeric.decimal.ts\n      ^\n      source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n       ^\n       source.ts meta.objectliteral.ts meta.object.member.ts\n        ^\n        source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n         ^^^^^^^^^^^^^^^^^^^^^^\n         source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                               ^\n                               source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>});\n ^\n source.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.brace.round.ts\n   ^\n   source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue421.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction f(\n        arg: 'x' |\n             'y',\n        arg2: 1 |\n              2) {}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function f(\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n>        arg: 'x' |\n ^^^^^^^^\n source.ts meta.function.ts meta.parameters.ts\n         ^^^\n         source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts string.quoted.single.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n>             'y',\n ^^^^^^^^^^^^^\n source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts string.quoted.single.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n>        arg2: 1 |\n ^^^^^^^^\n source.ts meta.function.ts meta.parameters.ts\n         ^^^^\n         source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts constant.numeric.decimal.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n>              2) {}\n ^^^^^^^^^^^^^^\n source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts constant.numeric.decimal.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue423.baseline.txt",
    "content": "original file\n-----------------------------------\ninterface Foo {\n    bar: string;\n}\n\ntype T = Foo; // line 5\ninterface Bar {\n    foo: Foo;  // line 7\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>interface Foo {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n              ^\n              source.ts meta.interface.ts\n               ^\n               source.ts meta.interface.ts punctuation.definition.block.ts\n>    bar: string;\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^^^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n        ^\n        source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n         ^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n          ^^^^^^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                ^\n                source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>type T = Foo; // line 5\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^\n        source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^^^\n          source.ts meta.type.declaration.ts entity.name.type.ts\n             ^\n             source.ts punctuation.terminator.statement.ts\n              ^\n              source.ts\n               ^^\n               source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                 ^^^^^^^\n                 source.ts comment.line.double-slash.ts\n>interface Bar {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n              ^\n              source.ts meta.interface.ts\n               ^\n               source.ts meta.interface.ts punctuation.definition.block.ts\n>    foo: Foo;  // line 7\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^^^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n        ^\n        source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n         ^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n          ^^^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n             ^\n             source.ts meta.interface.ts punctuation.terminator.statement.ts\n              ^^\n              source.ts meta.interface.ts\n                ^^\n                source.ts meta.interface.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                  ^^^^^^^\n                  source.ts meta.interface.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue427.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction a(): { [key: string]: number } | { [key: string]: number } { throw 1 }\n\nfunction b(a: { [key: string]: number } | { [key: string]: number }): void { }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function a(): { [key: string]: number } | { [key: string]: number } { throw 1 }\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.function.ts meta.return.type.ts\n               ^\n               source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                ^\n                source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts\n                 ^\n                 source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts meta.brace.square.ts\n                  ^^^\n                  source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts variable.parameter.ts\n                     ^\n                     source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts\n                       ^^^^^^\n                       source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                             ^\n                             source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts meta.brace.square.ts\n                              ^\n                              source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.type.annotation.ts\n                                ^^^^^^\n                                source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.type.annotation.ts support.type.primitive.ts\n                                      ^\n                                      source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.type.annotation.ts\n                                       ^\n                                       source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                                        ^\n                                        source.ts meta.function.ts meta.return.type.ts\n                                         ^\n                                         source.ts meta.function.ts meta.return.type.ts keyword.operator.type.ts\n                                          ^\n                                          source.ts meta.function.ts meta.return.type.ts\n                                           ^\n                                           source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                                            ^\n                                            source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts\n                                             ^\n                                             source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts meta.brace.square.ts\n                                              ^^^\n                                              source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts variable.parameter.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts\n                                                   ^^^^^^\n                                                   source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.indexer.declaration.ts meta.brace.square.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.type.annotation.ts\n                                                            ^^^^^^\n                                                            source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.type.annotation.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.return.type.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.block.ts\n                                                                       ^^^^^\n                                                                       source.ts meta.function.ts meta.block.ts keyword.control.trycatch.ts\n                                                                            ^\n                                                                            source.ts meta.function.ts meta.block.ts\n                                                                             ^\n                                                                             source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts\n                                                                              ^\n                                                                              source.ts meta.function.ts meta.block.ts\n                                                                               ^\n                                                                               source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>function b(a: { [key: string]: number } | { [key: string]: number }): void { }\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.brace.square.ts\n                  ^^^\n                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts variable.parameter.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts\n                       ^^^^^^\n                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.brace.square.ts\n                              ^\n                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts\n                                ^^^^^^\n                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts support.type.primitive.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n                                          ^\n                                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                           ^\n                                           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                            ^\n                                            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts\n                                             ^\n                                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.brace.square.ts\n                                              ^^^\n                                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts variable.parameter.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts\n                                                   ^^^^^^\n                                                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.brace.square.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts\n                                                            ^^^^^^\n                                                            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.return.type.ts\n                                                                       ^^^^\n                                                                       source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n                                                                           ^\n                                                                           source.ts meta.function.ts meta.return.type.ts\n                                                                            ^\n                                                                            source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                                             ^\n                                                                             source.ts meta.function.ts meta.block.ts\n                                                                              ^\n                                                                              source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue428.baseline.txt",
    "content": "original file\n-----------------------------------\nexport function funct\n  (a: number): string \n\nexport function funct\n  (a: number): number\n\n// this is implementation\nexport function funct\n  (a: number): any {\n  \n  }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export function funct\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n>  (a: number): string \n ^^\n source.ts meta.function.ts\n   ^\n   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n    ^\n    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n     ^\n     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n      ^\n      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n       ^^^^^^\n       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n              ^\n              source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.function.ts meta.return.type.ts\n                ^^^^^^\n                source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n                      ^\n                      source.ts meta.function.ts meta.return.type.ts\n>\n ^\n source.ts\n>export function funct\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n>  (a: number): number\n ^^\n source.ts meta.function.ts\n   ^\n   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n    ^\n    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n     ^\n     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n      ^\n      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n       ^^^^^^\n       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n              ^\n              source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.function.ts meta.return.type.ts\n                ^^^^^^\n                source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n>\n ^\n source.ts\n>// this is implementation\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>export function funct\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n>  (a: number): any {\n ^^\n source.ts meta.function.ts\n   ^\n   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n    ^\n    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n     ^\n     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n      ^\n      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n       ^^^^^^\n       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n              ^\n              source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.function.ts meta.return.type.ts\n                ^^^\n                source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n                   ^\n                   source.ts meta.function.ts meta.return.type.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  \n ^^^\n source.ts meta.function.ts meta.block.ts\n>  }\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^\n   source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue43.baseline.txt",
    "content": "original file\n-----------------------------------\nvar $this = $(this);\n$this.addClass(\"hehe\");\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var $this = $(this);\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n              ^\n              source.ts meta.var.expr.ts meta.brace.round.ts\n               ^^^^\n               source.ts meta.var.expr.ts variable.language.this.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.brace.round.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n>$this.addClass(\"hehe\");\n ^^^^^\n source.ts meta.function-call.ts variable.other.object.ts\n      ^\n      source.ts meta.function-call.ts punctuation.accessor.ts\n       ^^^^^^^^\n       source.ts meta.function-call.ts entity.name.function.ts\n               ^\n               source.ts meta.brace.round.ts\n                ^\n                source.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                 ^^^^\n                 source.ts string.quoted.double.ts\n                     ^\n                     source.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                      ^\n                      source.ts meta.brace.round.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue430.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\nclass c {\nrender() {\n    return this.props.data.weekDays.filter((weekDay, index) => (this.state.showAll || index < 3)).map((weekDay, key) => (\n      <p key={key}>\n        {weekDay.label} {this.props.data[weekDay.id].start} - {this.props.data[weekDay.id].finish}\n      </p>\n    ))\n  }\n}\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>class c {\n ^^^^^\n source.tsx meta.class.tsx storage.type.class.tsx\n      ^\n      source.tsx meta.class.tsx\n       ^\n       source.tsx meta.class.tsx entity.name.type.class.tsx\n        ^\n        source.tsx meta.class.tsx\n         ^\n         source.tsx meta.class.tsx punctuation.definition.block.tsx\n>render() {\n ^^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.definition.method.tsx entity.name.function.tsx\n       ^\n       source.tsx meta.class.tsx meta.method.declaration.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n        ^\n        source.tsx meta.class.tsx meta.method.declaration.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n         ^\n         source.tsx meta.class.tsx meta.method.declaration.tsx\n          ^\n          source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.definition.block.tsx\n>    return this.props.data.weekDays.filter((weekDay, index) => (this.state.showAll || index < 3)).map((weekDay, key) => (\n ^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n     ^^^^^^\n     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx keyword.control.flow.tsx\n           ^\n           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n            ^^^^\n            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.function-call.tsx variable.language.this.tsx\n                ^\n                source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.function-call.tsx punctuation.accessor.tsx\n                 ^^^^^\n                 source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.function-call.tsx variable.other.object.property.tsx\n                      ^\n                      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.function-call.tsx punctuation.accessor.tsx\n                       ^^^^\n                       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.function-call.tsx support.variable.property.dom.tsx\n                           ^\n                           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.function-call.tsx punctuation.accessor.tsx\n                            ^^^^^^^^\n                            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.function-call.tsx variable.other.object.property.tsx\n                                    ^\n                                    source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.function-call.tsx punctuation.accessor.tsx\n                                     ^^^^^^\n                                     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.function-call.tsx entity.name.function.tsx\n                                           ^\n                                           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.brace.round.tsx\n                                            ^\n                                            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n                                             ^^^^^^^\n                                             source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n                                                    ^\n                                                    source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.parameters.tsx punctuation.separator.parameter.tsx\n                                                     ^\n                                                     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.parameters.tsx\n                                                      ^^^^^\n                                                      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n                                                           ^\n                                                           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n                                                            ^\n                                                            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx\n                                                             ^^\n                                                             source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n                                                               ^\n                                                               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx\n                                                                ^\n                                                                source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.brace.round.tsx\n                                                                 ^^^^\n                                                                 source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx variable.language.this.tsx\n                                                                     ^\n                                                                     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.accessor.tsx\n                                                                      ^^^^^\n                                                                      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx variable.other.object.property.tsx\n                                                                           ^\n                                                                           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.accessor.tsx\n                                                                            ^^^^^^^\n                                                                            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx variable.other.property.tsx\n                                                                                   ^\n                                                                                   source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n                                                                                    ^^\n                                                                                    source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx keyword.operator.logical.tsx\n                                                                                      ^\n                                                                                      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n                                                                                       ^^^^^\n                                                                                       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx variable.other.readwrite.tsx\n                                                                                            ^\n                                                                                            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n                                                                                             ^\n                                                                                             source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx keyword.operator.relational.tsx\n                                                                                              ^\n                                                                                              source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n                                                                                               ^\n                                                                                               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx constant.numeric.decimal.tsx\n                                                                                                ^\n                                                                                                source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.brace.round.tsx\n                                                                                                 ^\n                                                                                                 source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.brace.round.tsx\n                                                                                                  ^\n                                                                                                  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.function-call.tsx punctuation.accessor.tsx\n                                                                                                   ^^^\n                                                                                                   source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.function-call.tsx entity.name.function.tsx\n                                                                                                      ^\n                                                                                                      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.brace.round.tsx\n                                                                                                       ^\n                                                                                                       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n                                                                                                        ^^^^^^^\n                                                                                                        source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n                                                                                                               ^\n                                                                                                               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.parameters.tsx punctuation.separator.parameter.tsx\n                                                                                                                ^\n                                                                                                                source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.parameters.tsx\n                                                                                                                 ^^^\n                                                                                                                 source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n                                                                                                                    ^\n                                                                                                                    source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n                                                                                                                     ^\n                                                                                                                     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx\n                                                                                                                      ^^\n                                                                                                                      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n                                                                                                                        ^\n                                                                                                                        source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx\n                                                                                                                         ^\n                                                                                                                         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.brace.round.tsx\n>      <p key={key}>\n ^^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx\n       ^\n       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n        ^\n        source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx entity.name.tag.tsx\n         ^\n         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx\n          ^^^\n          source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n             ^\n             source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n              ^\n              source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n               ^^^\n               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.readwrite.tsx\n                  ^\n                  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n                   ^\n                   source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>        {weekDay.label} {this.props.data[weekDay.id].start} - {this.props.data[weekDay.id].finish}\n ^^^^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx\n         ^\n         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx punctuation.section.embedded.begin.tsx\n          ^^^^^^^\n          source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx variable.other.object.tsx\n                 ^\n                 source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                  ^^^^^\n                  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx support.variable.property.dom.tsx\n                       ^\n                       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx punctuation.section.embedded.end.tsx\n                        ^\n                        source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx\n                         ^\n                         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx punctuation.section.embedded.begin.tsx\n                          ^^^^\n                          source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx variable.language.this.tsx\n                              ^\n                              source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                               ^^^^^\n                               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx variable.other.object.property.tsx\n                                    ^\n                                    source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                                     ^^^^\n                                     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx support.variable.property.dom.tsx\n                                         ^\n                                         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.brace.square.tsx\n                                          ^^^^^^^\n                                          source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx variable.other.object.tsx\n                                                 ^\n                                                 source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx punctuation.accessor.tsx\n                                                  ^^\n                                                  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx support.variable.property.dom.tsx\n                                                    ^\n                                                    source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.brace.square.tsx\n                                                     ^\n                                                     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                                                      ^^^^^\n                                                      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx support.variable.property.dom.tsx\n                                                           ^\n                                                           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx punctuation.section.embedded.end.tsx\n                                                            ^^^\n                                                            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx\n                                                               ^\n                                                               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx punctuation.section.embedded.begin.tsx\n                                                                ^^^^\n                                                                source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx variable.language.this.tsx\n                                                                    ^\n                                                                    source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                                                                     ^^^^^\n                                                                     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx variable.other.object.property.tsx\n                                                                          ^\n                                                                          source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                                                                           ^^^^\n                                                                           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx support.variable.property.dom.tsx\n                                                                               ^\n                                                                               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.brace.square.tsx\n                                                                                ^^^^^^^\n                                                                                source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx variable.other.object.tsx\n                                                                                       ^\n                                                                                       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx punctuation.accessor.tsx\n                                                                                        ^^\n                                                                                        source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx support.variable.property.dom.tsx\n                                                                                          ^\n                                                                                          source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.brace.square.tsx\n                                                                                           ^\n                                                                                           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                                                                                            ^^^^^^\n                                                                                            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx variable.other.property.tsx\n                                                                                                  ^\n                                                                                                  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx punctuation.section.embedded.end.tsx\n>      </p>\n ^^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx\n       ^^\n       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n         ^\n         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx entity.name.tag.tsx\n          ^\n          source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>    ))\n ^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx\n     ^\n     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.arrow.tsx meta.brace.round.tsx\n      ^\n      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.brace.round.tsx\n>  }\n ^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n   ^\n   source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.definition.block.tsx\n>}\n ^\n source.tsx meta.class.tsx punctuation.definition.block.tsx"
  },
  {
    "path": "tests/baselines/Issue431.baseline.txt",
    "content": "original file\n-----------------------------------\nmyFunc\n(...argName)\n\nfunction otherFunc() {} // <-- Not highlighted.\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>myFunc\n ^^^^^^\n source.ts variable.other.readwrite.ts\n>(...argName)\n ^\n source.ts meta.brace.round.ts\n  ^^^\n  source.ts keyword.operator.spread.ts\n     ^^^^^^^\n     source.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.brace.round.ts\n>\n ^\n source.ts\n>function otherFunc() {} // <-- Not highlighted.\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                     ^\n                     source.ts meta.function.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                        ^\n                        source.ts\n                         ^^\n                         source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                           ^^^^^^^^^^^^^^^^^^^^^\n                           source.ts comment.line.double-slash.ts"
  },
  {
    "path": "tests/baselines/Issue433.baseline.txt",
    "content": "original file\n-----------------------------------\ndeclare module ILogin{\n    export interface Z {}\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>declare module ILogin{\n ^^^^^^^\n source.ts meta.namespace.declaration.ts storage.modifier.ts\n        ^\n        source.ts meta.namespace.declaration.ts\n         ^^^^^^\n         source.ts meta.namespace.declaration.ts storage.type.namespace.ts\n               ^\n               source.ts meta.namespace.declaration.ts\n                ^^^^^^\n                source.ts meta.namespace.declaration.ts entity.name.type.module.ts\n                      ^\n                      source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    export interface Z {}\n ^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.namespace.declaration.ts meta.block.ts meta.interface.ts keyword.control.export.ts\n           ^\n           source.ts meta.namespace.declaration.ts meta.block.ts meta.interface.ts\n            ^^^^^^^^^\n            source.ts meta.namespace.declaration.ts meta.block.ts meta.interface.ts storage.type.interface.ts\n                     ^\n                     source.ts meta.namespace.declaration.ts meta.block.ts meta.interface.ts\n                      ^\n                      source.ts meta.namespace.declaration.ts meta.block.ts meta.interface.ts entity.name.type.interface.ts\n                       ^\n                       source.ts meta.namespace.declaration.ts meta.block.ts meta.interface.ts\n                        ^\n                        source.ts meta.namespace.declaration.ts meta.block.ts meta.interface.ts punctuation.definition.block.ts\n                         ^\n                         source.ts meta.namespace.declaration.ts meta.block.ts meta.interface.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue434.baseline.txt",
    "content": "original file\n-----------------------------------\nexport class SomeClass {\n    private someMethod(): void {\n        if (1\n            < 2) {\n            console.log(\"TypeScript syntax highlighting is broken!\");\n        }\n        else if (1 > 2) {\n            console.log(\"\");\n        }\n    }\n\n    private someOtherMethod() {\n        console.log(\"\");\n        //\n        const q = 1;\n        var s = 2;\n        let e = 3;\n    }\n\n    q = 100;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export class SomeClass {\n ^^^^^^\n source.ts meta.class.ts keyword.control.export.ts\n       ^\n       source.ts meta.class.ts\n        ^^^^^\n        source.ts meta.class.ts storage.type.class.ts\n             ^\n             source.ts meta.class.ts\n              ^^^^^^^^^\n              source.ts meta.class.ts entity.name.type.class.ts\n                       ^\n                       source.ts meta.class.ts\n                        ^\n                        source.ts meta.class.ts punctuation.definition.block.ts\n>    private someMethod(): void {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts\n             ^^^^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                           ^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        if (1\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n>            < 2) {\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.relational.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>            console.log(\"TypeScript syntax highlighting is broken!\");\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.function-call.ts support.class.console.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                     ^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts string.quoted.double.ts\n                                                                   ^\n                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                    ^\n                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                                                     ^\n                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>        }\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>        else if (1 > 2) {\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n              ^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.relational.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>            console.log(\"\");\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.function-call.ts support.class.console.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                     ^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>        }\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>    private someOtherMethod() {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts\n             ^^^^^^^^^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        console.log(\"\");\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts support.class.console.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>        //\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n>        const q = 1;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>        var s = 2;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>        let e = 3;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>    q = 100;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.class.ts meta.field.declaration.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts\n         ^^^\n         source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n            ^\n            source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue435.baseline.txt",
    "content": "original file\n-----------------------------------\n/**\n     * Manually add an item to the uploading queue.\n     *\n     * @param {PIXI.DisplayObject|PIXI.Container|PIXI.BaseTexture|PIXI.Texture|PIXI.Graphics|PIXI.Text|*} item - Object to\n     *        add to the queue\n     * @return {PIXI.CanvasPrepare} Instance of plugin for chaining.\n     */\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/**\n ^^^\n source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>     * Manually add an item to the uploading queue.\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.documentation.ts\n>     *\n ^^^^^^^\n source.ts comment.block.documentation.ts\n>     * @param {PIXI.DisplayObject|PIXI.Container|PIXI.BaseTexture|PIXI.Texture|PIXI.Graphics|PIXI.Text|*} item - Object to\n ^^^^^^^\n source.ts comment.block.documentation.ts\n        ^\n        source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n         ^^^^^\n         source.ts comment.block.documentation.ts storage.type.class.jsdoc\n              ^\n              source.ts comment.block.documentation.ts\n               ^\n               source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                                                                                                         ^\n                                                                                                         source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                                                                                                          ^\n                                                                                                          source.ts comment.block.documentation.ts\n                                                                                                           ^^^^\n                                                                                                           source.ts comment.block.documentation.ts variable.other.jsdoc\n                                                                                                               ^^^^^^^^^^^^^\n                                                                                                               source.ts comment.block.documentation.ts\n>     *        add to the queue\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.documentation.ts\n>     * @return {PIXI.CanvasPrepare} Instance of plugin for chaining.\n ^^^^^^^\n source.ts comment.block.documentation.ts\n        ^\n        source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n         ^^^^^^\n         source.ts comment.block.documentation.ts storage.type.class.jsdoc\n               ^\n               source.ts comment.block.documentation.ts\n                ^\n                source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n                 ^^^^^^^^^^^^^^^^^^\n                 source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                                   ^\n                                   source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                                    ^\n                                    source.ts comment.block.documentation.ts\n                                     ^^^^^^^^\n                                     source.ts comment.block.documentation.ts\n                                             ^^^^^^^^^^^^^^^^^^^^^^^^^\n                                             source.ts comment.block.documentation.ts\n>     */\n ^^^^^\n source.ts comment.block.documentation.ts\n      ^^\n      source.ts comment.block.documentation.ts punctuation.definition.comment.ts"
  },
  {
    "path": "tests/baselines/Issue44.baseline.txt",
    "content": "original file\n-----------------------------------\n\ninterface TestInterface {\n  testvar: string;\n  testfunc(): string;\n}\n\n/*\n\tTesting Comments\n*/\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>\n ^\n source.ts\n>interface TestInterface {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^^^^^^^^^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n                        ^\n                        source.ts meta.interface.ts\n                         ^\n                         source.ts meta.interface.ts punctuation.definition.block.ts\n>  testvar: string;\n ^^\n source.ts meta.interface.ts meta.field.declaration.ts\n   ^^^^^^^\n   source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n            ^^^^^^\n            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.interface.ts punctuation.terminator.statement.ts\n>  testfunc(): string;\n ^^\n source.ts meta.interface.ts meta.method.declaration.ts\n   ^^^^^^^^\n   source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n           ^\n           source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n               ^^^^^^\n               source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>/*\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n>\tTesting Comments\n ^^^^^^^^^^^^^^^^^^\n source.ts comment.block.ts\n>*/\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue441.baseline.txt",
    "content": "original file\n-----------------------------------\nfunc(1)\nasync(1)\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>func(1)\n ^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^\n      source.ts constant.numeric.decimal.ts\n       ^\n       source.ts meta.brace.round.ts\n>async(1)\n ^^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n      ^\n      source.ts meta.brace.round.ts\n       ^\n       source.ts constant.numeric.decimal.ts\n        ^\n        source.ts meta.brace.round.ts"
  },
  {
    "path": "tests/baselines/Issue444.baseline.txt",
    "content": "original file\n-----------------------------------\nvar test = \"123 456\";\n\nif ((test.match(/\\d+/g)[0]) / (test.match(/\\d+/g)[1]) < 1) {\n    return;\n}\n\nif ((test.match(/\\d+/g)[0])/(test.match(/\\d+/g)[1]) < 1) {\n    return;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var test = \"123 456\";\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n             ^^^^^^^\n             source.ts meta.var.expr.ts string.quoted.double.ts\n                    ^\n                    source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>if ((test.match(/\\d+/g)[0]) / (test.match(/\\d+/g)[1]) < 1) {\n ^^\n source.ts keyword.control.conditional.ts\n   ^\n   source.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^\n      source.ts meta.function-call.ts variable.other.object.ts\n          ^\n          source.ts meta.function-call.ts punctuation.accessor.ts\n           ^^^^^\n           source.ts meta.function-call.ts support.function.ts\n                ^\n                source.ts meta.brace.round.ts\n                 ^\n                 source.ts string.regexp.ts punctuation.definition.string.begin.ts\n                  ^^\n                  source.ts string.regexp.ts constant.other.character-class.regexp\n                    ^\n                    source.ts string.regexp.ts keyword.operator.quantifier.regexp\n                     ^\n                     source.ts string.regexp.ts punctuation.definition.string.end.ts\n                      ^\n                      source.ts string.regexp.ts keyword.other.ts\n                       ^\n                       source.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.array.literal.ts meta.brace.square.ts\n                         ^\n                         source.ts meta.array.literal.ts constant.numeric.decimal.ts\n                          ^\n                          source.ts meta.array.literal.ts meta.brace.square.ts\n                           ^\n                           source.ts meta.brace.round.ts\n                            ^\n                            source.ts\n                             ^\n                             source.ts keyword.operator.arithmetic.ts\n                              ^\n                              source.ts\n                               ^\n                               source.ts meta.brace.round.ts\n                                ^^^^\n                                source.ts meta.function-call.ts variable.other.object.ts\n                                    ^\n                                    source.ts meta.function-call.ts punctuation.accessor.ts\n                                     ^^^^^\n                                     source.ts meta.function-call.ts support.function.ts\n                                          ^\n                                          source.ts meta.brace.round.ts\n                                           ^\n                                           source.ts string.regexp.ts punctuation.definition.string.begin.ts\n                                            ^^\n                                            source.ts string.regexp.ts constant.other.character-class.regexp\n                                              ^\n                                              source.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                               ^\n                                               source.ts string.regexp.ts punctuation.definition.string.end.ts\n                                                ^\n                                                source.ts string.regexp.ts keyword.other.ts\n                                                 ^\n                                                 source.ts meta.brace.round.ts\n                                                  ^\n                                                  source.ts meta.array.literal.ts meta.brace.square.ts\n                                                   ^\n                                                   source.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                                    ^\n                                                    source.ts meta.array.literal.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.brace.round.ts\n                                                      ^\n                                                      source.ts\n                                                       ^\n                                                       source.ts keyword.operator.relational.ts\n                                                        ^\n                                                        source.ts\n                                                         ^\n                                                         source.ts constant.numeric.decimal.ts\n                                                          ^\n                                                          source.ts meta.brace.round.ts\n                                                           ^\n                                                           source.ts\n                                                            ^\n                                                            source.ts meta.block.ts punctuation.definition.block.ts\n>    return;\n ^^^^\n source.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>if ((test.match(/\\d+/g)[0])/(test.match(/\\d+/g)[1]) < 1) {\n ^^\n source.ts keyword.control.conditional.ts\n   ^\n   source.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^\n      source.ts meta.function-call.ts variable.other.object.ts\n          ^\n          source.ts meta.function-call.ts punctuation.accessor.ts\n           ^^^^^\n           source.ts meta.function-call.ts support.function.ts\n                ^\n                source.ts meta.brace.round.ts\n                 ^\n                 source.ts string.regexp.ts punctuation.definition.string.begin.ts\n                  ^^\n                  source.ts string.regexp.ts constant.other.character-class.regexp\n                    ^\n                    source.ts string.regexp.ts keyword.operator.quantifier.regexp\n                     ^\n                     source.ts string.regexp.ts punctuation.definition.string.end.ts\n                      ^\n                      source.ts string.regexp.ts keyword.other.ts\n                       ^\n                       source.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.array.literal.ts meta.brace.square.ts\n                         ^\n                         source.ts meta.array.literal.ts constant.numeric.decimal.ts\n                          ^\n                          source.ts meta.array.literal.ts meta.brace.square.ts\n                           ^\n                           source.ts meta.brace.round.ts\n                            ^\n                            source.ts keyword.operator.arithmetic.ts\n                             ^\n                             source.ts meta.brace.round.ts\n                              ^^^^\n                              source.ts meta.function-call.ts variable.other.object.ts\n                                  ^\n                                  source.ts meta.function-call.ts punctuation.accessor.ts\n                                   ^^^^^\n                                   source.ts meta.function-call.ts support.function.ts\n                                        ^\n                                        source.ts meta.brace.round.ts\n                                         ^\n                                         source.ts string.regexp.ts punctuation.definition.string.begin.ts\n                                          ^^\n                                          source.ts string.regexp.ts constant.other.character-class.regexp\n                                            ^\n                                            source.ts string.regexp.ts keyword.operator.quantifier.regexp\n                                             ^\n                                             source.ts string.regexp.ts punctuation.definition.string.end.ts\n                                              ^\n                                              source.ts string.regexp.ts keyword.other.ts\n                                               ^\n                                               source.ts meta.brace.round.ts\n                                                ^\n                                                source.ts meta.array.literal.ts meta.brace.square.ts\n                                                 ^\n                                                 source.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                                  ^\n                                                  source.ts meta.array.literal.ts meta.brace.square.ts\n                                                   ^\n                                                   source.ts meta.brace.round.ts\n                                                    ^\n                                                    source.ts\n                                                     ^\n                                                     source.ts keyword.operator.relational.ts\n                                                      ^\n                                                      source.ts\n                                                       ^\n                                                       source.ts constant.numeric.decimal.ts\n                                                        ^\n                                                        source.ts meta.brace.round.ts\n                                                         ^\n                                                         source.ts\n                                                          ^\n                                                          source.ts meta.block.ts punctuation.definition.block.ts\n>    return;\n ^^^^\n source.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue445.baseline.txt",
    "content": "original file\n-----------------------------------\n/**\n * My awesome function.\n * @param {{id: string, name: string}} object An object with an id and name field.\n */\nfunction myAwesomeFunction(object) {\n  const { name, id } = object.\n  // do stuff with name and id\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/**\n ^^^\n source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n> * My awesome function.\n ^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.documentation.ts\n> * @param {{id: string, name: string}} object An object with an id and name field.\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n          ^\n          source.ts comment.block.documentation.ts\n           ^\n           source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n            ^\n            source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n             ^^^^^^^^^^^^^^^^^^^^^^^^\n             source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                                     ^\n                                     source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                                      ^\n                                      source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                                       ^\n                                       source.ts comment.block.documentation.ts\n                                        ^^^^^^\n                                        source.ts comment.block.documentation.ts variable.other.jsdoc\n                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                              source.ts comment.block.documentation.ts\n> */\n ^\n source.ts comment.block.documentation.ts\n  ^^\n  source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>function myAwesomeFunction(object) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^^^^^^^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                           ^\n                           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                            ^^^^^^\n                            source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                  ^\n                                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                   ^\n                                   source.ts meta.function.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  const { name, id } = object.\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^\n   source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n           ^^^^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.constant.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                 ^^\n                 source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                        ^^^^^^\n                        source.ts meta.function.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n>  // do stuff with name and id\n ^^\n source.ts meta.function.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n   ^^\n   source.ts meta.function.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n     ^^^^^^^^^^^^^^^^^^^^^^^^^^\n     source.ts meta.function.ts meta.block.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue450.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has type assertion\nlet a = true ? <number>1 : <number>2;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has type assertion\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>let a = true ? <number>1 : <number>2;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^\n         source.ts meta.var.expr.ts constant.language.boolean.true.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.ternary.ts\n               ^\n               source.ts meta.var.expr.ts cast.expr.ts\n                ^\n                source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                 ^^^^^^\n                 source.ts meta.var.expr.ts cast.expr.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                        ^\n                        source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                         ^\n                         source.ts meta.var.expr.ts\n                          ^\n                          source.ts meta.var.expr.ts keyword.operator.ternary.ts\n                           ^\n                           source.ts meta.var.expr.ts cast.expr.ts\n                            ^\n                            source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                             ^^^^^^\n                             source.ts meta.var.expr.ts cast.expr.ts support.type.primitive.ts\n                                   ^\n                                   source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                                    ^\n                                    source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                     ^\n                                     source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue452.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Test<A, B>{}\nclass Favorite extends Test<\n  string | number,\n  undefined\n> {\n  // class content  \n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Test<A, B>{}\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n           ^\n           source.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n            ^\n            source.ts meta.class.ts meta.type.parameters.ts entity.name.type.ts\n             ^\n             source.ts meta.class.ts meta.type.parameters.ts punctuation.separator.comma.ts\n              ^\n              source.ts meta.class.ts meta.type.parameters.ts\n               ^\n               source.ts meta.class.ts meta.type.parameters.ts entity.name.type.ts\n                ^\n                source.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                 ^\n                 source.ts meta.class.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.class.ts punctuation.definition.block.ts\n>class Favorite extends Test<\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n               ^\n               source.ts meta.class.ts\n                ^^^^^^^\n                source.ts meta.class.ts storage.modifier.ts\n                       ^\n                       source.ts meta.class.ts\n                        ^^^^\n                        source.ts meta.class.ts entity.other.inherited-class.ts\n                            ^\n                            source.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n>  string | number,\n ^^\n source.ts meta.class.ts meta.type.parameters.ts\n   ^^^^^^\n   source.ts meta.class.ts meta.type.parameters.ts support.type.primitive.ts\n         ^\n         source.ts meta.class.ts meta.type.parameters.ts\n          ^\n          source.ts meta.class.ts meta.type.parameters.ts keyword.operator.type.ts\n           ^\n           source.ts meta.class.ts meta.type.parameters.ts\n            ^^^^^^\n            source.ts meta.class.ts meta.type.parameters.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.class.ts meta.type.parameters.ts punctuation.separator.comma.ts\n>  undefined\n ^^\n source.ts meta.class.ts meta.type.parameters.ts\n   ^^^^^^^^^\n   source.ts meta.class.ts meta.type.parameters.ts support.type.builtin.ts\n>> {\n ^\n source.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n  ^\n  source.ts meta.class.ts\n   ^\n   source.ts meta.class.ts punctuation.definition.block.ts\n>  // class content  \n ^^\n source.ts meta.class.ts punctuation.whitespace.comment.leading.ts\n   ^^\n   source.ts meta.class.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n     ^^^^^^^^^^^^^^^^\n     source.ts meta.class.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue453.baseline.txt",
    "content": "original file\n-----------------------------------\ntype Resolve = () => number;\n\nclass Test {\n  first(values: Map<string, Resolve>): number {\n    return values.has('a') ? values.get('a')!() : 0;\n  }\n\n  second(): string {\n    return 'foo';\n  }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type Resolve = () => number;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n             ^\n             source.ts meta.type.declaration.ts\n              ^\n              source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.type.declaration.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^^\n                   source.ts meta.type.declaration.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.function.return.ts\n                      ^^^^^^\n                      source.ts meta.type.declaration.ts meta.type.function.return.ts support.type.primitive.ts\n                            ^\n                            source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>class Test {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n           ^\n           source.ts meta.class.ts\n            ^\n            source.ts meta.class.ts punctuation.definition.block.ts\n>  first(values: Map<string, Resolve>): number {\n ^^\n source.ts meta.class.ts meta.method.declaration.ts\n   ^^^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                 ^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                     ^^^^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts support.type.primitive.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts\n                             ^^^^^^^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts entity.name.type.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                        ^^^^^^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    return values.has('a') ? values.get('a')!() : 0;\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n            ^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts support.function.dom.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.ternary.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                              ^^^^^^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                     ^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts support.function.dom.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts keyword.operator.definiteassignment.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.ternary.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>  }\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>  second(): string {\n ^^\n source.ts meta.class.ts meta.method.declaration.ts\n   ^^^^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    return 'foo';\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n             ^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>  }\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue455.baseline.txt",
    "content": "original file\n-----------------------------------\nfunc(function () // }\n{\n    if (false)\n        return 1\n    else\n        return 2\n});\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>func(function () // }\n ^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^^^^\n      source.ts meta.function.expression.ts storage.type.function.ts\n              ^\n              source.ts meta.function.expression.ts\n               ^\n               source.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                 ^\n                 source.ts meta.function.expression.ts\n                  ^^\n                  source.ts meta.function.expression.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                    ^^^\n                    source.ts meta.function.expression.ts comment.line.double-slash.ts\n>{\n ^\n source.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>    if (false)\n ^^^^\n source.ts meta.function.expression.ts meta.block.ts\n     ^^\n     source.ts meta.function.expression.ts meta.block.ts keyword.control.conditional.ts\n       ^\n       source.ts meta.function.expression.ts meta.block.ts\n        ^\n        source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n         ^^^^^\n         source.ts meta.function.expression.ts meta.block.ts constant.language.boolean.false.ts\n              ^\n              source.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n>        return 1\n ^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.function.expression.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.function.expression.ts meta.block.ts\n                ^\n                source.ts meta.function.expression.ts meta.block.ts constant.numeric.decimal.ts\n>    else\n ^^^^\n source.ts meta.function.expression.ts meta.block.ts\n     ^^^^\n     source.ts meta.function.expression.ts meta.block.ts keyword.control.conditional.ts\n>        return 2\n ^^^^^^^^\n source.ts meta.function.expression.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.function.expression.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.function.expression.ts meta.block.ts\n                ^\n                source.ts meta.function.expression.ts meta.block.ts constant.numeric.decimal.ts\n>});\n ^\n source.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.brace.round.ts\n   ^\n   source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue458.baseline.txt",
    "content": "original file\n-----------------------------------\nexport class Blah {\n  get () {}\n}\nconst x = {\n  get () {}\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export class Blah {\n ^^^^^^\n source.ts meta.class.ts keyword.control.export.ts\n       ^\n       source.ts meta.class.ts\n        ^^^^^\n        source.ts meta.class.ts storage.type.class.ts\n             ^\n             source.ts meta.class.ts\n              ^^^^\n              source.ts meta.class.ts entity.name.type.class.ts\n                  ^\n                  source.ts meta.class.ts\n                   ^\n                   source.ts meta.class.ts punctuation.definition.block.ts\n>  get () {}\n ^^\n source.ts meta.class.ts meta.method.declaration.ts\n   ^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>const x = {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>  get () {}\n ^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n   ^^^\n   source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue460.baseline.txt",
    "content": "original file\n-----------------------------------\n// single-line comment\n/* multi-line comment */\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// single-line comment\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>/* multi-line comment */\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.block.ts\n                       ^^\n                       source.ts comment.block.ts punctuation.definition.comment.ts"
  },
  {
    "path": "tests/baselines/Issue461.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\nclass Foo {\n  renderProgress = () =>\n    <b className={this.props.className}>x</b>\n\n  render () {\n    return (\n      <div className={this.state.loaded ? '' : styles.containerUnloaded}>\n        {!this.state.loaded && this.renderProgress()}\n      </div>\n    )\n  }\n}\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>class Foo {\n ^^^^^\n source.tsx meta.class.tsx storage.type.class.tsx\n      ^\n      source.tsx meta.class.tsx\n       ^^^\n       source.tsx meta.class.tsx entity.name.type.class.tsx\n          ^\n          source.tsx meta.class.tsx\n           ^\n           source.tsx meta.class.tsx punctuation.definition.block.tsx\n>  renderProgress = () =>\n ^^\n source.tsx meta.class.tsx meta.field.declaration.tsx\n   ^^^^^^^^^^^^^^\n   source.tsx meta.class.tsx meta.field.declaration.tsx meta.definition.property.tsx entity.name.function.tsx\n                 ^\n                 source.tsx meta.class.tsx meta.field.declaration.tsx\n                  ^\n                  source.tsx meta.class.tsx meta.field.declaration.tsx keyword.operator.assignment.tsx\n                   ^\n                   source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx\n                    ^\n                    source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n                     ^\n                     source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n                      ^\n                      source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx\n                       ^^\n                       source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n>    <b className={this.props.className}>x</b>\n ^^^^\n source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx\n     ^\n     source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n      ^\n      source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.tag.tsx entity.name.tag.tsx\n       ^\n       source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx\n        ^^^^^^^^^\n        source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                 ^\n                 source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                  ^\n                  source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n                   ^^^^\n                   source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.language.this.tsx\n                       ^\n                       source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                        ^^^^^\n                        source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.object.property.tsx\n                             ^\n                             source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                              ^^^^^^^^^\n                              source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx support.variable.property.dom.tsx\n                                       ^\n                                       source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n                                        ^\n                                        source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                         ^\n                                         source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.tag.tsx meta.jsx.children.tsx\n                                          ^^\n                                          source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                                            ^\n                                            source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.tag.tsx entity.name.tag.tsx\n                                             ^\n                                             source.tsx meta.class.tsx meta.field.declaration.tsx meta.arrow.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>\n ^\n source.tsx meta.class.tsx\n>  render () {\n ^^\n source.tsx meta.class.tsx meta.method.declaration.tsx\n   ^^^^^^\n   source.tsx meta.class.tsx meta.method.declaration.tsx meta.definition.method.tsx entity.name.function.tsx\n         ^\n         source.tsx meta.class.tsx meta.method.declaration.tsx\n          ^\n          source.tsx meta.class.tsx meta.method.declaration.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n           ^\n           source.tsx meta.class.tsx meta.method.declaration.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n            ^\n            source.tsx meta.class.tsx meta.method.declaration.tsx\n             ^\n             source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.definition.block.tsx\n>    return (\n ^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n     ^^^^^^\n     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx keyword.control.flow.tsx\n           ^\n           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n            ^\n            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.brace.round.tsx\n>      <div className={this.state.loaded ? '' : styles.containerUnloaded}>\n ^^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n       ^\n       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n        ^^^\n        source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx entity.name.tag.tsx\n           ^\n           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx\n            ^^^^^^^^^\n            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                     ^\n                     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                      ^\n                      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n                       ^^^^\n                       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.language.this.tsx\n                           ^\n                           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                            ^^^^^\n                            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.object.property.tsx\n                                 ^\n                                 source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                                  ^^^^^^\n                                  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.property.tsx\n                                        ^\n                                        source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                         ^\n                                         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.ternary.tsx\n                                          ^\n                                          source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                           ^\n                                           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                                            ^\n                                            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                             ^\n                                             source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                              ^\n                                              source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.ternary.tsx\n                                               ^\n                                               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                                ^^^^^^\n                                                source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.object.tsx\n                                                      ^\n                                                      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                                                       ^^^^^^^^^^^^^^^^^\n                                                       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.property.tsx\n                                                                        ^\n                                                                        source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n                                                                         ^\n                                                                         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>        {!this.state.loaded && this.renderProgress()}\n ^^^^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx\n         ^\n         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx punctuation.section.embedded.begin.tsx\n          ^\n          source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx keyword.operator.logical.tsx\n           ^^^^\n           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx variable.language.this.tsx\n               ^\n               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                ^^^^^\n                source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx variable.other.object.property.tsx\n                     ^\n                     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                      ^^^^^^\n                      source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx variable.other.property.tsx\n                            ^\n                            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx\n                             ^^\n                             source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx keyword.operator.logical.tsx\n                               ^\n                               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx\n                                ^^^^\n                                source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx variable.language.this.tsx\n                                    ^\n                                    source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx punctuation.accessor.tsx\n                                     ^^^^^^^^^^^^^^\n                                     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx entity.name.function.tsx\n                                                   ^\n                                                   source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.brace.round.tsx\n                                                    ^\n                                                    source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.brace.round.tsx\n                                                     ^\n                                                     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx punctuation.section.embedded.end.tsx\n>      </div>\n ^^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx\n       ^^\n       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n         ^^^\n         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx entity.name.tag.tsx\n            ^\n            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>    )\n ^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n     ^\n     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.brace.round.tsx\n>  }\n ^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n   ^\n   source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.definition.block.tsx\n>}\n ^\n source.tsx meta.class.tsx punctuation.definition.block.tsx"
  },
  {
    "path": "tests/baselines/Issue463.baseline.txt",
    "content": "original file\n-----------------------------------\nconst x =\n    1\nif (x) return x\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const x =\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n>    1\n ^^^^\n source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts constant.numeric.decimal.ts\n>if (x) return x\n ^^\n source.ts keyword.control.conditional.ts\n   ^\n   source.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^\n     source.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.brace.round.ts\n       ^\n       source.ts\n        ^^^^^^\n        source.ts keyword.control.flow.ts\n              ^\n              source.ts\n               ^\n               source.ts variable.other.readwrite.ts"
  },
  {
    "path": "tests/baselines/Issue466.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction foo(this: number, x: number) {\n\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function foo(this: number, x: number) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^^^^\n              source.ts meta.function.ts meta.parameters.ts variable.parameter.ts variable.language.this.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                    ^^^^^^\n                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                           ^\n                           source.ts meta.function.ts meta.parameters.ts\n                            ^\n                            source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                              ^\n                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                               ^^^^^^\n                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                      ^\n                                      source.ts meta.function.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.function.ts meta.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue468.baseline.txt",
    "content": "original file\n-----------------------------------\n({ 'foo\\'': 'bar' })\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>({ 'foo\\'': 'bar' })\n ^\n source.ts meta.brace.round.ts\n  ^\n  source.ts meta.objectliteral.ts punctuation.definition.block.ts\n   ^\n   source.ts meta.objectliteral.ts\n    ^\n    source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n     ^^^\n     source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts\n        ^^\n        source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts constant.character.escape.ts\n          ^\n          source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts punctuation.definition.string.end.ts\n           ^\n           source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n            ^\n            source.ts meta.objectliteral.ts meta.object.member.ts\n             ^\n             source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n              ^^^\n              source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n                 ^\n                 source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                  ^\n                  source.ts meta.objectliteral.ts meta.object.member.ts\n                   ^\n                   source.ts meta.objectliteral.ts punctuation.definition.block.ts\n                    ^\n                    source.ts meta.brace.round.ts"
  },
  {
    "path": "tests/baselines/Issue470.baseline.txt",
    "content": "original file\n-----------------------------------\nvar x = await import(\"./file1\");\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var x = await import(\"./file1\");\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^\n         source.ts meta.var.expr.ts keyword.control.flow.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^^^^^\n               source.ts meta.var.expr.ts meta.function-call.ts keyword.operator.expression.import.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.brace.round.ts\n                      ^\n                      source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                       ^^^^^^^\n                       source.ts meta.var.expr.ts string.quoted.double.ts\n                              ^\n                              source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue471.baseline.txt",
    "content": "original file\n-----------------------------------\nconst foo =\n    true || `${'hello'}.txt`\n\nfunction syntaxHighlightingIsBroken() {\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const foo =\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n>    true || `${'hello'}.txt`\n ^^^^\n source.ts meta.var.expr.ts\n     ^^^^\n     source.ts meta.var.expr.ts constant.language.boolean.true.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^^\n          source.ts meta.var.expr.ts keyword.operator.logical.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts\n              ^^\n              source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                ^\n                source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                 ^^^^^\n                 source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.single.ts\n                      ^\n                      source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                       ^\n                       source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                        ^^^^\n                        source.ts meta.var.expr.ts string.template.ts\n                            ^\n                            source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts\n>\n ^\n source.ts\n>function syntaxHighlightingIsBroken() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                    ^\n                                    source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                      ^\n                                      source.ts meta.function.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue472.baseline.txt",
    "content": "original file\n-----------------------------------\ninterface I {\n\t bar1: {\n\t \tquantity: string\n\t },\n\t bar2:\n\t {\n\t \tquantity: string\n\t }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>interface I {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^\n             source.ts meta.interface.ts punctuation.definition.block.ts\n>\t bar1: {\n ^^\n source.ts meta.interface.ts meta.field.declaration.ts\n   ^^^^\n   source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n       ^\n       source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n         ^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>\t \tquantity: string\n ^^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n    ^^^^^^^^\n    source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n             ^\n             source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n              ^^^^^^\n              source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>\t },\n ^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts\n   ^\n   source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n    ^\n    source.ts meta.interface.ts punctuation.separator.comma.ts\n>\t bar2:\n ^^\n source.ts meta.interface.ts meta.field.declaration.ts\n   ^^^^\n   source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n       ^\n       source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n>\t {\n ^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n   ^\n   source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>\t \tquantity: string\n ^^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n    ^^^^^^^^\n    source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n             ^\n             source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n              ^^^^^^\n              source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>\t }\n ^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts\n   ^\n   source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue476.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Bug {\n\tstatic asdf(o, o2) {\n\t\tBug.asdf(\"\", '`')\n\t\treturn {\n\t\t\t[\n\t\t\t\t\"a\"\n\t\t\t]:\n\t\t\t[\n\t\t\t\tBug.asdf(\"\", '`')\n\t\t\t]\n\t\t};\n\t}\n\t\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Bug {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^\n          source.ts meta.class.ts\n           ^\n           source.ts meta.class.ts punctuation.definition.block.ts\n>\tstatic asdf(o, o2) {\n ^\n source.ts meta.class.ts\n  ^^^^^^\n  source.ts meta.class.ts storage.modifier.ts\n        ^\n        source.ts meta.class.ts\n         ^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                 ^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\t\tBug.asdf(\"\", '`')\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n       ^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.separator.comma.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n>\t\treturn {\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n>\t\t\t[\n ^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.brace.square.ts\n>\t\t\t\t\"a\"\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts string.quoted.double.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>\t\t\t]:\n ^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.brace.square.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n>\t\t\t[\n ^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.brace.square.ts\n>\t\t\t\tBug.asdf(\"\", '`')\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts\n     ^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.brace.round.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts punctuation.separator.comma.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts string.quoted.single.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.brace.round.ts\n>\t\t\t]\n ^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.brace.square.ts\n>\t\t};\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\t}\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\t\n ^^\n source.ts meta.class.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue477.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction* fn1() {}\nfunction * fn2() {}\nfunction *fn3() {}\n\nconst foo = {\n    * fn4() {},\n    *fn5() {},\n    fn6: function*() {}, // Incorrect\n    fn7: function* () {}, // Incorrect\n    fn8: function *() {},\n}\n\nclass Bar {\n    * fn9() {}\n    *fn10() {}\n    fn11 = function*() {} // Incorrect\n    fn12 = function* () {} // Incorrect\n    fn13 = function *() {}\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function* fn1() {}\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts keyword.generator.asterisk.ts\n          ^\n          source.ts meta.function.ts\n           ^^^\n           source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.function.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>function * fn2() {}\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts keyword.generator.asterisk.ts\n           ^\n           source.ts meta.function.ts\n            ^^^\n            source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>function *fn3() {}\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts keyword.generator.asterisk.ts\n           ^^^\n           source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.function.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>const foo = {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    * fn4() {},\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts keyword.generator.asterisk.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>    *fn5() {},\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts keyword.generator.asterisk.ts\n      ^^^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>    fn6: function*() {}, // Incorrect\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts entity.name.function.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n          ^^^^^^^^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts storage.type.function.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts keyword.generator.asterisk.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts\n                          ^^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                            ^^^^^^^^^^\n                            source.ts meta.var.expr.ts meta.objectliteral.ts comment.line.double-slash.ts\n>    fn7: function* () {}, // Incorrect\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts entity.name.function.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n          ^^^^^^^^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts storage.type.function.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts keyword.generator.asterisk.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts\n                           ^^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                             ^^^^^^^^^^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts comment.line.double-slash.ts\n>    fn8: function *() {},\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts entity.name.function.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n          ^^^^^^^^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts storage.type.function.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts keyword.generator.asterisk.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>class Bar {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^\n          source.ts meta.class.ts\n           ^\n           source.ts meta.class.ts punctuation.definition.block.ts\n>    * fn9() {}\n ^^^^\n source.ts meta.class.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts keyword.generator.asterisk.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts\n       ^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    *fn10() {}\n ^^^^\n source.ts meta.class.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts keyword.generator.asterisk.ts\n      ^^^^\n      source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    fn11 = function*() {} // Incorrect\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^^^^^^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts storage.type.function.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts keyword.generator.asterisk.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts\n                           ^^\n                           source.ts meta.class.ts meta.field.declaration.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                             ^^^^^^^^^^\n                             source.ts meta.class.ts meta.field.declaration.ts comment.line.double-slash.ts\n>    fn12 = function* () {} // Incorrect\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^^^^^^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts storage.type.function.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts keyword.generator.asterisk.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts\n                            ^^\n                            source.ts meta.class.ts meta.field.declaration.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                              ^^^^^^^^^^\n                              source.ts meta.class.ts meta.field.declaration.ts comment.line.double-slash.ts\n>    fn13 = function *() {}\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^^^^^^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts storage.type.function.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts keyword.generator.asterisk.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue478.baseline.txt",
    "content": "original file\n-----------------------------------\n// Before\na = (b: string, c: number) => {\n  console.log(b, c);\n}\n\nd = (e: string) => (\n  f: G<H>\n) => {\n  console.log(e, f);\n};\n\n// After\na = (b: string, c: number) => {\n  console.log(b, c);\n}\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// Before\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>a = (b: string, c: number) => {\n ^\n source.tsx entity.name.function.tsx\n  ^\n  source.tsx\n   ^\n   source.tsx keyword.operator.assignment.tsx\n    ^\n    source.tsx meta.arrow.tsx\n     ^\n     source.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n      ^\n      source.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n       ^\n       source.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n        ^\n        source.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx\n         ^^^^^^\n         source.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx support.type.primitive.tsx\n               ^\n               source.tsx meta.arrow.tsx meta.parameters.tsx punctuation.separator.parameter.tsx\n                ^\n                source.tsx meta.arrow.tsx meta.parameters.tsx\n                 ^\n                 source.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n                  ^\n                  source.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n                   ^\n                   source.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx\n                    ^^^^^^\n                    source.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx support.type.primitive.tsx\n                          ^\n                          source.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n                           ^\n                           source.tsx meta.arrow.tsx\n                            ^^\n                            source.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n                              ^\n                              source.tsx meta.arrow.tsx\n                               ^\n                               source.tsx meta.arrow.tsx meta.block.tsx punctuation.definition.block.tsx\n>  console.log(b, c);\n ^^\n source.tsx meta.arrow.tsx meta.block.tsx\n   ^^^^^^^\n   source.tsx meta.arrow.tsx meta.block.tsx meta.function-call.tsx support.class.console.tsx\n          ^\n          source.tsx meta.arrow.tsx meta.block.tsx meta.function-call.tsx punctuation.accessor.tsx\n           ^^^\n           source.tsx meta.arrow.tsx meta.block.tsx meta.function-call.tsx support.function.console.tsx\n              ^\n              source.tsx meta.arrow.tsx meta.block.tsx meta.brace.round.tsx\n               ^\n               source.tsx meta.arrow.tsx meta.block.tsx variable.other.readwrite.tsx\n                ^\n                source.tsx meta.arrow.tsx meta.block.tsx punctuation.separator.comma.tsx\n                 ^\n                 source.tsx meta.arrow.tsx meta.block.tsx\n                  ^\n                  source.tsx meta.arrow.tsx meta.block.tsx variable.other.readwrite.tsx\n                   ^\n                   source.tsx meta.arrow.tsx meta.block.tsx meta.brace.round.tsx\n                    ^\n                    source.tsx meta.arrow.tsx meta.block.tsx punctuation.terminator.statement.tsx\n>}\n ^\n source.tsx meta.arrow.tsx meta.block.tsx punctuation.definition.block.tsx\n>\n ^\n source.tsx\n>d = (e: string) => (\n ^\n source.tsx entity.name.function.tsx\n  ^\n  source.tsx\n   ^\n   source.tsx keyword.operator.assignment.tsx\n    ^\n    source.tsx meta.arrow.tsx\n     ^\n     source.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n      ^\n      source.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n       ^\n       source.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n        ^\n        source.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx\n         ^^^^^^\n         source.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx support.type.primitive.tsx\n               ^\n               source.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n                ^\n                source.tsx meta.arrow.tsx\n                 ^^\n                 source.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n                   ^\n                   source.tsx meta.arrow.tsx\n                    ^\n                    source.tsx meta.arrow.tsx meta.brace.round.tsx\n>  f: G<H>\n ^^\n source.tsx meta.arrow.tsx\n   ^\n   source.tsx meta.arrow.tsx variable.parameter.tsx\n    ^\n    source.tsx meta.arrow.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n     ^\n     source.tsx meta.arrow.tsx meta.type.annotation.tsx\n      ^\n      source.tsx meta.arrow.tsx meta.type.annotation.tsx entity.name.type.tsx\n       ^\n       source.tsx meta.arrow.tsx meta.type.annotation.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n        ^\n        source.tsx meta.arrow.tsx meta.type.annotation.tsx meta.type.parameters.tsx entity.name.type.tsx\n         ^\n         source.tsx meta.arrow.tsx meta.type.annotation.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n>) => {\n ^\n source.tsx meta.arrow.tsx meta.brace.round.tsx\n  ^\n  source.tsx\n   ^^\n   source.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n     ^\n     source.tsx meta.arrow.tsx\n      ^\n      source.tsx meta.arrow.tsx meta.block.tsx punctuation.definition.block.tsx\n>  console.log(e, f);\n ^^\n source.tsx meta.arrow.tsx meta.block.tsx\n   ^^^^^^^\n   source.tsx meta.arrow.tsx meta.block.tsx meta.function-call.tsx support.class.console.tsx\n          ^\n          source.tsx meta.arrow.tsx meta.block.tsx meta.function-call.tsx punctuation.accessor.tsx\n           ^^^\n           source.tsx meta.arrow.tsx meta.block.tsx meta.function-call.tsx support.function.console.tsx\n              ^\n              source.tsx meta.arrow.tsx meta.block.tsx meta.brace.round.tsx\n               ^\n               source.tsx meta.arrow.tsx meta.block.tsx variable.other.readwrite.tsx\n                ^\n                source.tsx meta.arrow.tsx meta.block.tsx punctuation.separator.comma.tsx\n                 ^\n                 source.tsx meta.arrow.tsx meta.block.tsx\n                  ^\n                  source.tsx meta.arrow.tsx meta.block.tsx variable.other.readwrite.tsx\n                   ^\n                   source.tsx meta.arrow.tsx meta.block.tsx meta.brace.round.tsx\n                    ^\n                    source.tsx meta.arrow.tsx meta.block.tsx punctuation.terminator.statement.tsx\n>};\n ^\n source.tsx meta.arrow.tsx meta.block.tsx punctuation.definition.block.tsx\n  ^\n  source.tsx punctuation.terminator.statement.tsx\n>\n ^\n source.tsx\n>// After\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>a = (b: string, c: number) => {\n ^\n source.tsx entity.name.function.tsx\n  ^\n  source.tsx\n   ^\n   source.tsx keyword.operator.assignment.tsx\n    ^\n    source.tsx meta.arrow.tsx\n     ^\n     source.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n      ^\n      source.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n       ^\n       source.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n        ^\n        source.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx\n         ^^^^^^\n         source.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx support.type.primitive.tsx\n               ^\n               source.tsx meta.arrow.tsx meta.parameters.tsx punctuation.separator.parameter.tsx\n                ^\n                source.tsx meta.arrow.tsx meta.parameters.tsx\n                 ^\n                 source.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n                  ^\n                  source.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n                   ^\n                   source.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx\n                    ^^^^^^\n                    source.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx support.type.primitive.tsx\n                          ^\n                          source.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n                           ^\n                           source.tsx meta.arrow.tsx\n                            ^^\n                            source.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n                              ^\n                              source.tsx meta.arrow.tsx\n                               ^\n                               source.tsx meta.arrow.tsx meta.block.tsx punctuation.definition.block.tsx\n>  console.log(b, c);\n ^^\n source.tsx meta.arrow.tsx meta.block.tsx\n   ^^^^^^^\n   source.tsx meta.arrow.tsx meta.block.tsx meta.function-call.tsx support.class.console.tsx\n          ^\n          source.tsx meta.arrow.tsx meta.block.tsx meta.function-call.tsx punctuation.accessor.tsx\n           ^^^\n           source.tsx meta.arrow.tsx meta.block.tsx meta.function-call.tsx support.function.console.tsx\n              ^\n              source.tsx meta.arrow.tsx meta.block.tsx meta.brace.round.tsx\n               ^\n               source.tsx meta.arrow.tsx meta.block.tsx variable.other.readwrite.tsx\n                ^\n                source.tsx meta.arrow.tsx meta.block.tsx punctuation.separator.comma.tsx\n                 ^\n                 source.tsx meta.arrow.tsx meta.block.tsx\n                  ^\n                  source.tsx meta.arrow.tsx meta.block.tsx variable.other.readwrite.tsx\n                   ^\n                   source.tsx meta.arrow.tsx meta.block.tsx meta.brace.round.tsx\n                    ^\n                    source.tsx meta.arrow.tsx meta.block.tsx punctuation.terminator.statement.tsx\n>}\n ^\n source.tsx meta.arrow.tsx meta.block.tsx punctuation.definition.block.tsx"
  },
  {
    "path": "tests/baselines/Issue480.baseline.txt",
    "content": "original file\n-----------------------------------\n/* @internal */\nexport interface Pattern {\n        prefix: string;\n        suffix: string;\n}\n\n// @internal\nexport interface Pattern2 {\n        prefix: string;\n        suffix: string;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/* @internal */\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^\n   source.ts comment.block.ts\n    ^\n    source.ts comment.block.ts storage.type.internaldeclaration.ts punctuation.decorator.internaldeclaration.ts\n     ^^^^^^^^\n     source.ts comment.block.ts storage.type.internaldeclaration.ts\n             ^\n             source.ts comment.block.ts\n              ^^\n              source.ts comment.block.ts punctuation.definition.comment.ts\n>export interface Pattern {\n ^^^^^^\n source.ts meta.interface.ts keyword.control.export.ts\n       ^\n       source.ts meta.interface.ts\n        ^^^^^^^^^\n        source.ts meta.interface.ts storage.type.interface.ts\n                 ^\n                 source.ts meta.interface.ts\n                  ^^^^^^^\n                  source.ts meta.interface.ts entity.name.type.interface.ts\n                         ^\n                         source.ts meta.interface.ts\n                          ^\n                          source.ts meta.interface.ts punctuation.definition.block.ts\n>        prefix: string;\n ^^^^^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n         ^^^^^^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                 ^^^^^^\n                 source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.interface.ts punctuation.terminator.statement.ts\n>        suffix: string;\n ^^^^^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n         ^^^^^^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                 ^^^^^^\n                 source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>// @internal\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^\n   source.ts comment.line.double-slash.ts\n    ^\n    source.ts comment.line.double-slash.ts storage.type.internaldeclaration.ts punctuation.decorator.internaldeclaration.ts\n     ^^^^^^^^\n     source.ts comment.line.double-slash.ts storage.type.internaldeclaration.ts\n>export interface Pattern2 {\n ^^^^^^\n source.ts meta.interface.ts keyword.control.export.ts\n       ^\n       source.ts meta.interface.ts\n        ^^^^^^^^^\n        source.ts meta.interface.ts storage.type.interface.ts\n                 ^\n                 source.ts meta.interface.ts\n                  ^^^^^^^^\n                  source.ts meta.interface.ts entity.name.type.interface.ts\n                          ^\n                          source.ts meta.interface.ts\n                           ^\n                           source.ts meta.interface.ts punctuation.definition.block.ts\n>        prefix: string;\n ^^^^^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n         ^^^^^^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                 ^^^^^^\n                 source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.interface.ts punctuation.terminator.statement.ts\n>        suffix: string;\n ^^^^^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n         ^^^^^^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                 ^^^^^^\n                 source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue482.baseline.txt",
    "content": "original file\n-----------------------------------\nlet a = 1;\nlet b = [new Object]\nlet c = 1\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let a = 1;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts constant.numeric.decimal.ts\n          ^\n          source.ts punctuation.terminator.statement.ts\n>let b = [new Object]\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts meta.array.literal.ts\n         ^\n         source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n          ^^^\n          source.ts meta.var.expr.ts meta.array.literal.ts new.expr.ts keyword.operator.new.ts\n             ^\n             source.ts meta.var.expr.ts meta.array.literal.ts new.expr.ts\n              ^^^^^^\n              source.ts meta.var.expr.ts meta.array.literal.ts new.expr.ts support.class.builtin.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n>let c = 1\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts constant.numeric.decimal.ts"
  },
  {
    "path": "tests/baselines/Issue484.baseline.txt",
    "content": "original file\n-----------------------------------\ndeclare module 'foo';\ndeclare module 'bar';\ndeclare module 'baz';\ninterface Foo {\n    bar: string;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>declare module 'foo';\n ^^^^^^^\n source.ts meta.namespace.declaration.ts storage.modifier.ts\n        ^\n        source.ts meta.namespace.declaration.ts\n         ^^^^^^\n         source.ts meta.namespace.declaration.ts storage.type.namespace.ts\n               ^\n               source.ts meta.namespace.declaration.ts\n                ^\n                source.ts meta.namespace.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                 ^^^\n                 source.ts meta.namespace.declaration.ts string.quoted.single.ts\n                    ^\n                    source.ts meta.namespace.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n>declare module 'bar';\n ^^^^^^^\n source.ts meta.namespace.declaration.ts storage.modifier.ts\n        ^\n        source.ts meta.namespace.declaration.ts\n         ^^^^^^\n         source.ts meta.namespace.declaration.ts storage.type.namespace.ts\n               ^\n               source.ts meta.namespace.declaration.ts\n                ^\n                source.ts meta.namespace.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                 ^^^\n                 source.ts meta.namespace.declaration.ts string.quoted.single.ts\n                    ^\n                    source.ts meta.namespace.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n>declare module 'baz';\n ^^^^^^^\n source.ts meta.namespace.declaration.ts storage.modifier.ts\n        ^\n        source.ts meta.namespace.declaration.ts\n         ^^^^^^\n         source.ts meta.namespace.declaration.ts storage.type.namespace.ts\n               ^\n               source.ts meta.namespace.declaration.ts\n                ^\n                source.ts meta.namespace.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                 ^^^\n                 source.ts meta.namespace.declaration.ts string.quoted.single.ts\n                    ^\n                    source.ts meta.namespace.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n>interface Foo {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n              ^\n              source.ts meta.interface.ts\n               ^\n               source.ts meta.interface.ts punctuation.definition.block.ts\n>    bar: string;\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^^^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n        ^\n        source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n         ^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n          ^^^^^^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                ^\n                source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue485.baseline.txt",
    "content": "original file\n-----------------------------------\nimport a from 'a' // test\nimport b from 'b'\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>import a from 'a' // test\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts variable.other.readwrite.alias.ts\n         ^\n         source.ts meta.import.ts\n          ^^^^\n          source.ts meta.import.ts keyword.control.from.ts\n              ^\n              source.ts meta.import.ts\n               ^\n               source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                ^\n                source.ts meta.import.ts string.quoted.single.ts\n                 ^\n                 source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                  ^\n                  source.ts meta.import.ts\n                   ^^\n                   source.ts meta.import.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                     ^^^^^^\n                     source.ts meta.import.ts comment.line.double-slash.ts\n>import b from 'b'\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts variable.other.readwrite.alias.ts\n         ^\n         source.ts meta.import.ts\n          ^^^^\n          source.ts meta.import.ts keyword.control.from.ts\n              ^\n              source.ts meta.import.ts\n               ^\n               source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                ^\n                source.ts meta.import.ts string.quoted.single.ts\n                 ^\n                 source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.end.ts"
  },
  {
    "path": "tests/baselines/Issue486.baseline.txt",
    "content": "original file\n-----------------------------------\nconst C = class<T> {\n    private data = 0;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const C = class<T> {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^^^^^\n           source.ts meta.var.expr.ts meta.class.ts storage.type.class.ts\n                ^\n                source.ts meta.var.expr.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.class.ts meta.type.parameters.ts entity.name.type.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.class.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.class.ts punctuation.definition.block.ts\n>    private data = 0;\n ^^^^\n source.ts meta.var.expr.ts meta.class.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.class.ts storage.modifier.ts\n            ^\n            source.ts meta.var.expr.ts meta.class.ts meta.field.declaration.ts\n             ^^^^\n             source.ts meta.var.expr.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.class.ts meta.field.declaration.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.class.ts meta.field.declaration.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue491.baseline.txt",
    "content": "original file\n-----------------------------------\nlet a: number = w,\nb: string = x, // string is not colored\nc: any = y, // any is not colored\nd: boolean = z; // boolean is not colored\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let a: number = w,\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts punctuation.separator.comma.ts\n>b: string = x, // string is not colored\n ^\n source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n  ^\n  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n   ^\n   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n    ^^^^^^\n    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts punctuation.separator.comma.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^^\n                source.ts meta.var.expr.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                  ^^^^^^^^^^^^^^^^^^^^^^^\n                  source.ts meta.var.expr.ts comment.line.double-slash.ts\n>c: any = y, // any is not colored\n ^\n source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n  ^\n  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n   ^\n   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n    ^^^\n    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts punctuation.separator.comma.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^^\n             source.ts meta.var.expr.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n               ^^^^^^^^^^^^^^^^^^^^\n               source.ts meta.var.expr.ts comment.line.double-slash.ts\n>d: boolean = z; // boolean is not colored\n ^\n source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n  ^\n  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n   ^\n   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n    ^^^^^^^\n    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts variable.other.readwrite.ts\n               ^\n               source.ts punctuation.terminator.statement.ts\n                ^\n                source.ts\n                 ^^\n                 source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                   ^^^^^^^^^^^^^^^^^^^^^^^\n                   source.ts comment.line.double-slash.ts"
  },
  {
    "path": "tests/baselines/Issue496.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has cast expression\nvar x = 0;\nvar y = 1;\nvar z = <number>x + <number>y;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has cast expression\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>var x = 0;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts constant.numeric.decimal.ts\n          ^\n          source.ts punctuation.terminator.statement.ts\n>var y = 1;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts constant.numeric.decimal.ts\n          ^\n          source.ts punctuation.terminator.statement.ts\n>var z = <number>x + <number>y;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts cast.expr.ts\n         ^\n         source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n          ^^^^^^\n          source.ts meta.var.expr.ts cast.expr.ts support.type.primitive.ts\n                ^\n                source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                 ^\n                 source.ts meta.var.expr.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                    ^\n                    source.ts meta.var.expr.ts cast.expr.ts\n                     ^\n                     source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                      ^^^^^^\n                      source.ts meta.var.expr.ts cast.expr.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                             ^\n                             source.ts meta.var.expr.ts variable.other.readwrite.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue499.baseline.txt",
    "content": "original file\n-----------------------------------\nconst fn = ({\n  arg = [],\n}) => {\n  return \"This line should be highlighted correctly\";\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const fn = ({\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.brace.round.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>  arg = [],\n ^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n   ^^^\n   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.brace.square.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.brace.square.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>}) => {\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.var.expr.ts meta.brace.round.ts\n   ^\n   source.ts meta.var.expr.ts\n    ^^\n    source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts\n       ^\n       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>  return \"This line should be highlighted correctly\";\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts string.quoted.double.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue5.baseline.txt",
    "content": "original file\n-----------------------------------\nlet new_string = \"New Changes\"\n\n\nlet plain_double_text = \"Hello\\\nthis link to github is https://github.com/\\\nhello\\\nWorld\"\n\nlet plain_single_text= 'Try with single bracket\\\nhello world \\\\\\\\\\\nlet this be   ^\\\na good test   ^'\n\nlet double_quote_issue = \"  qstring-double:\\\n    name: string.double.ts\\\n    begin: \\'\\\"\\'\\\n    end: \\'\\\"|(?:[^\\r\\n\\\\]$)'\\\n    patterns:\\\n    - include: '#string-character-escape'\\\n    \"\n\nlet single_quote_issue = 'qstring-single:\\\n    name: string.single.ts\\\n    begin: \\\"\\'\\\"\\\n    end: \\'|(?:[^\\r\\n\\\\]$)\\\n    endCaptures:\\\n      '0': {name: string-character-escape }\\\n    patterns:\\\n    - include: \\'#string-character-escape\\'\\\n    '\n\nlet new_string = \"Changes End here\"\n\n\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let new_string = \"New Changes\"\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                   ^^^^^^^^^^^\n                   source.ts meta.var.expr.ts string.quoted.double.ts\n                              ^\n                              source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>\n ^\n source.ts\n>\n ^\n source.ts\n>let plain_double_text = \"Hello\\\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                          ^^^^^\n                          source.ts meta.var.expr.ts string.quoted.double.ts\n                               ^\n                               source.ts meta.var.expr.ts string.quoted.double.ts constant.character.escape.ts\n>this link to github is https://github.com/\\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.var.expr.ts string.quoted.double.ts\n                                           ^\n                                           source.ts meta.var.expr.ts string.quoted.double.ts constant.character.escape.ts\n>hello\\\n ^^^^^\n source.ts meta.var.expr.ts string.quoted.double.ts\n      ^\n      source.ts meta.var.expr.ts string.quoted.double.ts constant.character.escape.ts\n>World\"\n ^^^^^\n source.ts meta.var.expr.ts string.quoted.double.ts\n      ^\n      source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>\n ^\n source.ts\n>let plain_single_text= 'Try with single bracket\\\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                       ^\n                       source.ts meta.var.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                         ^^^^^^^^^^^^^^^^^^^^^^^\n                         source.ts meta.var.expr.ts string.quoted.single.ts\n                                                ^\n                                                source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n>hello world \\\\\\\\\\\n ^^^^^^^^^^^^\n source.ts meta.var.expr.ts string.quoted.single.ts\n             ^^\n             source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n               ^^\n               source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n                 ^\n                 source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n>let this be   ^\\\n ^^^^^^^^^^^^^^^\n source.ts meta.var.expr.ts string.quoted.single.ts\n                ^\n                source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n>a good test   ^'\n ^^^^^^^^^^^^^^^\n source.ts meta.var.expr.ts string.quoted.single.ts\n                ^\n                source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>\n ^\n source.ts\n>let double_quote_issue = \"  qstring-double:\\\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts meta.var.expr.ts\n                          ^\n                          source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                           ^^^^^^^^^^^^^^^^^\n                           source.ts meta.var.expr.ts string.quoted.double.ts\n                                            ^\n                                            source.ts meta.var.expr.ts string.quoted.double.ts constant.character.escape.ts\n>    name: string.double.ts\\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.var.expr.ts string.quoted.double.ts\n                           ^\n                           source.ts meta.var.expr.ts string.quoted.double.ts constant.character.escape.ts\n>    begin: \\'\\\"\\'\\\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts string.quoted.double.ts\n            ^^\n            source.ts meta.var.expr.ts string.quoted.double.ts constant.character.escape.ts\n              ^^\n              source.ts meta.var.expr.ts string.quoted.double.ts constant.character.escape.ts\n                ^^\n                source.ts meta.var.expr.ts string.quoted.double.ts constant.character.escape.ts\n                  ^\n                  source.ts meta.var.expr.ts string.quoted.double.ts constant.character.escape.ts\n>    end: \\'\\\"|(?:[^\\r\\n\\\\]$)'\\\n ^^^^^^^^^\n source.ts meta.var.expr.ts string.quoted.double.ts\n          ^^\n          source.ts meta.var.expr.ts string.quoted.double.ts constant.character.escape.ts\n            ^^\n            source.ts meta.var.expr.ts string.quoted.double.ts constant.character.escape.ts\n              ^^^^^^\n              source.ts meta.var.expr.ts string.quoted.double.ts\n                    ^^\n                    source.ts meta.var.expr.ts string.quoted.double.ts constant.character.escape.ts\n                      ^^\n                      source.ts meta.var.expr.ts string.quoted.double.ts constant.character.escape.ts\n                        ^^\n                        source.ts meta.var.expr.ts string.quoted.double.ts constant.character.escape.ts\n                          ^^^^\n                          source.ts meta.var.expr.ts string.quoted.double.ts\n                              ^\n                              source.ts meta.var.expr.ts string.quoted.double.ts constant.character.escape.ts\n>    patterns:\\\n ^^^^^^^^^^^^^\n source.ts meta.var.expr.ts string.quoted.double.ts\n              ^\n              source.ts meta.var.expr.ts string.quoted.double.ts constant.character.escape.ts\n>    - include: '#string-character-escape'\\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.var.expr.ts string.quoted.double.ts\n                                          ^\n                                          source.ts meta.var.expr.ts string.quoted.double.ts constant.character.escape.ts\n>    \"\n ^^^^\n source.ts meta.var.expr.ts string.quoted.double.ts\n     ^\n     source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>\n ^\n source.ts\n>let single_quote_issue = 'qstring-single:\\\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts meta.var.expr.ts\n                          ^\n                          source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                           ^^^^^^^^^^^^^^^\n                           source.ts meta.var.expr.ts string.quoted.single.ts\n                                          ^\n                                          source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n>    name: string.single.ts\\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.var.expr.ts string.quoted.single.ts\n                           ^\n                           source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n>    begin: \\\"\\'\\\"\\\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts string.quoted.single.ts\n            ^^\n            source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n              ^^\n              source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n                ^^\n                source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n                  ^\n                  source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n>    end: \\'|(?:[^\\r\\n\\\\]$)\\\n ^^^^^^^^^\n source.ts meta.var.expr.ts string.quoted.single.ts\n          ^^\n          source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n            ^^^^^^\n            source.ts meta.var.expr.ts string.quoted.single.ts\n                  ^^\n                  source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n                    ^^\n                    source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n                      ^^\n                      source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n                        ^^^\n                        source.ts meta.var.expr.ts string.quoted.single.ts\n                           ^\n                           source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n>    endCaptures:\\\n ^^^^^^^^^^^^^^^^\n source.ts meta.var.expr.ts string.quoted.single.ts\n                 ^\n                 source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n>      '0': {name: string-character-escape }\\\n ^^^^^^\n source.ts meta.var.expr.ts string.quoted.single.ts\n       ^\n       source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n        ^\n        source.ts meta.var.expr.ts constant.numeric.decimal.ts\n         ^\n         source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n          source.ts meta.var.expr.ts string.quoted.single.ts\n                                            ^\n                                            source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n>    patterns:\\\n ^^^^^^^^^^^^^\n source.ts meta.var.expr.ts string.quoted.single.ts\n              ^\n              source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n>    - include: \\'#string-character-escape\\'\\\n ^^^^^^^^^^^^^^^\n source.ts meta.var.expr.ts string.quoted.single.ts\n                ^^\n                source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n                  ^^^^^^^^^^^^^^^^^^^^^^^^\n                  source.ts meta.var.expr.ts string.quoted.single.ts\n                                          ^^\n                                          source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n                                            ^\n                                            source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n>    '\n ^^^^\n source.ts meta.var.expr.ts string.quoted.single.ts\n     ^\n     source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>\n ^\n source.ts\n>let new_string = \"Changes End here\"\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                   ^^^^^^^^^^^^^^^^\n                   source.ts meta.var.expr.ts string.quoted.double.ts\n                                   ^\n                                   source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>\n ^\n source.ts\n>\n ^\n source.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue500.baseline.txt",
    "content": "original file\n-----------------------------------\n0 as any as string;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>0 as any as string;\n ^\n source.ts constant.numeric.decimal.ts\n  ^\n  source.ts\n   ^^\n   source.ts keyword.control.as.ts\n     ^\n     source.ts\n      ^^^\n      source.ts support.type.primitive.ts\n         ^\n         source.ts\n          ^^\n          source.ts keyword.control.as.ts\n            ^\n            source.ts\n             ^^^^^^\n             source.ts support.type.primitive.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue502.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Foo {\n    bar () {\n        [...this.foobar()];\n        [... this.foobar()];\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Foo {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^\n          source.ts meta.class.ts\n           ^\n           source.ts meta.class.ts punctuation.definition.block.ts\n>    bar () {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        [...this.foobar()];\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n          ^^^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts keyword.operator.spread.ts\n             ^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.language.this.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                  ^^^^^^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>        [... this.foobar()];\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n          ^^^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts keyword.operator.spread.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts\n              ^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue506.baseline.txt",
    "content": "original file\n-----------------------------------\n        if (platform.isWindows) {\n            this._processReady.then(() => {\n                if (!this._isDisposed) {\n                    import('vs/workbench/parts/terminal/electron-browser/windowsShellHelper').then((module) => {\n                        this._windowsShellHelper = new module.WindowsShellHelper(this._processId, this._shellLaunchConfig.executable, this, this._xterm);\n                    });\n                }\n            });\n        }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>        if (platform.isWindows) {\n ^^^^^^^^\n source.ts\n         ^^\n         source.ts keyword.control.conditional.ts\n           ^\n           source.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^^^^^^^^\n             source.ts variable.other.object.ts\n                     ^\n                     source.ts punctuation.accessor.ts\n                      ^^^^^^^^^\n                      source.ts variable.other.property.ts\n                               ^\n                               source.ts meta.brace.round.ts\n                                ^\n                                source.ts\n                                 ^\n                                 source.ts meta.block.ts punctuation.definition.block.ts\n>            this._processReady.then(() => {\n ^^^^^^^^^^^^\n source.ts meta.block.ts\n             ^^^^\n             source.ts meta.block.ts meta.function-call.ts variable.language.this.ts\n                 ^\n                 source.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                  ^^^^^^^^^^^^^\n                  source.ts meta.block.ts meta.function-call.ts variable.other.object.property.ts\n                               ^\n                               source.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                ^^^^\n                                source.ts meta.block.ts meta.function-call.ts support.function.promise.ts\n                                    ^\n                                    source.ts meta.block.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                      ^\n                                      source.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                       ^\n                                       source.ts meta.block.ts meta.arrow.ts\n                                        ^^\n                                        source.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                                          ^\n                                          source.ts meta.block.ts meta.arrow.ts\n                                           ^\n                                           source.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>                if (!this._isDisposed) {\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts meta.arrow.ts meta.block.ts\n                 ^^\n                 source.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.control.conditional.ts\n                   ^\n                   source.ts meta.block.ts meta.arrow.ts meta.block.ts\n                    ^\n                    source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                     ^\n                     source.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.operator.logical.ts\n                      ^^^^\n                      source.ts meta.block.ts meta.arrow.ts meta.block.ts variable.language.this.ts\n                          ^\n                          source.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n                           ^^^^^^^^^^^\n                           source.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.property.ts\n                                      ^\n                                      source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                       ^\n                                       source.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                        ^\n                                        source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>                    import('vs/workbench/parts/terminal/electron-browser/windowsShellHelper').then((module) => {\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts\n                     ^^^^^^\n                     source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.function-call.ts keyword.operator.expression.import.ts\n                           ^\n                           source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                             source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts string.quoted.single.ts\n                                                                                            ^\n                                                                                            source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                                             ^\n                                                                                             source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                                                                              ^\n                                                                                              source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                               ^^^^\n                                                                                               source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.promise.ts\n                                                                                                   ^\n                                                                                                   source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                                                                                    ^\n                                                                                                    source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                                                                     ^^^^^^\n                                                                                                     source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                                                                                           ^\n                                                                                                           source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                                                            ^\n                                                                                                            source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts\n                                                                                                             ^^\n                                                                                                             source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                                                                               ^\n                                                                                                               source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts\n                                                                                                                ^\n                                                                                                                source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>                        this._windowsShellHelper = new module.WindowsShellHelper(this._processId, this._shellLaunchConfig.executable, this, this._xterm);\n ^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                         ^^^^\n                         source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts variable.language.this.ts\n                             ^\n                             source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n                              ^^^^^^^^^^^^^^^^^^^\n                              source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.property.ts\n                                                 ^\n                                                 source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                                  ^\n                                                  source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.operator.assignment.ts\n                                                   ^\n                                                   source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                                    ^^^\n                                                    source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                                                       ^\n                                                       source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts\n                                                        ^^^^^^\n                                                        source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts meta.function-call.ts support.type.object.module.ts\n                                                              ^\n                                                              source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                                               ^^^^^^^^^^^^^^^^^^\n                                                               source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                                                                                 ^\n                                                                                 source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                                  ^^^^\n                                                                                  source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                                                                      ^\n                                                                                      source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                                                                       ^^^^^^^^^^\n                                                                                       source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts variable.other.property.ts\n                                                                                                 ^\n                                                                                                 source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                                                                                  ^\n                                                                                                  source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts\n                                                                                                   ^^^^\n                                                                                                   source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                                                                                       ^\n                                                                                                       source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                                                                                        ^^^^^^^^^^^^^^^^^^\n                                                                                                        source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts variable.other.object.property.ts\n                                                                                                                          ^\n                                                                                                                          source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                                                                                                           ^^^^^^^^^^\n                                                                                                                           source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts variable.other.property.ts\n                                                                                                                                     ^\n                                                                                                                                     source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                                                                                                                      ^\n                                                                                                                                      source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts\n                                                                                                                                       ^^^^\n                                                                                                                                       source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                                                                                                                           ^\n                                                                                                                                           source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts\n                                                                                                                                            ^\n                                                                                                                                            source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts\n                                                                                                                                             ^^^^\n                                                                                                                                             source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts variable.language.this.ts\n                                                                                                                                                 ^\n                                                                                                                                                 source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts punctuation.accessor.ts\n                                                                                                                                                  ^^^^^^\n                                                                                                                                                  source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts variable.other.property.ts\n                                                                                                                                                        ^\n                                                                                                                                                        source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                                                                                                         ^\n                                                                                                                                                         source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>                    });\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts\n                     ^\n                     source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                      ^\n                      source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>                }\n ^^^^^^^^^^^^^^^^\n source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts\n                 ^\n                 source.ts meta.block.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>            });\n ^^^^^^^^^^^^\n source.ts meta.block.ts meta.arrow.ts meta.block.ts\n             ^\n             source.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.block.ts meta.brace.round.ts\n               ^\n               source.ts meta.block.ts punctuation.terminator.statement.ts\n>        }\n ^^^^^^^^\n source.ts meta.block.ts\n         ^\n         source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue510.baseline.txt",
    "content": "original file\n-----------------------------------\n    // Factory functions\n\n    const createZombie = ({\n        status = 1,\n        width = 10,\n        height = 10,\n        xPosition,\n        yPosition,\n        color = \"green\"\n    }) => ({\n        status,\n        width,\n        height,\n        xPosition,\n        yPosition,\n        color\n    });\n\n    const createHero = ({\n        status = 1,\n        width = 25,\n        height = 50,\n        xPosition,\n        yPosition,\n        color = \"red\"\n    }) => ({\n        status,\n        width,\n        height,\n        xPosition,\n        yPosition,\n        color\n    });\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>    // Factory functions\n ^^^^\n source.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^^^^^^^^^^^^^^^\n       source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>    const createZombie = ({\n ^^^^\n source.ts\n     ^^^^^\n     source.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^^^^^^^^^^^^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts meta.var.expr.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        status = 1,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        width = 10,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                 ^^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        height = 10,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                  ^^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        xPosition,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        yPosition,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        color = \"green\"\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                  ^^^^^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>    }) => ({\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts meta.brace.round.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^\n        source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts\n           ^\n           source.ts meta.var.expr.ts meta.brace.round.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        status,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        width,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        height,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        xPosition,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        yPosition,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        color\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n>    });\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts meta.brace.round.ts\n       ^\n       source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>    const createHero = ({\n ^^^^\n source.ts\n     ^^^^^\n     source.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^^^^^^^^^^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                      ^\n                      source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                       ^\n                       source.ts meta.var.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        status = 1,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        width = 25,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                 ^^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        height = 50,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                  ^^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        xPosition,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        yPosition,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        color = \"red\"\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                  ^^^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>    }) => ({\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts meta.brace.round.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^\n        source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts\n           ^\n           source.ts meta.var.expr.ts meta.brace.round.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        status,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        width,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        height,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        xPosition,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        yPosition,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        color\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n         ^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n>    });\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts meta.brace.round.ts\n       ^\n       source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue513.baseline.txt",
    "content": "original file\n-----------------------------------\n(/a/u);\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>(/a/u);\n ^\n source.ts meta.brace.round.ts\n  ^\n  source.ts string.regexp.ts punctuation.definition.string.begin.ts\n   ^\n   source.ts string.regexp.ts\n    ^\n    source.ts string.regexp.ts punctuation.definition.string.end.ts\n     ^\n     source.ts string.regexp.ts keyword.other.ts\n      ^\n      source.ts meta.brace.round.ts\n       ^\n       source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue515.baseline.txt",
    "content": "original file\n-----------------------------------\n/**\n * @param {boolean} [settings.debug= - Print getUpdate results in console.\n */\n/**\n * @param {boolean} [settings.debug=] - Print getUpdate results in console.\n */\n/**\n * @param {boolean} [settings.debug=1] - Print getUpdate results in console.\n */\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/**\n ^^^\n source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n> * @param {boolean} [settings.debug= - Print getUpdate results in console.\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n          ^\n          source.ts comment.block.documentation.ts\n           ^\n           source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n            ^^^^^^^\n            source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                   ^\n                   source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                    ^\n                    source.ts comment.block.documentation.ts\n                     ^\n                     source.ts comment.block.documentation.ts\n                      ^^^^^^^^^^^^^^\n                      source.ts comment.block.documentation.ts variable.other.jsdoc\n                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                    source.ts comment.block.documentation.ts\n> */\n ^\n source.ts comment.block.documentation.ts\n  ^^\n  source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>/**\n ^^^\n source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n> * @param {boolean} [settings.debug=] - Print getUpdate results in console.\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n          ^\n          source.ts comment.block.documentation.ts\n           ^\n           source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n            ^^^^^^^\n            source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                   ^\n                   source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                    ^\n                    source.ts comment.block.documentation.ts\n                     ^\n                     source.ts comment.block.documentation.ts variable.other.jsdoc punctuation.definition.optional-value.begin.bracket.square.jsdoc\n                      ^^^^^^^^^^^^^^\n                      source.ts comment.block.documentation.ts variable.other.jsdoc\n                                    ^\n                                    source.ts comment.block.documentation.ts variable.other.jsdoc keyword.operator.assignment.jsdoc\n                                     ^\n                                     source.ts comment.block.documentation.ts variable.other.jsdoc punctuation.definition.optional-value.end.bracket.square.jsdoc\n                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                      source.ts comment.block.documentation.ts\n> */\n ^\n source.ts comment.block.documentation.ts\n  ^^\n  source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>/**\n ^^^\n source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n> * @param {boolean} [settings.debug=1] - Print getUpdate results in console.\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n          ^\n          source.ts comment.block.documentation.ts\n           ^\n           source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n            ^^^^^^^\n            source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                   ^\n                   source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                    ^\n                    source.ts comment.block.documentation.ts\n                     ^\n                     source.ts comment.block.documentation.ts variable.other.jsdoc punctuation.definition.optional-value.begin.bracket.square.jsdoc\n                      ^^^^^^^^^^^^^^\n                      source.ts comment.block.documentation.ts variable.other.jsdoc\n                                    ^\n                                    source.ts comment.block.documentation.ts variable.other.jsdoc keyword.operator.assignment.jsdoc\n                                     ^\n                                     source.ts comment.block.documentation.ts variable.other.jsdoc source.embedded.ts\n                                      ^\n                                      source.ts comment.block.documentation.ts variable.other.jsdoc punctuation.definition.optional-value.end.bracket.square.jsdoc\n                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                       source.ts comment.block.documentation.ts\n> */\n ^\n source.ts comment.block.documentation.ts\n  ^^\n  source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue518.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\n(<a title={i >= 2 && i < 3 ? \"first branch\" : i > (j - 2) * 4 ? \"second branch\" : \"third branch\" } />)\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>(<a title={i >= 2 && i < 3 ? \"first branch\" : i > (j - 2) * 4 ? \"second branch\" : \"third branch\" } />)\n ^\n source.tsx meta.brace.round.tsx\n  ^\n  source.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n   ^\n   source.tsx meta.tag.tsx entity.name.tag.tsx\n    ^\n    source.tsx meta.tag.tsx meta.tag.attributes.tsx\n     ^^^^^\n     source.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n          ^\n          source.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n           ^\n           source.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n            ^\n            source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.readwrite.tsx\n             ^\n             source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n              ^^\n              source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.relational.tsx\n                ^\n                source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                 ^\n                 source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx constant.numeric.decimal.tsx\n                  ^\n                  source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                   ^^\n                   source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.logical.tsx\n                     ^\n                     source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                      ^\n                      source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.readwrite.tsx\n                       ^\n                       source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                        ^\n                        source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.relational.tsx\n                         ^\n                         source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                          ^\n                          source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx constant.numeric.decimal.tsx\n                           ^\n                           source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                            ^\n                            source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.ternary.tsx\n                             ^\n                             source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                              ^\n                              source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.double.tsx punctuation.definition.string.begin.tsx\n                               ^^^^^^^^^^^^\n                               source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.double.tsx\n                                           ^\n                                           source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.double.tsx punctuation.definition.string.end.tsx\n                                            ^\n                                            source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                             ^\n                                             source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.ternary.tsx\n                                              ^\n                                              source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                               ^\n                                               source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.readwrite.tsx\n                                                ^\n                                                source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                                 ^\n                                                 source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.relational.tsx\n                                                  ^\n                                                  source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                                   ^\n                                                   source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.brace.round.tsx\n                                                    ^\n                                                    source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.readwrite.tsx\n                                                     ^\n                                                     source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                                      ^\n                                                      source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.arithmetic.tsx\n                                                       ^\n                                                       source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                                        ^\n                                                        source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx constant.numeric.decimal.tsx\n                                                         ^\n                                                         source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.brace.round.tsx\n                                                          ^\n                                                          source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                                           ^\n                                                           source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.arithmetic.tsx\n                                                            ^\n                                                            source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                                             ^\n                                                             source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx constant.numeric.decimal.tsx\n                                                              ^\n                                                              source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                                               ^\n                                                               source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.ternary.tsx\n                                                                ^\n                                                                source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                                                 ^\n                                                                 source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.double.tsx punctuation.definition.string.begin.tsx\n                                                                  ^^^^^^^^^^^^^\n                                                                  source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.double.tsx\n                                                                               ^\n                                                                               source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.double.tsx punctuation.definition.string.end.tsx\n                                                                                ^\n                                                                                source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                                                                 ^\n                                                                                 source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.ternary.tsx\n                                                                                  ^\n                                                                                  source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                                                                   ^\n                                                                                   source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.double.tsx punctuation.definition.string.begin.tsx\n                                                                                    ^^^^^^^^^^^^\n                                                                                    source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.double.tsx\n                                                                                                ^\n                                                                                                source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.double.tsx punctuation.definition.string.end.tsx\n                                                                                                 ^\n                                                                                                 source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                                                                                  ^\n                                                                                                  source.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n                                                                                                   ^\n                                                                                                   source.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                                                                                    ^^\n                                                                                                    source.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                                                                      ^\n                                                                                                      source.tsx meta.brace.round.tsx"
  },
  {
    "path": "tests/baselines/Issue521.baseline.txt",
    "content": "original file\n-----------------------------------\nconst names = results.f(result.success ? (2) : 2).f(c => c.name)\nconst a = 1;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const names = results.f(result.success ? (2) : 2).f(c => c.name)\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^^^^^^\n               source.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.brace.round.ts\n                         ^^^^^^\n                         source.ts meta.var.expr.ts variable.other.object.ts\n                               ^\n                               source.ts meta.var.expr.ts punctuation.accessor.ts\n                                ^^^^^^^\n                                source.ts meta.var.expr.ts variable.other.property.ts\n                                       ^\n                                       source.ts meta.var.expr.ts\n                                        ^\n                                        source.ts meta.var.expr.ts keyword.operator.ternary.ts\n                                         ^\n                                         source.ts meta.var.expr.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.var.expr.ts\n                                              ^\n                                              source.ts meta.var.expr.ts keyword.operator.ternary.ts\n                                               ^\n                                               source.ts meta.var.expr.ts\n                                                ^\n                                                source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.brace.round.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts meta.brace.round.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts meta.arrow.ts variable.parameter.ts\n                                                      ^\n                                                      source.ts meta.var.expr.ts meta.arrow.ts\n                                                       ^^\n                                                       source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                         ^\n                                                         source.ts meta.var.expr.ts meta.arrow.ts\n                                                          ^\n                                                          source.ts meta.var.expr.ts variable.other.object.ts\n                                                           ^\n                                                           source.ts meta.var.expr.ts punctuation.accessor.ts\n                                                            ^^^^\n                                                            source.ts meta.var.expr.ts support.variable.property.dom.ts\n                                                                ^\n                                                                source.ts meta.var.expr.ts meta.brace.round.ts\n>const a = 1;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts constant.numeric.decimal.ts\n            ^\n            source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue522.baseline.txt",
    "content": "original file\n-----------------------------------\nconst brokenSyntaxHighlighting = () => {\n  const array = a?.b?.c?.d?.g;\n\n  /**\n   * No TypeEror, but syntax highlighting is broken\n   */\n  const test = a?.b?.f?.f;\n\n  for (let i = 0; i < array.length; i++) {\n    console.log(array[i]);\n  }\n};\n\nbrokenSyntaxHighlighting();\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const brokenSyntaxHighlighting = () => {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                                ^\n                                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.arrow.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.arrow.ts\n                                     ^^\n                                     source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.arrow.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>  const array = a?.b?.c?.d?.g;\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^^^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n         ^^^^^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                  ^^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.optional.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                     ^^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.optional.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                        ^^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.optional.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                           ^^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.optional.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n>  /**\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>   * No TypeEror, but syntax highlighting is broken\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts comment.block.documentation.ts\n>   */\n ^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts comment.block.documentation.ts\n    ^^\n    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>  const test = a?.b?.f?.f;\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^^^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n         ^^^^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                 ^^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.optional.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                    ^^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.optional.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                       ^^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.optional.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n>  for (let i = 0; i < array.length; i++) {\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.loop.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n       ^\n       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n        ^^^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.operator.relational.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                       ^^^^^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.object.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n                             ^^^^^^\n                             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts support.variable.property.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                                      ^^\n                                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.operator.increment.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    console.log(array[i]);\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.function-call.ts support.class.console.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n             ^^^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                 ^^^^^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>  }\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts\n   ^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>};\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>brokenSyntaxHighlighting();\n ^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.brace.round.ts\n                           ^\n                           source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue525.baseline.txt",
    "content": "original file\n-----------------------------------\nmap(result.success ? (a) : 1).map(c => c.name)\nconst a = 1;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>map(result.success ? (a) : 1).map(c => c.name)\n ^^^\n source.ts meta.function-call.ts entity.name.function.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^^^^^^\n     source.ts variable.other.object.ts\n           ^\n           source.ts punctuation.accessor.ts\n            ^^^^^^^\n            source.ts variable.other.property.ts\n                   ^\n                   source.ts\n                    ^\n                    source.ts keyword.operator.ternary.ts\n                     ^\n                     source.ts\n                      ^\n                      source.ts meta.brace.round.ts\n                       ^\n                       source.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.brace.round.ts\n                         ^\n                         source.ts\n                          ^\n                          source.ts keyword.operator.ternary.ts\n                           ^\n                           source.ts\n                            ^\n                            source.ts constant.numeric.decimal.ts\n                             ^\n                             source.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.function-call.ts punctuation.accessor.ts\n                               ^^^\n                               source.ts meta.function-call.ts entity.name.function.ts\n                                  ^\n                                  source.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.arrow.ts variable.parameter.ts\n                                    ^\n                                    source.ts meta.arrow.ts\n                                     ^^\n                                     source.ts meta.arrow.ts storage.type.function.arrow.ts\n                                       ^\n                                       source.ts meta.arrow.ts\n                                        ^\n                                        source.ts variable.other.object.ts\n                                         ^\n                                         source.ts punctuation.accessor.ts\n                                          ^^^^\n                                          source.ts support.variable.property.dom.ts\n                                              ^\n                                              source.ts meta.brace.round.ts\n>const a = 1;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts constant.numeric.decimal.ts\n            ^\n            source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue526.baseline.txt",
    "content": "original file\n-----------------------------------\nif (a++ < b) {\n}\n\nexport class A extends B {\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>if (a++ < b) {\n ^^\n source.ts keyword.control.conditional.ts\n   ^\n   source.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^\n     source.ts variable.other.readwrite.ts\n      ^^\n      source.ts keyword.operator.increment.ts\n        ^\n        source.ts\n         ^\n         source.ts keyword.operator.relational.ts\n          ^\n          source.ts\n           ^\n           source.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts\n              ^\n              source.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>export class A extends B {\n ^^^^^^\n source.ts meta.class.ts keyword.control.export.ts\n       ^\n       source.ts meta.class.ts\n        ^^^^^\n        source.ts meta.class.ts storage.type.class.ts\n             ^\n             source.ts meta.class.ts\n              ^\n              source.ts meta.class.ts entity.name.type.class.ts\n               ^\n               source.ts meta.class.ts\n                ^^^^^^^\n                source.ts meta.class.ts storage.modifier.ts\n                       ^\n                       source.ts meta.class.ts\n                        ^\n                        source.ts meta.class.ts entity.other.inherited-class.ts\n                         ^\n                         source.ts meta.class.ts\n                          ^\n                          source.ts meta.class.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue530.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction getStats() {\n    const query = query<[number], number>(`\n        SELECT *\n        FROM statistics\n        WHERE unit_id = $1`)\n\n    return database.execute(query, [id])\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function getStats() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                    ^\n                    source.ts meta.function.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    const query = query<[number], number>(`\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^\n     source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n           ^^^^^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                   ^^^^^\n                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                          ^^^^^^\n                          source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts meta.type.tuple.ts support.type.primitive.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts\n                                   ^^^^^^\n                                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                          ^\n                                          source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts\n>        SELECT *\n ^^^^^^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.template.ts\n>        FROM statistics\n ^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.template.ts\n>        WHERE unit_id = $1`)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.template.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n>\n ^\n source.ts meta.function.ts meta.block.ts\n>    return database.execute(query, [id])\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^^^^^^^^\n            source.ts meta.function.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                     ^^^^^^^\n                     source.ts meta.function.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                             ^^^^^\n                             source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts punctuation.separator.comma.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                     ^^\n                                     source.ts meta.function.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue531.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Test { }\nexport {\n Test as default\n};\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Test { }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n           ^\n           source.ts meta.class.ts\n            ^\n            source.ts meta.class.ts punctuation.definition.block.ts\n             ^\n             source.ts meta.class.ts\n              ^\n              source.ts meta.class.ts punctuation.definition.block.ts\n>export {\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n> Test as default\n ^\n source.ts meta.export.ts meta.block.ts\n  ^^^^\n  source.ts meta.export.ts meta.block.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.export.ts meta.block.ts\n       ^^\n       source.ts meta.export.ts meta.block.ts keyword.control.as.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^^^^^^^\n          source.ts meta.export.ts meta.block.ts keyword.control.default.ts\n>};\n ^\n source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue536.baseline.txt",
    "content": "original file\n-----------------------------------\nconst z = (() => {})()\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const z = (() => {})()\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.brace.round.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts\n               ^^\n               source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.brace.round.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.brace.round.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.brace.round.ts"
  },
  {
    "path": "tests/baselines/Issue538.baseline.txt",
    "content": "original file\n-----------------------------------\ndeclare function f<T, U>(): void;\nconst x = f<\"a\", \"b\">();\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>declare function f<T, U>(): void;\n ^^^^^^^\n source.ts meta.function.ts storage.modifier.ts\n        ^\n        source.ts meta.function.ts\n         ^^^^^^^^\n         source.ts meta.function.ts storage.type.function.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^\n                  source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                   ^\n                   source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                    ^\n                    source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                     ^\n                     source.ts meta.function.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                      ^\n                      source.ts meta.function.ts meta.type.parameters.ts\n                       ^\n                       source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                        ^\n                        source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                           ^\n                           source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                            ^\n                            source.ts meta.function.ts meta.return.type.ts\n                             ^^^^\n                             source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n                                 ^\n                                 source.ts punctuation.terminator.statement.ts\n>const x = f<\"a\", \"b\">();\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n            ^\n            source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n             ^\n             source.ts meta.var.expr.ts meta.type.parameters.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n              ^\n              source.ts meta.var.expr.ts meta.type.parameters.ts string.quoted.double.ts\n               ^\n               source.ts meta.var.expr.ts meta.type.parameters.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                ^\n                source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.type.parameters.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.type.parameters.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.type.parameters.ts string.quoted.double.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.type.parameters.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.brace.round.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue540.baseline.txt",
    "content": "original file\n-----------------------------------\n// 1. Correct highlighting\ndoSomething = (param, { a = \"default\" } = {}) => {\n    //noop\n}\n\n// 2. Incorrect highlighting - limitation of grammar\ndoSomething = (param, { \n    a = \"default\" \n} = {}) => {\n    //noop\n}\n\n// 3. Correct highlighting\ndoSomething(param, {\n    a = \"default\"\n} = {}) {\n    //noop\n}\n\n// 4. Correct highlighting\ndoSomething(param, { a = \"default\" } = {}) {\n    //noop\n}\n\n// 5. Correct highlighting (notice config module)\ndoSomething(param, {\n    a = config.get(\"a\") \n} = {}) {\n    //noop\n}\n\n// 6. Correct highlighting (notice config module)\ndoSomething(param, { a = config.get(\"a\") } = {}) {\n    //noop\n}\n\n// 7. Incorrect highlighting (notice config module) while 1. does\ndoSomething = (param, { a = config.get(\"a\")  } = {}) => {\n    //noop\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// 1. Correct highlighting\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>doSomething = (param, { a = \"default\" } = {}) => {\n ^^^^^^^^^^^\n source.ts entity.name.function.ts\n            ^\n            source.ts\n             ^\n             source.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.arrow.ts\n               ^\n               source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^^^^^\n                source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                      ^\n                      source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                       ^\n                       source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                        ^\n                        source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                         ^\n                         source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                          ^\n                          source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                           ^\n                           source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts keyword.operator.assignment.ts\n                            ^\n                            source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                             ^\n                             source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                              ^^^^^^^\n                              source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts\n                                     ^\n                                     source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                      ^\n                                      source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                       ^\n                                       source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                                        ^\n                                        source.ts meta.arrow.ts meta.parameters.ts\n                                         ^\n                                         source.ts meta.arrow.ts meta.parameters.ts keyword.operator.assignment.ts\n                                          ^\n                                          source.ts meta.arrow.ts meta.parameters.ts\n                                           ^\n                                           source.ts meta.arrow.ts meta.parameters.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                            ^\n                                            source.ts meta.arrow.ts meta.parameters.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                             ^\n                                             source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                              ^\n                                              source.ts meta.arrow.ts\n                                               ^^\n                                               source.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                 ^\n                                                 source.ts meta.arrow.ts\n                                                  ^\n                                                  source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    //noop\n ^^^^\n source.ts meta.arrow.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.arrow.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^\n       source.ts meta.arrow.ts meta.block.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>// 2. Incorrect highlighting - limitation of grammar\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>doSomething = (param, { \n ^^^^^^^^^^^\n source.ts variable.other.readwrite.ts\n            ^\n            source.ts\n             ^\n             source.ts keyword.operator.assignment.ts\n              ^\n              source.ts\n               ^\n               source.ts meta.brace.round.ts\n                ^^^^^\n                source.ts variable.other.readwrite.ts\n                     ^\n                     source.ts punctuation.separator.comma.ts\n                      ^\n                      source.ts\n                       ^\n                       source.ts meta.objectliteral.ts punctuation.definition.block.ts\n                        ^^\n                        source.ts meta.objectliteral.ts\n>    a = \"default\" \n ^^^^\n source.ts meta.objectliteral.ts\n     ^\n     source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.objectliteral.ts meta.object.member.ts\n       ^\n       source.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.objectliteral.ts meta.object.member.ts\n         ^\n         source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n          ^^^^^^^\n          source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                 ^\n                 source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                  ^\n                  source.ts meta.objectliteral.ts meta.object.member.ts\n>} = {}) => {\n ^\n source.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.objectliteral.ts punctuation.definition.block.ts\n       ^\n       source.ts meta.brace.round.ts\n        ^\n        source.ts\n         ^^\n         source.ts meta.arrow.ts storage.type.function.arrow.ts\n           ^\n           source.ts meta.arrow.ts\n            ^\n            source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    //noop\n ^^^^\n source.ts meta.arrow.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.arrow.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^\n       source.ts meta.arrow.ts meta.block.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>// 3. Correct highlighting\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>doSomething(param, {\n ^^^^^^^^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^^^^^\n             source.ts variable.other.readwrite.ts\n                  ^\n                  source.ts punctuation.separator.comma.ts\n                   ^\n                   source.ts\n                    ^\n                    source.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    a = \"default\"\n ^^^^\n source.ts meta.objectliteral.ts\n     ^\n     source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.objectliteral.ts meta.object.member.ts\n       ^\n       source.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.objectliteral.ts meta.object.member.ts\n         ^\n         source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n          ^^^^^^^\n          source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                 ^\n                 source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>} = {}) {\n ^\n source.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.objectliteral.ts punctuation.definition.block.ts\n       ^\n       source.ts meta.brace.round.ts\n        ^\n        source.ts\n         ^\n         source.ts meta.block.ts punctuation.definition.block.ts\n>    //noop\n ^^^^\n source.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^\n       source.ts meta.block.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>// 4. Correct highlighting\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>doSomething(param, { a = \"default\" } = {}) {\n ^^^^^^^^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^^^^^\n             source.ts variable.other.readwrite.ts\n                  ^\n                  source.ts punctuation.separator.comma.ts\n                   ^\n                   source.ts\n                    ^\n                    source.ts meta.objectliteral.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.objectliteral.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts meta.objectliteral.ts meta.object.member.ts\n                          ^\n                          source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                           ^^^^^^^\n                           source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                                  ^\n                                  source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                   ^\n                                   source.ts meta.objectliteral.ts meta.object.member.ts\n                                    ^\n                                    source.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                     ^\n                                     source.ts\n                                      ^\n                                      source.ts keyword.operator.assignment.ts\n                                       ^\n                                       source.ts\n                                        ^\n                                        source.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                         ^\n                                         source.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                          ^\n                                          source.ts meta.brace.round.ts\n                                           ^\n                                           source.ts\n                                            ^\n                                            source.ts meta.block.ts punctuation.definition.block.ts\n>    //noop\n ^^^^\n source.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^\n       source.ts meta.block.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>// 5. Correct highlighting (notice config module)\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>doSomething(param, {\n ^^^^^^^^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^^^^^\n             source.ts variable.other.readwrite.ts\n                  ^\n                  source.ts punctuation.separator.comma.ts\n                   ^\n                   source.ts\n                    ^\n                    source.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    a = config.get(\"a\") \n ^^^^\n source.ts meta.objectliteral.ts\n     ^\n     source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.objectliteral.ts meta.object.member.ts\n       ^\n       source.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.objectliteral.ts meta.object.member.ts\n         ^^^^^^\n         source.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts variable.other.object.ts\n               ^\n               source.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts punctuation.accessor.ts\n                ^^^\n                source.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts support.function.dom.ts\n                   ^\n                   source.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                    ^\n                    source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                     ^\n                     source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts\n>} = {}) {\n ^\n source.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.objectliteral.ts punctuation.definition.block.ts\n       ^\n       source.ts meta.brace.round.ts\n        ^\n        source.ts\n         ^\n         source.ts meta.block.ts punctuation.definition.block.ts\n>    //noop\n ^^^^\n source.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^\n       source.ts meta.block.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>// 6. Correct highlighting (notice config module)\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>doSomething(param, { a = config.get(\"a\") } = {}) {\n ^^^^^^^^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^^^^^\n             source.ts variable.other.readwrite.ts\n                  ^\n                  source.ts punctuation.separator.comma.ts\n                   ^\n                   source.ts\n                    ^\n                    source.ts meta.objectliteral.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.objectliteral.ts\n                      ^\n                      source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.objectliteral.ts meta.object.member.ts\n                        ^\n                        source.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts meta.objectliteral.ts meta.object.member.ts\n                          ^^^^^^\n                          source.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts variable.other.object.ts\n                                ^\n                                source.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts punctuation.accessor.ts\n                                 ^^^\n                                 source.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts support.function.dom.ts\n                                    ^\n                                    source.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                      ^\n                                      source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                                       ^\n                                       source.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.objectliteral.ts meta.object.member.ts\n                                          ^\n                                          source.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                           ^\n                                           source.ts\n                                            ^\n                                            source.ts keyword.operator.assignment.ts\n                                             ^\n                                             source.ts\n                                              ^\n                                              source.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                               ^\n                                               source.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                ^\n                                                source.ts meta.brace.round.ts\n                                                 ^\n                                                 source.ts\n                                                  ^\n                                                  source.ts meta.block.ts punctuation.definition.block.ts\n>    //noop\n ^^^^\n source.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^\n       source.ts meta.block.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>// 7. Incorrect highlighting (notice config module) while 1. does\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>doSomething = (param, { a = config.get(\"a\")  } = {}) => {\n ^^^^^^^^^^^\n source.ts entity.name.function.ts\n            ^\n            source.ts\n             ^\n             source.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.arrow.ts\n               ^\n               source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^^^^^\n                source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                      ^\n                      source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                       ^\n                       source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                        ^\n                        source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                         ^\n                         source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                          ^\n                          source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                           ^\n                           source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts keyword.operator.assignment.ts\n                            ^\n                            source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                             ^^^^^^\n                             source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts meta.function-call.ts variable.other.object.ts\n                                   ^\n                                   source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts meta.function-call.ts punctuation.accessor.ts\n                                    ^^^\n                                    source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts meta.function-call.ts support.function.dom.ts\n                                       ^\n                                       source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts meta.brace.round.ts\n                                        ^\n                                        source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                         ^\n                                         source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts\n                                          ^\n                                          source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                           ^\n                                           source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts meta.brace.round.ts\n                                            ^^\n                                            source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                              ^\n                                              source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                                               ^\n                                               source.ts meta.arrow.ts meta.parameters.ts\n                                                ^\n                                                source.ts meta.arrow.ts meta.parameters.ts keyword.operator.assignment.ts\n                                                 ^\n                                                 source.ts meta.arrow.ts meta.parameters.ts\n                                                  ^\n                                                  source.ts meta.arrow.ts meta.parameters.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                   ^\n                                                   source.ts meta.arrow.ts meta.parameters.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                    ^\n                                                    source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                     ^\n                                                     source.ts meta.arrow.ts\n                                                      ^^\n                                                      source.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                        ^\n                                                        source.ts meta.arrow.ts\n                                                         ^\n                                                         source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    //noop\n ^^^^\n source.ts meta.arrow.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.arrow.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^\n       source.ts meta.arrow.ts meta.block.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue543.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has cast\nlet x = -<any>5;\nx = -<number>-x;\nx = +<number>x;\n<number>1 && <number>2 & <number>3 | <number>4 + <number>5 ^ <number>6 && (<number>5)\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has cast\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>let x = -<any>5;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n          ^\n          source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n           ^^^\n           source.ts meta.var.expr.ts cast.expr.ts support.type.primitive.ts\n              ^\n              source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n               ^\n               source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>x = -<number>-x;\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts\n     ^\n     source.ts keyword.operator.arithmetic.ts\n      ^\n      source.ts cast.expr.ts meta.brace.angle.ts\n       ^^^^^^\n       source.ts cast.expr.ts support.type.primitive.ts\n             ^\n             source.ts cast.expr.ts meta.brace.angle.ts\n              ^\n              source.ts keyword.operator.arithmetic.ts\n               ^\n               source.ts variable.other.readwrite.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>x = +<number>x;\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts\n     ^\n     source.ts keyword.operator.arithmetic.ts\n      ^\n      source.ts cast.expr.ts meta.brace.angle.ts\n       ^^^^^^\n       source.ts cast.expr.ts support.type.primitive.ts\n             ^\n             source.ts cast.expr.ts meta.brace.angle.ts\n              ^\n              source.ts variable.other.readwrite.ts\n               ^\n               source.ts punctuation.terminator.statement.ts\n><number>1 && <number>2 & <number>3 | <number>4 + <number>5 ^ <number>6 && (<number>5)\n ^\n source.ts cast.expr.ts meta.brace.angle.ts\n  ^^^^^^\n  source.ts cast.expr.ts support.type.primitive.ts\n        ^\n        source.ts cast.expr.ts meta.brace.angle.ts\n         ^\n         source.ts constant.numeric.decimal.ts\n          ^\n          source.ts\n           ^^\n           source.ts keyword.operator.logical.ts\n             ^\n             source.ts cast.expr.ts\n              ^\n              source.ts cast.expr.ts meta.brace.angle.ts\n               ^^^^^^\n               source.ts cast.expr.ts support.type.primitive.ts\n                     ^\n                     source.ts cast.expr.ts meta.brace.angle.ts\n                      ^\n                      source.ts constant.numeric.decimal.ts\n                       ^\n                       source.ts\n                        ^\n                        source.ts keyword.operator.bitwise.ts\n                         ^\n                         source.ts cast.expr.ts\n                          ^\n                          source.ts cast.expr.ts meta.brace.angle.ts\n                           ^^^^^^\n                           source.ts cast.expr.ts support.type.primitive.ts\n                                 ^\n                                 source.ts cast.expr.ts meta.brace.angle.ts\n                                  ^\n                                  source.ts constant.numeric.decimal.ts\n                                   ^\n                                   source.ts\n                                    ^\n                                    source.ts keyword.operator.bitwise.ts\n                                     ^\n                                     source.ts cast.expr.ts\n                                      ^\n                                      source.ts cast.expr.ts meta.brace.angle.ts\n                                       ^^^^^^\n                                       source.ts cast.expr.ts support.type.primitive.ts\n                                             ^\n                                             source.ts cast.expr.ts meta.brace.angle.ts\n                                              ^\n                                              source.ts constant.numeric.decimal.ts\n                                               ^\n                                               source.ts\n                                                ^\n                                                source.ts keyword.operator.arithmetic.ts\n                                                 ^\n                                                 source.ts cast.expr.ts\n                                                  ^\n                                                  source.ts cast.expr.ts meta.brace.angle.ts\n                                                   ^^^^^^\n                                                   source.ts cast.expr.ts support.type.primitive.ts\n                                                         ^\n                                                         source.ts cast.expr.ts meta.brace.angle.ts\n                                                          ^\n                                                          source.ts constant.numeric.decimal.ts\n                                                           ^\n                                                           source.ts\n                                                            ^\n                                                            source.ts keyword.operator.bitwise.ts\n                                                             ^\n                                                             source.ts cast.expr.ts\n                                                              ^\n                                                              source.ts cast.expr.ts meta.brace.angle.ts\n                                                               ^^^^^^\n                                                               source.ts cast.expr.ts support.type.primitive.ts\n                                                                     ^\n                                                                     source.ts cast.expr.ts meta.brace.angle.ts\n                                                                      ^\n                                                                      source.ts constant.numeric.decimal.ts\n                                                                       ^\n                                                                       source.ts\n                                                                        ^^\n                                                                        source.ts keyword.operator.logical.ts\n                                                                          ^\n                                                                          source.ts\n                                                                           ^\n                                                                           source.ts meta.brace.round.ts\n                                                                            ^\n                                                                            source.ts cast.expr.ts meta.brace.angle.ts\n                                                                             ^^^^^^\n                                                                             source.ts cast.expr.ts support.type.primitive.ts\n                                                                                   ^\n                                                                                   source.ts cast.expr.ts meta.brace.angle.ts\n                                                                                    ^\n                                                                                    source.ts constant.numeric.decimal.ts\n                                                                                     ^\n                                                                                     source.ts meta.brace.round.ts"
  },
  {
    "path": "tests/baselines/Issue549.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction foo(x, y){\n    if(x < y || (x > (y))){\n    }\n    return 'of the jedi';\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function foo(x, y){\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    if(x < y || (x > (y))){\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^\n     source.ts meta.function.ts meta.block.ts keyword.control.conditional.ts\n       ^\n       source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n        ^\n        source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n         ^\n         source.ts meta.function.ts meta.block.ts\n          ^\n          source.ts meta.function.ts meta.block.ts keyword.operator.relational.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^\n            source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.function.ts meta.block.ts\n              ^^\n              source.ts meta.function.ts meta.block.ts keyword.operator.logical.ts\n                ^\n                source.ts meta.function.ts meta.block.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts keyword.operator.relational.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n     ^\n     source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    return 'of the jedi';\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^\n            source.ts meta.function.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n             ^^^^^^^^^^^\n             source.ts meta.function.ts meta.block.ts string.quoted.single.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue550.baseline.txt",
    "content": "original file\n-----------------------------------\nexport const foo = (firstVariable: string, secondVariable: number): string => {\n    return \"foo\"\n}\n\nexport const bar = (\n    firstVariable: string,\n    secondVariable: number,\n    thirdVariable: string\n): string => {\n    return \"baz\"\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export const foo = (firstVariable: string, secondVariable: number): string => {\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^^^\n        source.ts meta.var.expr.ts storage.type.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                     ^^^^^^^^^^^^^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                                    ^^^^^^\n                                    source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts\n                                            ^^^^^^^^^^^^^^\n                                            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                                          ^\n                                                          source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                           ^\n                                                           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                                                            ^^^^^^\n                                                            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                  ^\n                                                                  source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                   ^\n                                                                   source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n                                                                    ^\n                                                                    source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n                                                                     ^^^^^^\n                                                                     source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts support.type.primitive.ts\n                                                                           ^\n                                                                           source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n                                                                            ^^\n                                                                            source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                                              ^\n                                                                              source.ts meta.var.expr.ts meta.arrow.ts\n                                                                               ^\n                                                                               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    return \"foo\"\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n             ^^^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts string.quoted.double.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>export const bar = (\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^^^\n        source.ts meta.var.expr.ts storage.type.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.var.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.brace.round.ts\n>    firstVariable: string,\n ^^^^\n source.ts meta.var.expr.ts\n     ^^^^^^^^^^^^^\n     source.ts meta.var.expr.ts variable.parameter.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.type.annotation.ts\n                    ^^^^^^\n                    source.ts meta.var.expr.ts meta.type.annotation.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.var.expr.ts punctuation.separator.parameter.ts\n>    secondVariable: number,\n ^^^^\n source.ts meta.var.expr.ts\n     ^^^^^^^^^^^^^^\n     source.ts meta.var.expr.ts variable.parameter.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.type.annotation.ts\n                     ^^^^^^\n                     source.ts meta.var.expr.ts meta.type.annotation.ts support.type.primitive.ts\n                           ^\n                           source.ts meta.var.expr.ts punctuation.separator.parameter.ts\n>    thirdVariable: string\n ^^^^\n source.ts meta.var.expr.ts\n     ^^^^^^^^^^^^^\n     source.ts meta.var.expr.ts variable.parameter.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.type.annotation.ts\n                    ^^^^^^\n                    source.ts meta.var.expr.ts meta.type.annotation.ts support.type.primitive.ts\n>): string => {\n ^\n source.ts meta.var.expr.ts meta.brace.round.ts\n  ^\n  source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n   ^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n    ^^^^^^\n    source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts support.type.primitive.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n           ^^\n           source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    return \"baz\"\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n             ^^^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts string.quoted.double.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue551.baseline.txt",
    "content": "original file\n-----------------------------------\nclass a extends b, c { \n}\nclass a2 extends b, c\n{ \n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class a extends b, c { \n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^^^^^^^\n         source.ts meta.class.ts storage.modifier.ts\n                ^\n                source.ts meta.class.ts\n                 ^\n                 source.ts meta.class.ts entity.other.inherited-class.ts\n                  ^\n                  source.ts meta.class.ts punctuation.separator.comma.ts\n                   ^\n                   source.ts meta.class.ts\n                    ^\n                    source.ts meta.class.ts entity.other.inherited-class.ts\n                     ^\n                     source.ts meta.class.ts\n                      ^\n                      source.ts meta.class.ts punctuation.definition.block.ts\n                       ^^\n                       source.ts meta.class.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>class a2 extends b, c\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^\n       source.ts meta.class.ts entity.name.type.class.ts\n         ^\n         source.ts meta.class.ts\n          ^^^^^^^\n          source.ts meta.class.ts storage.modifier.ts\n                 ^\n                 source.ts meta.class.ts\n                  ^\n                  source.ts meta.class.ts entity.other.inherited-class.ts\n                   ^\n                   source.ts meta.class.ts punctuation.separator.comma.ts\n                    ^\n                    source.ts meta.class.ts\n                     ^\n                     source.ts meta.class.ts entity.other.inherited-class.ts\n>{ \n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n  ^^\n  source.ts meta.class.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue554.baseline.txt",
    "content": "original file\n-----------------------------------\nasync function f(x: Promise<object>) {\n    return { ...await x };\n}\n...new Object()\n...function f() {}\n...typeof x\n...void x\n...undefined\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>async function f(x: Promise<object>) {\n ^^^^^\n source.ts meta.function.ts storage.modifier.async.ts\n      ^\n      source.ts meta.function.ts\n       ^^^^^^^^\n       source.ts meta.function.ts storage.type.function.ts\n               ^\n               source.ts meta.function.ts\n                ^\n                source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                     ^^^^^^^\n                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                            ^\n                            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                             ^^^^^^\n                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts support.type.builtin.ts\n                                   ^\n                                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                    ^\n                                    source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                     ^\n                                     source.ts meta.function.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    return { ...await x };\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n              ^^^\n              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.spread.ts\n                 ^^^^^\n                 source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts keyword.control.flow.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>...new Object()\n ^^^\n source.ts keyword.operator.spread.ts\n    ^^^\n    source.ts new.expr.ts keyword.operator.new.ts\n       ^\n       source.ts new.expr.ts\n        ^^^^^^\n        source.ts new.expr.ts meta.function-call.ts support.class.builtin.ts\n              ^\n              source.ts new.expr.ts meta.brace.round.ts\n               ^\n               source.ts new.expr.ts meta.brace.round.ts\n>...function f() {}\n ^^^\n source.ts keyword.operator.spread.ts\n    ^^^^^^^^\n    source.ts meta.function.ts storage.type.function.ts\n            ^\n            source.ts meta.function.ts\n             ^\n             source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.function.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>...typeof x\n ^^^\n source.ts keyword.operator.spread.ts\n    ^^^^^^\n    source.ts keyword.operator.expression.typeof.ts\n          ^\n          source.ts\n           ^\n           source.ts variable.other.readwrite.ts\n>...void x\n ^^^\n source.ts keyword.operator.spread.ts\n    ^^^^\n    source.ts keyword.operator.expression.void.ts\n        ^\n        source.ts\n         ^\n         source.ts variable.other.readwrite.ts\n>...undefined\n ^^^\n source.ts keyword.operator.spread.ts\n    ^^^^^^^^^\n    source.ts constant.language.undefined.ts"
  },
  {
    "path": "tests/baselines/Issue556.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Thing {\n    foo: SomeFunc = () => void 0;\n    bar = () => void 0;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Thing {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n            ^\n            source.ts meta.class.ts\n             ^\n             source.ts meta.class.ts punctuation.definition.block.ts\n>    foo: SomeFunc = () => void 0;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n          ^^^^^^^^\n          source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                        ^^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts storage.type.function.arrow.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                           ^^^^\n                           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.expression.void.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.terminator.statement.ts\n>    bar = () => void 0;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n              ^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts storage.type.function.arrow.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                 ^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts keyword.operator.expression.void.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                       ^\n                       source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue558.baseline.txt",
    "content": "original file\n-----------------------------------\nexport const interview = async (\n   fabricatedCase : FabricatedCase\n) : Promise<InterviewTest> => {\n   const res = await fetch(API_URL + '/interviews', {\n       method: 'POST',\n       headers: new Headers({\n           'Content-Type': 'application/json',\n       }),\n       body: JSON.stringify(fabricatedTest),\n   });\n   const interviewTest = await res.json();\n   return interviewTest;\n};\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export const interview = async (\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^^^\n        source.ts meta.var.expr.ts storage.type.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^^^^^^^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts meta.var.expr.ts\n                          ^^^^^\n                          source.ts meta.var.expr.ts storage.modifier.async.ts\n                               ^\n                               source.ts meta.var.expr.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.brace.round.ts\n>   fabricatedCase : FabricatedCase\n ^^^\n source.ts meta.var.expr.ts\n    ^^^^^^^^^^^^^^\n    source.ts meta.var.expr.ts variable.parameter.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.type.annotation.ts\n                     ^^^^^^^^^^^^^^\n                     source.ts meta.var.expr.ts meta.type.annotation.ts entity.name.type.ts\n>) : Promise<InterviewTest> => {\n ^\n source.ts meta.var.expr.ts meta.brace.round.ts\n  ^\n  source.ts meta.var.expr.ts\n   ^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n    ^\n    source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts entity.name.type.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n             ^^^^^^^^^^^^^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts entity.name.type.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n                            ^^\n                            source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.arrow.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>   const res = await fetch(API_URL + '/interviews', {\n ^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n    ^^^^^\n    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n          ^^^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                ^^^^^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.control.flow.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                      ^^^^^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                            ^^^^^^^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.constant.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                       ^^^^^^^^^^^\n                                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.quoted.single.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.separator.comma.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>       method: 'POST',\n ^^^^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                 ^^^^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>       headers: new Headers({\n ^^^^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts\n        ^^^^^^^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                 ^^^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts new.expr.ts keyword.operator.new.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts new.expr.ts\n                     ^^^^^^^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts new.expr.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts new.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>           'Content-Type': 'application/json',\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts new.expr.ts meta.objectliteral.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts new.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n             ^^^^^^^^^^^^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts new.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts new.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts new.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts new.expr.ts meta.objectliteral.ts meta.object.member.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts new.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                             ^^^^^^^^^^^^^^^^\n                             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts new.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts new.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts new.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>       }),\n ^^^^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts new.expr.ts meta.objectliteral.ts\n        ^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts new.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts new.expr.ts meta.brace.round.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>       body: JSON.stringify(fabricatedTest),\n ^^^^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts\n        ^^^^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n              ^^^^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts support.constant.json.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^^^^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts support.function.json.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                             ^^^^^^^^^^^^^^\n                             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>   });\n ^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts\n    ^\n    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>   const interviewTest = await res.json();\n ^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n    ^^^^^\n    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n          ^^^^^^^^^^^^^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                          ^^^^^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.control.flow.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                ^^^\n                                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                    ^^^^\n                                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>   return interviewTest;\n ^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n    ^^^^^^\n    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n           ^^^^^^^^^^^^^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>};\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue559.baseline.txt",
    "content": "original file\n-----------------------------------\nlet myFunc = function<T,U>(txt:string,num:number){}\n\nclass MyClass {\n  myProp = myFunc<number, () => void>(\"syntax highlight is incorrect\", 1);\n}\n\nlet myProp = myFunc<number, () => void>(\"syntax highlight is correct here\", 1);\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let myFunc = function<T,U>(txt:string,num:number){}\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts entity.name.function.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^^^^^^\n              source.ts meta.var.expr.ts meta.function.expression.ts storage.type.function.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.function.expression.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.function.expression.ts meta.type.parameters.ts entity.name.type.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.function.expression.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.function.expression.ts meta.type.parameters.ts entity.name.type.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.function.expression.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                            ^^^\n                            source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                ^^^^^^\n                                source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                       ^^^\n                                       source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                           ^^^^^^\n                                           source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>class MyClass {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n              ^\n              source.ts meta.class.ts\n               ^\n               source.ts meta.class.ts punctuation.definition.block.ts\n>  myProp = myFunc<number, () => void>(\"syntax highlight is incorrect\", 1);\n ^^\n source.ts meta.class.ts meta.field.declaration.ts\n   ^^^^^^\n   source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^^^^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts\n                              ^^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts meta.type.function.return.ts\n                                 ^^^^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts meta.type.function.return.ts support.type.primitive.ts\n                                     ^\n                                     source.ts meta.class.ts meta.field.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                      ^\n                                      source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                       ^\n                                       source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                        source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts\n                                                                     ^\n                                                                     source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                      ^\n                                                                      source.ts meta.class.ts meta.field.declaration.ts punctuation.separator.comma.ts\n                                                                       ^\n                                                                       source.ts meta.class.ts meta.field.declaration.ts\n                                                                        ^\n                                                                        source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                                                                         ^\n                                                                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                                                          ^\n                                                                          source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>let myProp = myFunc<number, () => void>(\"syntax highlight is correct here\", 1);\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^^^^\n              source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                     ^^^^^^\n                     source.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.type.parameters.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.type.parameters.ts\n                                ^^\n                                source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.function.return.ts\n                                   ^^^^\n                                   source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.function.return.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                          source.ts meta.var.expr.ts string.quoted.double.ts\n                                                                          ^\n                                                                          source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                           ^\n                                                                           source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                                                                            ^\n                                                                            source.ts meta.var.expr.ts\n                                                                             ^\n                                                                             source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                                                              ^\n                                                                              source.ts meta.var.expr.ts meta.brace.round.ts\n                                                                               ^\n                                                                               source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue562.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has cast\nyield <ClassD>10;\n(yield <ClassD>10);\nfunction foo() {\n  return <ClassD>10;\n}\ntopYields.sort ((share1,share2) => {\n    if (share1.yield < share2.yield) { return 1; }\n    if (share1.yield > share2.yield) { return -1; }\n    return 0;\n  });\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has cast\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>yield <ClassD>10;\n ^^^^^\n source.ts keyword.control.flow.ts\n      ^\n      source.ts cast.expr.ts\n       ^\n       source.ts cast.expr.ts meta.brace.angle.ts\n        ^^^^^^\n        source.ts cast.expr.ts entity.name.type.ts\n              ^\n              source.ts cast.expr.ts meta.brace.angle.ts\n               ^^\n               source.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n>(yield <ClassD>10);\n ^\n source.ts meta.brace.round.ts\n  ^^^^^\n  source.ts keyword.control.flow.ts\n       ^\n       source.ts cast.expr.ts\n        ^\n        source.ts cast.expr.ts meta.brace.angle.ts\n         ^^^^^^\n         source.ts cast.expr.ts entity.name.type.ts\n               ^\n               source.ts cast.expr.ts meta.brace.angle.ts\n                ^^\n                source.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.brace.round.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>function foo() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.function.ts\n                ^\n                source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  return <ClassD>10;\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.function.ts meta.block.ts cast.expr.ts\n          ^\n          source.ts meta.function.ts meta.block.ts cast.expr.ts meta.brace.angle.ts\n           ^^^^^^\n           source.ts meta.function.ts meta.block.ts cast.expr.ts entity.name.type.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts cast.expr.ts meta.brace.angle.ts\n                  ^^\n                  source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>topYields.sort ((share1,share2) => {\n ^^^^^^^^^\n source.ts meta.function-call.ts variable.other.object.ts\n          ^\n          source.ts meta.function-call.ts punctuation.accessor.ts\n           ^^^^\n           source.ts meta.function-call.ts support.function.ts\n               ^\n               source.ts\n                ^\n                source.ts meta.brace.round.ts\n                 ^\n                 source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^^^^^^\n                  source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                        ^\n                        source.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                         ^^^^^^\n                         source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                               ^\n                               source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                ^\n                                source.ts meta.arrow.ts\n                                 ^^\n                                 source.ts meta.arrow.ts storage.type.function.arrow.ts\n                                   ^\n                                   source.ts meta.arrow.ts\n                                    ^\n                                    source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    if (share1.yield < share2.yield) { return 1; }\n ^^^^\n source.ts meta.arrow.ts meta.block.ts\n     ^^\n     source.ts meta.arrow.ts meta.block.ts keyword.control.conditional.ts\n       ^\n       source.ts meta.arrow.ts meta.block.ts\n        ^\n        source.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n         ^^^^^^\n         source.ts meta.arrow.ts meta.block.ts variable.other.object.ts\n               ^\n               source.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n                ^^^^^\n                source.ts meta.arrow.ts meta.block.ts variable.other.property.ts\n                     ^\n                     source.ts meta.arrow.ts meta.block.ts\n                      ^\n                      source.ts meta.arrow.ts meta.block.ts keyword.operator.relational.ts\n                       ^\n                       source.ts meta.arrow.ts meta.block.ts\n                        ^^^^^^\n                        source.ts meta.arrow.ts meta.block.ts variable.other.object.ts\n                              ^\n                              source.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n                               ^^^^^\n                               source.ts meta.arrow.ts meta.block.ts variable.other.property.ts\n                                    ^\n                                    source.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.arrow.ts meta.block.ts\n                                      ^\n                                      source.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n                                       ^\n                                       source.ts meta.arrow.ts meta.block.ts meta.block.ts\n                                        ^^^^^^\n                                        source.ts meta.arrow.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n                                              ^\n                                              source.ts meta.arrow.ts meta.block.ts meta.block.ts\n                                               ^\n                                               source.ts meta.arrow.ts meta.block.ts meta.block.ts constant.numeric.decimal.ts\n                                                ^\n                                                source.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n                                                 ^\n                                                 source.ts meta.arrow.ts meta.block.ts meta.block.ts\n                                                  ^\n                                                  source.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    if (share1.yield > share2.yield) { return -1; }\n ^^^^\n source.ts meta.arrow.ts meta.block.ts\n     ^^\n     source.ts meta.arrow.ts meta.block.ts keyword.control.conditional.ts\n       ^\n       source.ts meta.arrow.ts meta.block.ts\n        ^\n        source.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n         ^^^^^^\n         source.ts meta.arrow.ts meta.block.ts variable.other.object.ts\n               ^\n               source.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n                ^^^^^\n                source.ts meta.arrow.ts meta.block.ts variable.other.property.ts\n                     ^\n                     source.ts meta.arrow.ts meta.block.ts\n                      ^\n                      source.ts meta.arrow.ts meta.block.ts keyword.operator.relational.ts\n                       ^\n                       source.ts meta.arrow.ts meta.block.ts\n                        ^^^^^^\n                        source.ts meta.arrow.ts meta.block.ts variable.other.object.ts\n                              ^\n                              source.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n                               ^^^^^\n                               source.ts meta.arrow.ts meta.block.ts variable.other.property.ts\n                                    ^\n                                    source.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.arrow.ts meta.block.ts\n                                      ^\n                                      source.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n                                       ^\n                                       source.ts meta.arrow.ts meta.block.ts meta.block.ts\n                                        ^^^^^^\n                                        source.ts meta.arrow.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n                                              ^\n                                              source.ts meta.arrow.ts meta.block.ts meta.block.ts\n                                               ^\n                                               source.ts meta.arrow.ts meta.block.ts meta.block.ts keyword.operator.arithmetic.ts\n                                                ^\n                                                source.ts meta.arrow.ts meta.block.ts meta.block.ts constant.numeric.decimal.ts\n                                                 ^\n                                                 source.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n                                                  ^\n                                                  source.ts meta.arrow.ts meta.block.ts meta.block.ts\n                                                   ^\n                                                   source.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    return 0;\n ^^^^\n source.ts meta.arrow.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.arrow.ts meta.block.ts\n            ^\n            source.ts meta.arrow.ts meta.block.ts constant.numeric.decimal.ts\n             ^\n             source.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>  });\n ^^\n source.ts meta.arrow.ts meta.block.ts\n   ^\n   source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^\n     source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue566.baseline.txt",
    "content": "original file\n-----------------------------------\nconst COULOMB = 8.957_551_787e9; // N-m^2 / C^2\nconst PLANCK  = 6.626_070_040e-34; // J-s\nconst JENNY   = 867_5309; // C-A-L^2\nlet bits = 0b1100_1100;\nlet routine = 0xC0FFEE_F00D_BED;\n\n1_000_000_000\n1.1_00_01\n1e1_0\n1e+1_0\n1e-1_0\n1.1e10_0\n1.1e+10_0\n1.1e-10_0\n12_34_56\n1_22_333\n1_2.3_4\n1_2.3_4e5_6\n1_2.3_4e+5_6\n1_2.3_4e-5_6\n\n0x00_11;\n0X0_1;\n0x1100_0011;\n0X0_11_0101;\n\n0o00_11;\n0O0_1;\n0o1100_0011;\n0O0_11_0101;\n\n0b00_11;\n0B0_1;\n0b1100_0011;\n0B0_11_0101;\n\n// Verify the following are not classified as a number\n_1_2;\n0b_1;\n0x_1;\n0o_1;\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const COULOMB = 8.957_551_787e9; // N-m^2 / C^2\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.var.expr.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n                   ^^^^^^^^^^^^^\n                   source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                ^\n                                source.ts punctuation.terminator.statement.ts\n                                 ^\n                                 source.ts\n                                  ^^\n                                  source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                    ^^^^^^^^^^^^\n                                    source.ts comment.line.double-slash.ts\n>const PLANCK  = 6.626_070_040e-34; // J-s\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n             ^^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.var.expr.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n                   ^^^^^^^^^^^^^^^\n                   source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                  ^\n                                  source.ts punctuation.terminator.statement.ts\n                                   ^\n                                   source.ts\n                                    ^^\n                                    source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                      ^^^^\n                                      source.ts comment.line.double-slash.ts\n>const JENNY   = 867_5309; // C-A-L^2\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^^^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^^^^^^^^\n                 source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n                          ^\n                          source.ts\n                           ^^\n                           source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                             ^^^^^^^^\n                             source.ts comment.line.double-slash.ts\n>let bits = 0b1100_1100;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^^^^^^^^^^^\n            source.ts meta.var.expr.ts constant.numeric.binary.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts\n>let routine = 0xC0FFEE_F00D_BED;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^^^^^^^^^^^^^^^^\n               source.ts meta.var.expr.ts constant.numeric.hex.ts\n                                ^\n                                source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>1_000_000_000\n ^^^^^^^^^^^^^\n source.ts constant.numeric.decimal.ts\n>1.1_00_01\n ^\n source.ts constant.numeric.decimal.ts\n  ^\n  source.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n   ^^^^^^^\n   source.ts constant.numeric.decimal.ts\n>1e1_0\n ^^^^^\n source.ts constant.numeric.decimal.ts\n>1e+1_0\n ^^^^^^\n source.ts constant.numeric.decimal.ts\n>1e-1_0\n ^^^^^^\n source.ts constant.numeric.decimal.ts\n>1.1e10_0\n ^\n source.ts constant.numeric.decimal.ts\n  ^\n  source.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n   ^^^^^^\n   source.ts constant.numeric.decimal.ts\n>1.1e+10_0\n ^\n source.ts constant.numeric.decimal.ts\n  ^\n  source.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n   ^^^^^^^\n   source.ts constant.numeric.decimal.ts\n>1.1e-10_0\n ^\n source.ts constant.numeric.decimal.ts\n  ^\n  source.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n   ^^^^^^^\n   source.ts constant.numeric.decimal.ts\n>12_34_56\n ^^^^^^^^\n source.ts constant.numeric.decimal.ts\n>1_22_333\n ^^^^^^^^\n source.ts constant.numeric.decimal.ts\n>1_2.3_4\n ^^^\n source.ts constant.numeric.decimal.ts\n    ^\n    source.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n     ^^^\n     source.ts constant.numeric.decimal.ts\n>1_2.3_4e5_6\n ^^^\n source.ts constant.numeric.decimal.ts\n    ^\n    source.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n     ^^^^^^^\n     source.ts constant.numeric.decimal.ts\n>1_2.3_4e+5_6\n ^^^\n source.ts constant.numeric.decimal.ts\n    ^\n    source.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n     ^^^^^^^^\n     source.ts constant.numeric.decimal.ts\n>1_2.3_4e-5_6\n ^^^\n source.ts constant.numeric.decimal.ts\n    ^\n    source.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n     ^^^^^^^^\n     source.ts constant.numeric.decimal.ts\n>\n ^\n source.ts\n>0x00_11;\n ^^^^^^^\n source.ts constant.numeric.hex.ts\n        ^\n        source.ts punctuation.terminator.statement.ts\n>0X0_1;\n ^^^^^\n source.ts constant.numeric.hex.ts\n      ^\n      source.ts punctuation.terminator.statement.ts\n>0x1100_0011;\n ^^^^^^^^^^^\n source.ts constant.numeric.hex.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>0X0_11_0101;\n ^^^^^^^^^^^\n source.ts constant.numeric.hex.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>0o00_11;\n ^^^^^^^\n source.ts constant.numeric.octal.ts\n        ^\n        source.ts punctuation.terminator.statement.ts\n>0O0_1;\n ^^^^^\n source.ts constant.numeric.octal.ts\n      ^\n      source.ts punctuation.terminator.statement.ts\n>0o1100_0011;\n ^^^^^^^^^^^\n source.ts constant.numeric.octal.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>0O0_11_0101;\n ^^^^^^^^^^^\n source.ts constant.numeric.octal.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>0b00_11;\n ^^^^^^^\n source.ts constant.numeric.binary.ts\n        ^\n        source.ts punctuation.terminator.statement.ts\n>0B0_1;\n ^^^^^\n source.ts constant.numeric.binary.ts\n      ^\n      source.ts punctuation.terminator.statement.ts\n>0b1100_0011;\n ^^^^^^^^^^^\n source.ts constant.numeric.binary.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>0B0_11_0101;\n ^^^^^^^^^^^\n source.ts constant.numeric.binary.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>// Verify the following are not classified as a number\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>_1_2;\n ^^^^\n source.ts variable.other.readwrite.ts\n     ^\n     source.ts punctuation.terminator.statement.ts\n>0b_1;\n ^\n source.ts\n  ^^^\n  source.ts variable.other.readwrite.ts\n     ^\n     source.ts punctuation.terminator.statement.ts\n>0x_1;\n ^\n source.ts\n  ^^^\n  source.ts variable.other.readwrite.ts\n     ^\n     source.ts punctuation.terminator.statement.ts\n>0o_1;\n ^\n source.ts\n  ^^^\n  source.ts variable.other.readwrite.ts\n     ^\n     source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue567.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction t(){\nreturn e.call(this,[t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),\"-\",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),\"-\",\"4\",t._randomHex(),t._randomHex(),t._randomHex(),\"-\",t._oneOf(t._timeHighBits),t._randomHex(),t._randomHex(),t._randomHex(),\"-\",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex()].join(\"\"))||this}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function t(){\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>return e.call(this,[t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),\"-\",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),\"-\",\"4\",t._randomHex(),t._randomHex(),t._randomHex(),\"-\",t._oneOf(t._timeHighBits),t._randomHex(),t._randomHex(),t._randomHex(),\"-\",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex()].join(\"\"))||this}\n ^^^^^^\n source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n       ^\n       source.ts meta.function.ts meta.block.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n          ^^^^\n          source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n               ^^^^\n               source.ts meta.function.ts meta.block.ts variable.language.this.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts punctuation.separator.comma.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                       ^^^^^^^^^^\n                       source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                      ^^^^^^^^^^\n                                      source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                ^\n                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                     ^^^^^^^^^^\n                                                     source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                    ^^^^^^^^^^\n                                                                    source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                              ^\n                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                               ^\n                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                ^\n                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                 ^\n                                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                  ^\n                                                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                   ^^^^^^^^^^\n                                                                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                             ^\n                                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                              ^\n                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                               ^\n                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                ^\n                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                 ^\n                                                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                  ^^^^^^^^^^\n                                                                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                            ^\n                                                                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                             ^\n                                                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                              ^\n                                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                               ^\n                                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                ^\n                                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                 ^^^^^^^^^^\n                                                                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                           ^\n                                                                                                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                            ^\n                                                                                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                             ^\n                                                                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                              ^\n                                                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                               ^\n                                                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                ^^^^^^^^^^\n                                                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                          ^\n                                                                                                                                          source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                           ^\n                                                                                                                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                            ^\n                                                                                                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                             ^\n                                                                                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                                                                                              ^\n                                                                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts\n                                                                                                                                               ^\n                                                                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                                                                                ^\n                                                                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                 ^\n                                                                                                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                  ^\n                                                                                                                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                   ^^^^^^^^^^\n                                                                                                                                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                             ^\n                                                                                                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                              ^\n                                                                                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                               ^\n                                                                                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                ^\n                                                                                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                 ^\n                                                                                                                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                  ^^^^^^^^^^\n                                                                                                                                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                            ^\n                                                                                                                                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                             ^\n                                                                                                                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                              ^\n                                                                                                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                               ^\n                                                                                                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                ^\n                                                                                                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                 ^^^^^^^^^^\n                                                                                                                                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                           ^\n                                                                                                                                                                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                            ^\n                                                                                                                                                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                             ^\n                                                                                                                                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                              ^\n                                                                                                                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                               ^\n                                                                                                                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                ^^^^^^^^^^\n                                                                                                                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                          ^\n                                                                                                                                                                                                          source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                           ^\n                                                                                                                                                                                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                            ^\n                                                                                                                                                                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                             ^\n                                                                                                                                                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                                                                                                                                                              ^\n                                                                                                                                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts\n                                                                                                                                                                                                               ^\n                                                                                                                                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts\n                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                    source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                     source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                      ^\n                                                                                                                                                                                                                      source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                       ^^^^^^^^^^\n                                                                                                                                                                                                                       source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                    source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                     source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                      ^^^^^^^^^^\n                                                                                                                                                                                                                                      source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                    source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                     ^^^^^^^^^^\n                                                                                                                                                                                                                                                     source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts\n                                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                                    source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                     source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                      ^\n                                                                                                                                                                                                                                                                      source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                                                       source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                        ^^^^^^\n                                                                                                                                                                                                                                                                        source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                 ^^^^^^^^^^^^^\n                                                                                                                                                                                                                                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts variable.other.property.ts\n                                                                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                  ^^^^^^^^^^\n                                                                                                                                                                                                                                                                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                                                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                 ^^^^^^^^^^\n                                                                                                                                                                                                                                                                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                                                                                                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                                                                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                ^^^^^^^^^^\n                                                                                                                                                                                                                                                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                                                                                                                          ^\n                                                                                                                                                                                                                                                                                                                                          source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                                                                                                                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                                                                                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                                                                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                                                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts\n                                                                                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                                                                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                                                                                                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                   ^^^^^^^^^^\n                                                                                                                                                                                                                                                                                                                                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                                                                                                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                                                                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                                                                                                                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                  ^^^^^^^^^^\n                                                                                                                                                                                                                                                                                                                                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                                                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                                                                                                                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                                                                                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                                                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                                                                                                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                 ^^^^^^^^^^\n                                                                                                                                                                                                                                                                                                                                                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                                                                                                                                                                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                                                                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                                                                                                                                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                                                                                                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                               ^\n                                                                                                                                                                                                                                                                                                                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                ^^^^^^^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                                                                                                                                                                                          ^\n                                                                                                                                                                                                                                                                                                                                                                                                          source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                                                                                                                                                                                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                                                                                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                                                                                                                                                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                                                                                                                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                               ^^^^^^^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                               source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                                                                                                                                                                                                         source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                          ^\n                                                                                                                                                                                                                                                                                                                                                                                                                          source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                                                                                                                                                                                                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                                                                                                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                                                                                                                                                                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                              ^^^^^^^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                        ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                        source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                         source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                          ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                          source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                             ^^^^^^^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                       source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                        ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                        source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                         source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                          ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                          source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                            ^^^^^^^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                      source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                       source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                        source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                         source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                          source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ^^^^^^^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ^^^^^^^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ^^^^^^^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ^^^^^^^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.function-call.ts entity.name.function.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               source.ts meta.function.ts meta.block.ts keyword.operator.logical.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ^^^^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 source.ts meta.function.ts meta.block.ts variable.language.this.ts\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ^\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue569.baseline.txt",
    "content": "original file\n-----------------------------------\nexport { default as x } \nexport { x as default }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export { default as x } \n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^^^^^^^\n          source.ts meta.export.ts meta.block.ts keyword.control.default.ts\n                 ^\n                 source.ts meta.export.ts meta.block.ts\n                  ^^\n                  source.ts meta.export.ts meta.block.ts keyword.control.as.ts\n                    ^\n                    source.ts meta.export.ts meta.block.ts\n                     ^\n                     source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n                      ^\n                      source.ts meta.export.ts meta.block.ts\n                       ^\n                       source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.export.ts\n>export { x as default }\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^\n          source.ts meta.export.ts meta.block.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.export.ts meta.block.ts\n            ^^\n            source.ts meta.export.ts meta.block.ts keyword.control.as.ts\n              ^\n              source.ts meta.export.ts meta.block.ts\n               ^^^^^^^\n               source.ts meta.export.ts meta.block.ts keyword.control.default.ts\n                      ^\n                      source.ts meta.export.ts meta.block.ts\n                       ^\n                       source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue571.baseline.txt",
    "content": "original file\n-----------------------------------\nconst o = {\n\t[\"a\" +\n\t\t\"b\"]() {\n\t\treturn 0; // no highlighting!\n\t},\n\t'a\\\n\t'() {\n\t\treturn 0; // no highlighting!\n\t}\n};\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const o = {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>\t[\"a\" +\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n  ^\n  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.brace.square.ts\n   ^\n   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n    ^\n    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts string.quoted.double.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts keyword.operator.arithmetic.ts\n>\t\t\"b\"]() {\n ^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts\n   ^\n   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n    ^\n    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts string.quoted.double.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts meta.array.literal.ts meta.brace.square.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\t\treturn 0; // no highlighting!\n ^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n             ^^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n               ^^^^^^^^^^^^^^^^^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts comment.line.double-slash.ts\n>\t},\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n  ^\n  source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n   ^\n   source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>\t'a\\\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n  ^\n  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n   ^\n   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts\n    ^\n    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts constant.character.escape.ts\n>\t'() {\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts\n  ^\n  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts punctuation.definition.string.end.ts\n   ^\n   source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n    ^\n    source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\t\treturn 0; // no highlighting!\n ^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n             ^^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n               ^^^^^^^^^^^^^^^^^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts comment.line.double-slash.ts\n>\t}\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n  ^\n  source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>};\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue572.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction /*like here*/ * foo() {\n    yield /*or here*/* [42];\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function /*like here*/ * foo() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^\n          source.ts meta.function.ts comment.block.ts punctuation.definition.comment.ts\n            ^^^^^^^^^\n            source.ts meta.function.ts comment.block.ts\n                     ^^\n                     source.ts meta.function.ts comment.block.ts punctuation.definition.comment.ts\n                       ^\n                       source.ts meta.function.ts\n                        ^\n                        source.ts meta.function.ts keyword.generator.asterisk.ts\n                         ^\n                         source.ts meta.function.ts\n                          ^^^\n                          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                              ^\n                              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                               ^\n                               source.ts meta.function.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    yield /*or here*/* [42];\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n          ^\n          source.ts meta.function.ts meta.block.ts\n           ^^\n           source.ts meta.function.ts meta.block.ts comment.block.ts punctuation.definition.comment.ts\n             ^^^^^^^\n             source.ts meta.function.ts meta.block.ts comment.block.ts\n                    ^^\n                    source.ts meta.function.ts meta.block.ts comment.block.ts punctuation.definition.comment.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts keyword.generator.asterisk.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.array.literal.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                         ^^\n                         source.ts meta.function.ts meta.block.ts meta.array.literal.ts constant.numeric.decimal.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue572ForLoop.baseline.txt",
    "content": "original file\n-----------------------------------\n/*0*/ for /*1*/ ( /*2*/ var /*3*/ x /*4*/ in /*5*/ a /*6*/) /*7*/{}\n/*0*/ for /*1*/ ( /*2*/ var /*3*/ x /*4*/ of /*5*/ a /*6*/) /*7*/{}\n/*0*/ for /*1*/ ( /*3*/ x /*4*/ in /*5*/ a /*6*/) /*7*/ {}\n/*0*/ for /*1*/ ( /*3*/ x /*4*/ of /*5*/ a /*6*/) /*7*/ {}\n/*0*/ for /*1*/ ( /*2*/ a /*3*/ ; /*4*/ a /*5*/ ; /*6*/ a /*7*/) /*8*/ {}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/*0*/ for /*1*/ ( /*2*/ var /*3*/ x /*4*/ in /*5*/ a /*6*/) /*7*/{}\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^\n   source.ts comment.block.ts\n    ^^\n    source.ts comment.block.ts punctuation.definition.comment.ts\n      ^\n      source.ts\n       ^^^\n       source.ts keyword.control.loop.ts\n          ^\n          source.ts\n           ^^\n           source.ts comment.block.ts punctuation.definition.comment.ts\n             ^\n             source.ts comment.block.ts\n              ^^\n              source.ts comment.block.ts punctuation.definition.comment.ts\n                ^\n                source.ts\n                 ^\n                 source.ts meta.brace.round.ts\n                  ^\n                  source.ts\n                   ^^\n                   source.ts comment.block.ts punctuation.definition.comment.ts\n                     ^\n                     source.ts comment.block.ts\n                      ^^\n                      source.ts comment.block.ts punctuation.definition.comment.ts\n                        ^\n                        source.ts\n                         ^^^\n                         source.ts meta.var.expr.ts storage.type.ts\n                            ^\n                            source.ts meta.var.expr.ts\n                             ^^\n                             source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n                               ^\n                               source.ts meta.var.expr.ts comment.block.ts\n                                ^^\n                                source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n                                  ^\n                                  source.ts meta.var.expr.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                                     ^^\n                                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts comment.block.ts punctuation.definition.comment.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts comment.block.ts\n                                        ^^\n                                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts comment.block.ts punctuation.definition.comment.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                                           ^^\n                                           source.ts keyword.operator.expression.in.ts\n                                             ^\n                                             source.ts\n                                              ^^\n                                              source.ts comment.block.ts punctuation.definition.comment.ts\n                                                ^\n                                                source.ts comment.block.ts\n                                                 ^^\n                                                 source.ts comment.block.ts punctuation.definition.comment.ts\n                                                   ^\n                                                   source.ts\n                                                    ^\n                                                    source.ts variable.other.readwrite.ts\n                                                     ^\n                                                     source.ts\n                                                      ^^\n                                                      source.ts comment.block.ts punctuation.definition.comment.ts\n                                                        ^\n                                                        source.ts comment.block.ts\n                                                         ^^\n                                                         source.ts comment.block.ts punctuation.definition.comment.ts\n                                                           ^\n                                                           source.ts meta.brace.round.ts\n                                                            ^\n                                                            source.ts\n                                                             ^^\n                                                             source.ts comment.block.ts punctuation.definition.comment.ts\n                                                               ^\n                                                               source.ts comment.block.ts\n                                                                ^^\n                                                                source.ts comment.block.ts punctuation.definition.comment.ts\n                                                                  ^\n                                                                  source.ts meta.block.ts punctuation.definition.block.ts\n                                                                   ^\n                                                                   source.ts meta.block.ts punctuation.definition.block.ts\n>/*0*/ for /*1*/ ( /*2*/ var /*3*/ x /*4*/ of /*5*/ a /*6*/) /*7*/{}\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^\n   source.ts comment.block.ts\n    ^^\n    source.ts comment.block.ts punctuation.definition.comment.ts\n      ^\n      source.ts\n       ^^^\n       source.ts keyword.control.loop.ts\n          ^\n          source.ts\n           ^^\n           source.ts comment.block.ts punctuation.definition.comment.ts\n             ^\n             source.ts comment.block.ts\n              ^^\n              source.ts comment.block.ts punctuation.definition.comment.ts\n                ^\n                source.ts\n                 ^\n                 source.ts meta.brace.round.ts\n                  ^\n                  source.ts\n                   ^^\n                   source.ts comment.block.ts punctuation.definition.comment.ts\n                     ^\n                     source.ts comment.block.ts\n                      ^^\n                      source.ts comment.block.ts punctuation.definition.comment.ts\n                        ^\n                        source.ts\n                         ^^^\n                         source.ts meta.var.expr.ts storage.type.ts\n                            ^\n                            source.ts meta.var.expr.ts\n                             ^^\n                             source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n                               ^\n                               source.ts meta.var.expr.ts comment.block.ts\n                                ^^\n                                source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n                                  ^\n                                  source.ts meta.var.expr.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                                     ^^\n                                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts comment.block.ts punctuation.definition.comment.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts comment.block.ts\n                                        ^^\n                                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts comment.block.ts punctuation.definition.comment.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                                           ^^\n                                           source.ts keyword.operator.expression.of.ts\n                                             ^\n                                             source.ts\n                                              ^^\n                                              source.ts comment.block.ts punctuation.definition.comment.ts\n                                                ^\n                                                source.ts comment.block.ts\n                                                 ^^\n                                                 source.ts comment.block.ts punctuation.definition.comment.ts\n                                                   ^\n                                                   source.ts\n                                                    ^\n                                                    source.ts variable.other.readwrite.ts\n                                                     ^\n                                                     source.ts\n                                                      ^^\n                                                      source.ts comment.block.ts punctuation.definition.comment.ts\n                                                        ^\n                                                        source.ts comment.block.ts\n                                                         ^^\n                                                         source.ts comment.block.ts punctuation.definition.comment.ts\n                                                           ^\n                                                           source.ts meta.brace.round.ts\n                                                            ^\n                                                            source.ts\n                                                             ^^\n                                                             source.ts comment.block.ts punctuation.definition.comment.ts\n                                                               ^\n                                                               source.ts comment.block.ts\n                                                                ^^\n                                                                source.ts comment.block.ts punctuation.definition.comment.ts\n                                                                  ^\n                                                                  source.ts meta.block.ts punctuation.definition.block.ts\n                                                                   ^\n                                                                   source.ts meta.block.ts punctuation.definition.block.ts\n>/*0*/ for /*1*/ ( /*3*/ x /*4*/ in /*5*/ a /*6*/) /*7*/ {}\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^\n   source.ts comment.block.ts\n    ^^\n    source.ts comment.block.ts punctuation.definition.comment.ts\n      ^\n      source.ts\n       ^^^\n       source.ts keyword.control.loop.ts\n          ^\n          source.ts\n           ^^\n           source.ts comment.block.ts punctuation.definition.comment.ts\n             ^\n             source.ts comment.block.ts\n              ^^\n              source.ts comment.block.ts punctuation.definition.comment.ts\n                ^\n                source.ts\n                 ^\n                 source.ts meta.brace.round.ts\n                  ^\n                  source.ts\n                   ^^\n                   source.ts comment.block.ts punctuation.definition.comment.ts\n                     ^\n                     source.ts comment.block.ts\n                      ^^\n                      source.ts comment.block.ts punctuation.definition.comment.ts\n                        ^\n                        source.ts\n                         ^\n                         source.ts variable.other.readwrite.ts\n                          ^\n                          source.ts\n                           ^^\n                           source.ts comment.block.ts punctuation.definition.comment.ts\n                             ^\n                             source.ts comment.block.ts\n                              ^^\n                              source.ts comment.block.ts punctuation.definition.comment.ts\n                                ^\n                                source.ts\n                                 ^^\n                                 source.ts keyword.operator.expression.in.ts\n                                   ^\n                                   source.ts\n                                    ^^\n                                    source.ts comment.block.ts punctuation.definition.comment.ts\n                                      ^\n                                      source.ts comment.block.ts\n                                       ^^\n                                       source.ts comment.block.ts punctuation.definition.comment.ts\n                                         ^\n                                         source.ts\n                                          ^\n                                          source.ts variable.other.readwrite.ts\n                                           ^\n                                           source.ts\n                                            ^^\n                                            source.ts comment.block.ts punctuation.definition.comment.ts\n                                              ^\n                                              source.ts comment.block.ts\n                                               ^^\n                                               source.ts comment.block.ts punctuation.definition.comment.ts\n                                                 ^\n                                                 source.ts meta.brace.round.ts\n                                                  ^\n                                                  source.ts\n                                                   ^^\n                                                   source.ts comment.block.ts punctuation.definition.comment.ts\n                                                     ^\n                                                     source.ts comment.block.ts\n                                                      ^^\n                                                      source.ts comment.block.ts punctuation.definition.comment.ts\n                                                        ^\n                                                        source.ts\n                                                         ^\n                                                         source.ts meta.block.ts punctuation.definition.block.ts\n                                                          ^\n                                                          source.ts meta.block.ts punctuation.definition.block.ts\n>/*0*/ for /*1*/ ( /*3*/ x /*4*/ of /*5*/ a /*6*/) /*7*/ {}\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^\n   source.ts comment.block.ts\n    ^^\n    source.ts comment.block.ts punctuation.definition.comment.ts\n      ^\n      source.ts\n       ^^^\n       source.ts keyword.control.loop.ts\n          ^\n          source.ts\n           ^^\n           source.ts comment.block.ts punctuation.definition.comment.ts\n             ^\n             source.ts comment.block.ts\n              ^^\n              source.ts comment.block.ts punctuation.definition.comment.ts\n                ^\n                source.ts\n                 ^\n                 source.ts meta.brace.round.ts\n                  ^\n                  source.ts\n                   ^^\n                   source.ts comment.block.ts punctuation.definition.comment.ts\n                     ^\n                     source.ts comment.block.ts\n                      ^^\n                      source.ts comment.block.ts punctuation.definition.comment.ts\n                        ^\n                        source.ts\n                         ^\n                         source.ts variable.other.readwrite.ts\n                          ^\n                          source.ts\n                           ^^\n                           source.ts comment.block.ts punctuation.definition.comment.ts\n                             ^\n                             source.ts comment.block.ts\n                              ^^\n                              source.ts comment.block.ts punctuation.definition.comment.ts\n                                ^\n                                source.ts\n                                 ^^\n                                 source.ts keyword.operator.expression.of.ts\n                                   ^\n                                   source.ts\n                                    ^^\n                                    source.ts comment.block.ts punctuation.definition.comment.ts\n                                      ^\n                                      source.ts comment.block.ts\n                                       ^^\n                                       source.ts comment.block.ts punctuation.definition.comment.ts\n                                         ^\n                                         source.ts\n                                          ^\n                                          source.ts variable.other.readwrite.ts\n                                           ^\n                                           source.ts\n                                            ^^\n                                            source.ts comment.block.ts punctuation.definition.comment.ts\n                                              ^\n                                              source.ts comment.block.ts\n                                               ^^\n                                               source.ts comment.block.ts punctuation.definition.comment.ts\n                                                 ^\n                                                 source.ts meta.brace.round.ts\n                                                  ^\n                                                  source.ts\n                                                   ^^\n                                                   source.ts comment.block.ts punctuation.definition.comment.ts\n                                                     ^\n                                                     source.ts comment.block.ts\n                                                      ^^\n                                                      source.ts comment.block.ts punctuation.definition.comment.ts\n                                                        ^\n                                                        source.ts\n                                                         ^\n                                                         source.ts meta.block.ts punctuation.definition.block.ts\n                                                          ^\n                                                          source.ts meta.block.ts punctuation.definition.block.ts\n>/*0*/ for /*1*/ ( /*2*/ a /*3*/ ; /*4*/ a /*5*/ ; /*6*/ a /*7*/) /*8*/ {}\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^\n   source.ts comment.block.ts\n    ^^\n    source.ts comment.block.ts punctuation.definition.comment.ts\n      ^\n      source.ts\n       ^^^\n       source.ts keyword.control.loop.ts\n          ^\n          source.ts\n           ^^\n           source.ts comment.block.ts punctuation.definition.comment.ts\n             ^\n             source.ts comment.block.ts\n              ^^\n              source.ts comment.block.ts punctuation.definition.comment.ts\n                ^\n                source.ts\n                 ^\n                 source.ts meta.brace.round.ts\n                  ^\n                  source.ts\n                   ^^\n                   source.ts comment.block.ts punctuation.definition.comment.ts\n                     ^\n                     source.ts comment.block.ts\n                      ^^\n                      source.ts comment.block.ts punctuation.definition.comment.ts\n                        ^\n                        source.ts\n                         ^\n                         source.ts variable.other.readwrite.ts\n                          ^\n                          source.ts\n                           ^^\n                           source.ts comment.block.ts punctuation.definition.comment.ts\n                             ^\n                             source.ts comment.block.ts\n                              ^^\n                              source.ts comment.block.ts punctuation.definition.comment.ts\n                                ^\n                                source.ts\n                                 ^\n                                 source.ts punctuation.terminator.statement.ts\n                                  ^\n                                  source.ts\n                                   ^^\n                                   source.ts comment.block.ts punctuation.definition.comment.ts\n                                     ^\n                                     source.ts comment.block.ts\n                                      ^^\n                                      source.ts comment.block.ts punctuation.definition.comment.ts\n                                        ^\n                                        source.ts\n                                         ^\n                                         source.ts variable.other.readwrite.ts\n                                          ^\n                                          source.ts\n                                           ^^\n                                           source.ts comment.block.ts punctuation.definition.comment.ts\n                                             ^\n                                             source.ts comment.block.ts\n                                              ^^\n                                              source.ts comment.block.ts punctuation.definition.comment.ts\n                                                ^\n                                                source.ts\n                                                 ^\n                                                 source.ts punctuation.terminator.statement.ts\n                                                  ^\n                                                  source.ts\n                                                   ^^\n                                                   source.ts comment.block.ts punctuation.definition.comment.ts\n                                                     ^\n                                                     source.ts comment.block.ts\n                                                      ^^\n                                                      source.ts comment.block.ts punctuation.definition.comment.ts\n                                                        ^\n                                                        source.ts\n                                                         ^\n                                                         source.ts variable.other.readwrite.ts\n                                                          ^\n                                                          source.ts\n                                                           ^^\n                                                           source.ts comment.block.ts punctuation.definition.comment.ts\n                                                             ^\n                                                             source.ts comment.block.ts\n                                                              ^^\n                                                              source.ts comment.block.ts punctuation.definition.comment.ts\n                                                                ^\n                                                                source.ts meta.brace.round.ts\n                                                                 ^\n                                                                 source.ts\n                                                                  ^^\n                                                                  source.ts comment.block.ts punctuation.definition.comment.ts\n                                                                    ^\n                                                                    source.ts comment.block.ts\n                                                                     ^^\n                                                                     source.ts comment.block.ts punctuation.definition.comment.ts\n                                                                       ^\n                                                                       source.ts\n                                                                        ^\n                                                                        source.ts meta.block.ts punctuation.definition.block.ts\n                                                                         ^\n                                                                         source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue575.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction runQuery() {\n    const query = createQuery<[number[]], Table<Columns>>(`\n        some SQL here\n    `)\n    return database.execute(query)\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function runQuery() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                    ^\n                    source.ts meta.function.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    const query = createQuery<[number[]], Table<Columns>>(`\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^\n     source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n           ^^^^^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                   ^^^^^^^^^^^\n                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                ^^^^^^\n                                source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts meta.type.tuple.ts support.type.primitive.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts meta.type.tuple.ts meta.type.tuple.ts meta.brace.square.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts meta.type.tuple.ts meta.type.tuple.ts meta.brace.square.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                          ^\n                                          source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts\n                                           ^^^^^\n                                           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.ts\n                                                ^\n                                                source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                 ^^^^^^^\n                                                 source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts entity.name.type.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts\n>        some SQL here\n ^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.template.ts\n>    `)\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.template.ts\n     ^\n     source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n>    return database.execute(query)\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^^^^^^^^\n            source.ts meta.function.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                     ^^^^^^^\n                     source.ts meta.function.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                             ^^^^^\n                             source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue578.baseline.txt",
    "content": "original file\n-----------------------------------\nif (targetAttribute) {\n    if (!(targetAttribute instanceof Attribute)) {\n        targetAttribute = new Attribute(targetAttribute);\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>if (targetAttribute) {\n ^^\n source.ts keyword.control.conditional.ts\n   ^\n   source.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^^^^^^^^^^^^^^^\n     source.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.brace.round.ts\n                     ^\n                     source.ts\n                      ^\n                      source.ts meta.block.ts punctuation.definition.block.ts\n>    if (!(targetAttribute instanceof Attribute)) {\n ^^^^\n source.ts meta.block.ts\n     ^^\n     source.ts meta.block.ts keyword.control.conditional.ts\n       ^\n       source.ts meta.block.ts\n        ^\n        source.ts meta.block.ts meta.brace.round.ts\n         ^\n         source.ts meta.block.ts keyword.operator.logical.ts\n          ^\n          source.ts meta.block.ts meta.brace.round.ts\n           ^^^^^^^^^^^^^^^\n           source.ts meta.block.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.block.ts\n                           ^^^^^^^^^^\n                           source.ts meta.block.ts keyword.operator.expression.instanceof.ts\n                                     ^\n                                     source.ts meta.block.ts\n                                      ^^^^^^^^^\n                                      source.ts meta.block.ts entity.name.type.ts\n                                               ^\n                                               source.ts meta.block.ts meta.brace.round.ts\n                                                ^\n                                                source.ts meta.block.ts meta.brace.round.ts\n                                                 ^\n                                                 source.ts meta.block.ts\n                                                  ^\n                                                  source.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>        targetAttribute = new Attribute(targetAttribute);\n ^^^^^^^^\n source.ts meta.block.ts meta.block.ts\n         ^^^^^^^^^^^^^^^\n         source.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.block.ts meta.block.ts\n                         ^\n                         source.ts meta.block.ts meta.block.ts keyword.operator.assignment.ts\n                          ^\n                          source.ts meta.block.ts meta.block.ts\n                           ^^^\n                           source.ts meta.block.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                              ^\n                              source.ts meta.block.ts meta.block.ts new.expr.ts\n                               ^^^^^^^^^\n                               source.ts meta.block.ts meta.block.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                         ^^^^^^^^^^^^^^^\n                                         source.ts meta.block.ts meta.block.ts new.expr.ts variable.other.readwrite.ts\n                                                        ^\n                                                        source.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                         ^\n                                                         source.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.block.ts meta.block.ts\n     ^\n     source.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue579.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction f(): (x: number) => any {\n    return true ? x => f() : x => 0;\n}\nconst x = 0; // no highlight in rest of file\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function f(): (x: number) => any {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.function.ts meta.return.type.ts\n               ^\n               source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                 ^\n                 source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                  ^\n                  source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                   ^^^^^^\n                   source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                         ^\n                         source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                          ^\n                          source.ts meta.function.ts meta.return.type.ts\n                           ^^\n                           source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                             ^\n                             source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                              ^^^\n                              source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts support.type.primitive.ts\n                                 ^\n                                 source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    return true ? x => f() : x => 0;\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^^^^\n            source.ts meta.function.ts meta.block.ts constant.language.boolean.true.ts\n                ^\n                source.ts meta.function.ts meta.block.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts keyword.operator.ternary.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.arrow.ts variable.parameter.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                     ^^\n                     source.ts meta.function.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts keyword.operator.ternary.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.arrow.ts variable.parameter.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                                ^^\n                                source.ts meta.function.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>const x = 0; // no highlight in rest of file\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts constant.numeric.decimal.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n             ^\n             source.ts\n              ^^\n              source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                source.ts comment.line.double-slash.ts"
  },
  {
    "path": "tests/baselines/Issue580.baseline.txt",
    "content": "original file\n-----------------------------------\n(a[0] / 2) / (2)\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>(a[0] / 2) / (2)\n ^\n source.ts meta.brace.round.ts\n  ^\n  source.ts variable.other.readwrite.ts\n   ^\n   source.ts meta.array.literal.ts meta.brace.square.ts\n    ^\n    source.ts meta.array.literal.ts constant.numeric.decimal.ts\n     ^\n     source.ts meta.array.literal.ts meta.brace.square.ts\n      ^\n      source.ts\n       ^\n       source.ts keyword.operator.arithmetic.ts\n        ^\n        source.ts\n         ^\n         source.ts constant.numeric.decimal.ts\n          ^\n          source.ts meta.brace.round.ts\n           ^\n           source.ts\n            ^\n            source.ts keyword.operator.arithmetic.ts\n             ^\n             source.ts\n              ^\n              source.ts meta.brace.round.ts\n               ^\n               source.ts constant.numeric.decimal.ts\n                ^\n                source.ts meta.brace.round.ts"
  },
  {
    "path": "tests/baselines/Issue581.baseline.txt",
    "content": "original file\n-----------------------------------\ninterface Foo {\n  a: () => void;\n  b?: () => void;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>interface Foo {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n              ^\n              source.ts meta.interface.ts\n               ^\n               source.ts meta.interface.ts punctuation.definition.block.ts\n>  a: () => void;\n ^^\n source.ts meta.interface.ts meta.field.declaration.ts\n   ^\n   source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n    ^\n    source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n     ^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n      ^\n      source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n       ^\n       source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n        ^\n        source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n         ^^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n           ^\n           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts\n            ^^^^\n            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts support.type.primitive.ts\n                ^\n                source.ts meta.interface.ts punctuation.terminator.statement.ts\n>  b?: () => void;\n ^^\n source.ts meta.interface.ts meta.field.declaration.ts\n   ^\n   source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n    ^\n    source.ts meta.interface.ts meta.field.declaration.ts keyword.operator.optional.ts\n     ^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n      ^\n      source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n       ^\n       source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n        ^\n        source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n         ^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n          ^^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n            ^\n            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts\n             ^^^^\n             source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts support.type.primitive.ts\n                 ^\n                 source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue584.baseline.txt",
    "content": "original file\n-----------------------------------\nif (startDragXOffset < cornerDistanceThreshold > (shapeWidth - cornerDistanceThreshold)) {\n}\nif (startDragXOffset < cornerDistanceThreshold && startDragYOffset > (shapeWidth - cornerDistanceThreshold)) {\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>if (startDragXOffset < cornerDistanceThreshold > (shapeWidth - cornerDistanceThreshold)) {\n ^^\n source.ts keyword.control.conditional.ts\n   ^\n   source.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^^^^^^^^^^^^^^^^\n     source.ts meta.function-call.ts entity.name.function.ts\n                     ^\n                     source.ts\n                      ^\n                      source.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                       ^\n                       source.ts meta.type.parameters.ts\n                        ^^^^^^^^^^^^^^^^^^^^^^^\n                        source.ts meta.type.parameters.ts entity.name.type.ts\n                                               ^\n                                               source.ts meta.type.parameters.ts\n                                                ^\n                                                source.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                 ^\n                                                 source.ts\n                                                  ^\n                                                  source.ts meta.brace.round.ts\n                                                   ^^^^^^^^^^\n                                                   source.ts variable.other.readwrite.ts\n                                                             ^\n                                                             source.ts\n                                                              ^\n                                                              source.ts keyword.operator.arithmetic.ts\n                                                               ^\n                                                               source.ts\n                                                                ^^^^^^^^^^^^^^^^^^^^^^^\n                                                                source.ts variable.other.readwrite.ts\n                                                                                       ^\n                                                                                       source.ts meta.brace.round.ts\n                                                                                        ^\n                                                                                        source.ts meta.brace.round.ts\n                                                                                         ^\n                                                                                         source.ts\n                                                                                          ^\n                                                                                          source.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n>if (startDragXOffset < cornerDistanceThreshold && startDragYOffset > (shapeWidth - cornerDistanceThreshold)) {\n ^^\n source.ts keyword.control.conditional.ts\n   ^\n   source.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^^^^^^^^^^^^^^^^\n     source.ts variable.other.readwrite.ts\n                     ^\n                     source.ts\n                      ^\n                      source.ts keyword.operator.relational.ts\n                       ^\n                       source.ts\n                        ^^^^^^^^^^^^^^^^^^^^^^^\n                        source.ts variable.other.readwrite.ts\n                                               ^\n                                               source.ts\n                                                ^^\n                                                source.ts keyword.operator.logical.ts\n                                                  ^\n                                                  source.ts\n                                                   ^^^^^^^^^^^^^^^^\n                                                   source.ts variable.other.readwrite.ts\n                                                                   ^\n                                                                   source.ts\n                                                                    ^\n                                                                    source.ts keyword.operator.relational.ts\n                                                                     ^\n                                                                     source.ts\n                                                                      ^\n                                                                      source.ts meta.brace.round.ts\n                                                                       ^^^^^^^^^^\n                                                                       source.ts variable.other.readwrite.ts\n                                                                                 ^\n                                                                                 source.ts\n                                                                                  ^\n                                                                                  source.ts keyword.operator.arithmetic.ts\n                                                                                   ^\n                                                                                   source.ts\n                                                                                    ^^^^^^^^^^^^^^^^^^^^^^^\n                                                                                    source.ts variable.other.readwrite.ts\n                                                                                                           ^\n                                                                                                           source.ts meta.brace.round.ts\n                                                                                                            ^\n                                                                                                            source.ts meta.brace.round.ts\n                                                                                                             ^\n                                                                                                             source.ts\n                                                                                                              ^\n                                                                                                              source.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue585.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\nconst a = <button \n      // disabled={false}\n    />\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>const a = <button \n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^\n       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx\n        ^\n        source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n         ^\n         source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n          ^\n          source.tsx meta.var.expr.tsx\n           ^\n           source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n            ^^^^^^\n            source.tsx meta.var.expr.tsx meta.tag.tsx entity.name.tag.tsx\n                  ^^\n                  source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n>      // disabled={false}\n ^^^^^^\n source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.whitespace.comment.leading.tsx\n       ^^\n       source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n         ^^^^^^^^^^^^^^^^^\n         source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx comment.line.double-slash.tsx\n>    />\n ^^^^\n source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n     ^^\n     source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.end.tsx"
  },
  {
    "path": "tests/baselines/Issue586.baseline.txt",
    "content": "original file\n-----------------------------------\nimport a\n    from b;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>import a\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts variable.other.readwrite.alias.ts\n>    from b;\n ^^^^\n source.ts meta.import.ts\n     ^^^^\n     source.ts meta.import.ts keyword.control.from.ts\n         ^\n         source.ts meta.import.ts\n          ^\n          source.ts meta.import.ts variable.other.readwrite.alias.ts\n           ^\n           source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue59.baseline.txt",
    "content": "original file\n-----------------------------------\nclass A {\n    public props = {} as {};\n    public a: string;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class A {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>    public props = {} as {};\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^^^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts punctuation.definition.block.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts\n                       ^^\n                       source.ts meta.class.ts meta.field.declaration.ts keyword.control.as.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                            ^\n                            source.ts meta.class.ts punctuation.terminator.statement.ts\n>    public a: string;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n               ^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue590.baseline.txt",
    "content": "original file\n-----------------------------------\nconst x = f<N.A, B>(() => {\n    const y = 0;\n    return z;\n});\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const x = f<N.A, B>(() => {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n            ^\n            source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n             ^\n             source.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.module.ts\n              ^\n              source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.accessor.ts\n               ^\n               source.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.ts\n                ^\n                source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.type.parameters.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.brace.round.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts\n                        ^^\n                        source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    const y = 0;\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>    return z;\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>});\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.var.expr.ts meta.brace.round.ts\n   ^\n   source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue591.baseline.txt",
    "content": "original file\n-----------------------------------\nif (a instanceof B || c instanceof D) {\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>if (a instanceof B || c instanceof D) {\n ^^\n source.ts keyword.control.conditional.ts\n   ^\n   source.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^\n     source.ts variable.other.readwrite.ts\n      ^\n      source.ts\n       ^^^^^^^^^^\n       source.ts keyword.operator.expression.instanceof.ts\n                 ^\n                 source.ts\n                  ^\n                  source.ts entity.name.type.ts\n                   ^\n                   source.ts\n                    ^^\n                    source.ts keyword.operator.logical.ts\n                      ^\n                      source.ts\n                       ^\n                       source.ts variable.other.readwrite.ts\n                        ^\n                        source.ts\n                         ^^^^^^^^^^\n                         source.ts keyword.operator.expression.instanceof.ts\n                                   ^\n                                   source.ts\n                                    ^\n                                    source.ts entity.name.type.ts\n                                     ^\n                                     source.ts meta.brace.round.ts\n                                      ^\n                                      source.ts\n                                       ^\n                                       source.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue592.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction test() {\n  type X = { }\n  return {};\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function test() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.function.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  type X = { }\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^\n   source.ts meta.function.ts meta.block.ts meta.type.declaration.ts storage.type.type.ts\n       ^\n       source.ts meta.function.ts meta.block.ts meta.type.declaration.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.type.declaration.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.type.declaration.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.type.declaration.ts meta.object.type.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>  return {};\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.function.ts meta.block.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n            ^\n            source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue595.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction f() {\n    return foo ? { a: true } : { b: false }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function f() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.function.ts\n              ^\n              source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    return foo ? { a: true } : { b: false }\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^^^\n            source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.function.ts meta.block.ts\n                ^\n                source.ts meta.function.ts meta.block.ts keyword.operator.ternary.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                       ^^^^\n                       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts constant.language.boolean.true.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts keyword.operator.ternary.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                                     ^^^^^\n                                     source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts constant.language.boolean.false.ts\n                                          ^\n                                          source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                                           ^\n                                           source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue598.baseline.txt",
    "content": "original file\n-----------------------------------\nf<keyof I>();\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>f<keyof I>();\n ^\n source.ts meta.function-call.ts entity.name.function.ts\n  ^\n  source.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n   ^^^^^\n   source.ts meta.type.parameters.ts keyword.operator.expression.keyof.ts\n        ^\n        source.ts meta.type.parameters.ts\n         ^\n         source.ts meta.type.parameters.ts entity.name.type.ts\n          ^\n          source.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n           ^\n           source.ts meta.brace.round.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue601.baseline.txt",
    "content": "original file\n-----------------------------------\nconst getByKind = async <T>(): Promise<Map<number, T>[]> => {\n    return []\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const getByKind = async <T>(): Promise<Map<number, T>[]> => {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^^^^^\n                   source.ts meta.var.expr.ts meta.arrow.ts storage.modifier.async.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts entity.name.type.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n                                ^^^^^^^\n                                source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts entity.name.type.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                        ^^^\n                                        source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts entity.name.type.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                            ^^^^^^\n                                            source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts support.type.primitive.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts entity.name.type.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                      ^\n                                                      source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                                        ^\n                                                        source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                         ^\n                                                         source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n                                                          ^^\n                                                          source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                            ^\n                                                            source.ts meta.var.expr.ts meta.arrow.ts\n                                                             ^\n                                                             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    return []\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue602.baseline.txt",
    "content": "original file\n-----------------------------------\nlet result = foo instanceof Foo ? foo.bar() : null;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let result = foo instanceof Foo ? foo.bar() : null;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^\n              source.ts meta.var.expr.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^^^^^^^^^^\n                  source.ts meta.var.expr.ts keyword.operator.expression.instanceof.ts\n                            ^\n                            source.ts meta.var.expr.ts\n                             ^^^\n                             source.ts meta.var.expr.ts entity.name.type.ts\n                                ^\n                                source.ts meta.var.expr.ts\n                                 ^\n                                 source.ts meta.var.expr.ts keyword.operator.ternary.ts\n                                  ^\n                                  source.ts meta.var.expr.ts\n                                   ^^^\n                                   source.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                       ^^^\n                                       source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.brace.round.ts\n                                            ^\n                                            source.ts meta.var.expr.ts\n                                             ^\n                                             source.ts meta.var.expr.ts keyword.operator.ternary.ts\n                                              ^\n                                              source.ts meta.var.expr.ts\n                                               ^^^^\n                                               source.ts meta.var.expr.ts constant.language.null.ts\n                                                   ^\n                                                   source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue604.baseline.txt",
    "content": "original file\n-----------------------------------\nconst obj = {\n    get 1() {\n        return 1\n    },\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const obj = {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    get 1() {\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts storage.type.property.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts constant.numeric.decimal.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        return 1\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n>    },\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue605.baseline.txt",
    "content": "original file\n-----------------------------------\ninterface Foo {\n    new: number;\n}\n\ninterface Foo2 {\n    new?: number;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>interface Foo {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n              ^\n              source.ts meta.interface.ts\n               ^\n               source.ts meta.interface.ts punctuation.definition.block.ts\n>    new: number;\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^^^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n        ^\n        source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n         ^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n          ^^^^^^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                ^\n                source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>interface Foo2 {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n               ^\n               source.ts meta.interface.ts\n                ^\n                source.ts meta.interface.ts punctuation.definition.block.ts\n>    new?: number;\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^^^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n        ^\n        source.ts meta.interface.ts meta.field.declaration.ts keyword.operator.optional.ts\n         ^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n          ^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n           ^^^^^^\n           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                 ^\n                 source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue606.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\n<C<number>/>\n<C<number>> </C>\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n><C<number>/>\n ^\n source.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n  ^\n  source.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n   ^\n   source.tsx meta.tag.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n    ^^^^^^\n    source.tsx meta.tag.tsx meta.type.parameters.tsx support.type.primitive.tsx\n          ^\n          source.tsx meta.tag.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n           ^^\n           source.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n><C<number>> </C>\n ^\n source.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n  ^\n  source.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n   ^\n   source.tsx meta.tag.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n    ^^^^^^\n    source.tsx meta.tag.tsx meta.type.parameters.tsx support.type.primitive.tsx\n          ^\n          source.tsx meta.tag.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n           ^\n           source.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n            ^\n            source.tsx meta.tag.tsx meta.jsx.children.tsx\n             ^^\n             source.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n               ^\n               source.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n                ^\n                source.tsx meta.tag.tsx punctuation.definition.tag.end.tsx"
  },
  {
    "path": "tests/baselines/Issue607.baseline.txt",
    "content": "original file\n-----------------------------------\nimport\n{\n    Foo\n}\nfrom \"foo\"\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>import\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n>{\n ^\n source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n>    Foo\n ^^^^\n source.ts meta.import.ts meta.block.ts\n     ^^^\n     source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n>}\n ^\n source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n>from \"foo\"\n ^^^^\n source.ts meta.import.ts keyword.control.from.ts\n     ^\n     source.ts meta.import.ts\n      ^\n      source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n       ^^^\n       source.ts meta.import.ts string.quoted.double.ts\n          ^\n          source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts"
  },
  {
    "path": "tests/baselines/Issue608.baseline.txt",
    "content": "original file\n-----------------------------------\nconst example = () => (\n  {example: \"`x=y`\"} // everything after this line is highlighted like a string\n)\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const example = () => (\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts\n                    ^^\n                    source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.brace.round.ts\n>  {example: \"`x=y`\"} // everything after this line is highlighted like a string\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts\n   ^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n    ^^^^^^^\n    source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n              ^^^^^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts\n                      ^^\n                      source.ts meta.var.expr.ts meta.arrow.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                        source.ts meta.var.expr.ts meta.arrow.ts comment.line.double-slash.ts\n>)\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.brace.round.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue609.baseline.txt",
    "content": "original file\n-----------------------------------\nconst size = import.meta.scriptElement.dataset.size || 300;\nexport function Date(...args) {\n  if (new.target) {\n    // [[Construct]] branch\n    initializeDate(this, ...args);\n  } else {\n    // [[Call]] branch\n    return ToDateString(clockGetTime());\n  }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const size = import.meta.scriptElement.dataset.size || 300;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^^^^\n              source.ts meta.var.expr.ts keyword.control.import.ts\n                    ^\n                    source.ts meta.var.expr.ts punctuation.accessor.ts\n                     ^^^^\n                     source.ts meta.var.expr.ts support.variable.property.importmeta.ts\n                         ^\n                         source.ts meta.var.expr.ts punctuation.accessor.ts\n                          ^^^^^^^^^^^^^\n                          source.ts meta.var.expr.ts variable.other.object.property.ts\n                                       ^\n                                       source.ts meta.var.expr.ts punctuation.accessor.ts\n                                        ^^^^^^^\n                                        source.ts meta.var.expr.ts variable.other.object.property.ts\n                                               ^\n                                               source.ts meta.var.expr.ts punctuation.accessor.ts\n                                                ^^^^\n                                                source.ts meta.var.expr.ts support.variable.property.dom.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts\n                                                     ^^\n                                                     source.ts meta.var.expr.ts keyword.operator.logical.ts\n                                                       ^\n                                                       source.ts meta.var.expr.ts\n                                                        ^^^\n                                                        source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                                           ^\n                                                           source.ts punctuation.terminator.statement.ts\n>export function Date(...args) {\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                      ^^^\n                      source.ts meta.function.ts meta.parameters.ts keyword.operator.rest.ts\n                         ^^^^\n                         source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                              ^\n                              source.ts meta.function.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  if (new.target) {\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^\n   source.ts meta.function.ts meta.block.ts keyword.control.conditional.ts\n     ^\n     source.ts meta.function.ts meta.block.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n       ^^^\n       source.ts meta.function.ts meta.block.ts keyword.operator.new.ts\n          ^\n          source.ts meta.function.ts meta.block.ts punctuation.accessor.ts\n           ^^^^^^\n           source.ts meta.function.ts meta.block.ts support.variable.property.target.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    // [[Construct]] branch\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.function.ts meta.block.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^^^^^^^^^^^^^^^^^^\n       source.ts meta.function.ts meta.block.ts meta.block.ts comment.line.double-slash.ts\n>    initializeDate(this, ...args);\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n     ^^^^^^^^^^^^^^\n     source.ts meta.function.ts meta.block.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                    ^^^^\n                    source.ts meta.function.ts meta.block.ts meta.block.ts variable.language.this.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.separator.comma.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts meta.block.ts\n                          ^^^\n                          source.ts meta.function.ts meta.block.ts meta.block.ts keyword.operator.spread.ts\n                             ^^^^\n                             source.ts meta.function.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>  } else {\n ^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n   ^\n   source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n    ^\n    source.ts meta.function.ts meta.block.ts\n     ^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.conditional.ts\n         ^\n         source.ts meta.function.ts meta.block.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    // [[Call]] branch\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.function.ts meta.block.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^^^^^^^^^^^^^\n       source.ts meta.function.ts meta.block.ts meta.block.ts comment.line.double-slash.ts\n>    return ToDateString(clockGetTime());\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.block.ts\n            ^^^^^^^^^^^^\n            source.ts meta.function.ts meta.block.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                         ^^^^^^^^^^^^\n                         source.ts meta.function.ts meta.block.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>  }\n ^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n   ^\n   source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue610.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Test {\n  constructor() {\n    hola: {\n      const x = 1;\n      console.log('bad highlight');\n      break hola;\n    }\n  }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Test {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n           ^\n           source.ts meta.class.ts\n            ^\n            source.ts meta.class.ts punctuation.definition.block.ts\n>  constructor() {\n ^^\n source.ts meta.class.ts meta.method.declaration.ts\n   ^^^^^^^^^^^\n   source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    hola: {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts entity.name.label.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.separator.label.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>      const x = 1;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>      console.log('bad highlight');\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n       ^^^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.function-call.ts support.class.console.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n               ^^^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                    ^^^^^^^^^^^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts string.quoted.single.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>      break hola;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.control.loop.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n             ^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts entity.name.label.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>  }\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue612.baseline.txt",
    "content": "original file\n-----------------------------------\nclass C {\n    'm'?(): void;\n}\nconst x = 0;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class C {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>    'm'?(): void;\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts string.quoted.single.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts keyword.operator.optional.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n             ^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                 ^\n                 source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>const x = 0;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts constant.numeric.decimal.ts\n            ^\n            source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue613.baseline.txt",
    "content": "original file\n-----------------------------------\ninterface I {\n    x: number extends number\n        ? string\n        : boolean;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>interface I {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^\n             source.ts meta.interface.ts punctuation.definition.block.ts\n>    x: number extends number\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n              ^\n              source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n               ^^^^^^^\n               source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts storage.modifier.ts\n                      ^\n                      source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                       ^^^^^^\n                       source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>        ? string\n ^^^^^^^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n         ^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.ternary.ts\n          ^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n           ^^^^^^\n           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>        : boolean;\n ^^^^^^^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n         ^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.ternary.ts\n          ^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n           ^^^^^^^\n           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue616.baseline.txt",
    "content": "original file\n-----------------------------------\nconst func = () => (\n  getValue()\n)\n\nconst Comp = () => (\n  class extends React.Component {\n  }\n)\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const func = () => (\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts\n                 ^^\n                 source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.brace.round.ts\n>  getValue()\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts\n   ^^^^^^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.function-call.ts entity.name.function.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.brace.round.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.brace.round.ts\n>)\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.brace.round.ts\n>\n ^\n source.ts\n>const Comp = () => (\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts\n                 ^^\n                 source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.brace.round.ts\n>  class extends React.Component {\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts\n   ^^^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.class.ts storage.type.class.ts\n        ^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.class.ts\n         ^^^^^^^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.class.ts storage.modifier.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.class.ts\n                 ^^^^^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.class.ts entity.name.type.module.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.class.ts punctuation.accessor.ts\n                       ^^^^^^^^^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.class.ts entity.other.inherited-class.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.arrow.ts meta.class.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.arrow.ts meta.class.ts punctuation.definition.block.ts\n>  }\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.class.ts\n   ^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.class.ts punctuation.definition.block.ts\n>)\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.brace.round.ts"
  },
  {
    "path": "tests/baselines/Issue62.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has type assertion\nexport default <ApplicationConfig> {\n    // config object\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has type assertion\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>export default <ApplicationConfig> {\n ^^^^^^\n source.ts meta.export.default.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.default.ts\n        ^^^^^^^\n        source.ts meta.export.default.ts keyword.control.default.ts\n               ^\n               source.ts meta.export.default.ts cast.expr.ts\n                ^\n                source.ts meta.export.default.ts cast.expr.ts meta.brace.angle.ts\n                 ^^^^^^^^^^^^^^^^^\n                 source.ts meta.export.default.ts cast.expr.ts entity.name.type.ts\n                                  ^\n                                  source.ts meta.export.default.ts cast.expr.ts meta.brace.angle.ts\n                                   ^\n                                   source.ts meta.export.default.ts\n                                    ^\n                                    source.ts meta.export.default.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    // config object\n ^^^^\n source.ts meta.export.default.ts meta.objectliteral.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.export.default.ts meta.objectliteral.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^^^^^^^^^^^\n       source.ts meta.export.default.ts meta.objectliteral.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.export.default.ts meta.objectliteral.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue623.baseline.txt",
    "content": "original file\n-----------------------------------\nvar foo = /bar//* test */\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var foo = /bar//* test */\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts string.regexp.ts\n           ^\n           source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n            ^^^\n            source.ts meta.var.expr.ts string.regexp.ts\n               ^\n               source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                ^^\n                source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts\n                  ^^^^^^\n                  source.ts meta.var.expr.ts comment.block.ts\n                        ^^\n                        source.ts meta.var.expr.ts comment.block.ts punctuation.definition.comment.ts"
  },
  {
    "path": "tests/baselines/Issue624.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx \nbar => (\n    [\n        <Baz key={`bar-${bar.id}`} />,\n        <Qux />\n    ]\n)\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx \n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>bar => (\n ^^^\n source.tsx meta.arrow.tsx variable.parameter.tsx\n    ^\n    source.tsx meta.arrow.tsx\n     ^^\n     source.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n       ^\n       source.tsx meta.arrow.tsx\n        ^\n        source.tsx meta.arrow.tsx meta.brace.round.tsx\n>    [\n ^^^^\n source.tsx meta.arrow.tsx meta.array.literal.tsx\n     ^\n     source.tsx meta.arrow.tsx meta.array.literal.tsx meta.brace.square.tsx\n>        <Baz key={`bar-${bar.id}`} />,\n ^^^^^^^^\n source.tsx meta.arrow.tsx meta.array.literal.tsx\n         ^\n         source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n          ^^^\n          source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n             ^\n             source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx meta.tag.attributes.tsx\n              ^^^\n              source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                 ^\n                 source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                  ^\n                  source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n                   ^\n                   source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.template.tsx punctuation.definition.string.template.begin.tsx\n                    ^^^^\n                    source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.template.tsx\n                        ^^\n                        source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.template.tsx meta.template.expression.tsx punctuation.definition.template-expression.begin.tsx\n                          ^^^\n                          source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.template.tsx meta.template.expression.tsx meta.embedded.line.tsx variable.other.object.tsx\n                             ^\n                             source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.template.tsx meta.template.expression.tsx meta.embedded.line.tsx punctuation.accessor.tsx\n                              ^^\n                              source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.template.tsx meta.template.expression.tsx meta.embedded.line.tsx support.variable.property.dom.tsx\n                                ^\n                                source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.template.tsx meta.template.expression.tsx punctuation.definition.template-expression.end.tsx\n                                 ^\n                                 source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.template.tsx punctuation.definition.string.template.end.tsx\n                                  ^\n                                  source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n                                   ^\n                                   source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                    ^^\n                                    source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                      ^\n                                      source.tsx meta.arrow.tsx meta.array.literal.tsx punctuation.separator.comma.tsx\n>        <Qux />\n ^^^^^^^^\n source.tsx meta.arrow.tsx meta.array.literal.tsx\n         ^\n         source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n          ^^^\n          source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n             ^\n             source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx meta.tag.attributes.tsx\n              ^^\n              source.tsx meta.arrow.tsx meta.array.literal.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>    ]\n ^^^^\n source.tsx meta.arrow.tsx meta.array.literal.tsx\n     ^\n     source.tsx meta.arrow.tsx meta.array.literal.tsx meta.brace.square.tsx\n>)\n ^\n source.tsx meta.arrow.tsx meta.brace.round.tsx"
  },
  {
    "path": "tests/baselines/Issue625.baseline.txt",
    "content": "original file\n-----------------------------------\nconsole.log(1);\nfoo: {\n    console.log(1);\n}\nconsole.log(1);\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>console.log(1);\n ^^^^^^^\n source.ts meta.function-call.ts support.class.console.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^\n         source.ts meta.function-call.ts support.function.console.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts constant.numeric.decimal.ts\n              ^\n              source.ts meta.brace.round.ts\n               ^\n               source.ts punctuation.terminator.statement.ts\n>foo: {\n ^^^\n source.ts entity.name.label.ts\n    ^\n    source.ts punctuation.separator.label.ts\n     ^\n     source.ts\n      ^\n      source.ts meta.block.ts punctuation.definition.block.ts\n>    console.log(1);\n ^^^^\n source.ts meta.block.ts\n     ^^^^^^^\n     source.ts meta.block.ts meta.function-call.ts support.class.console.ts\n            ^\n            source.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n             ^^^\n             source.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                ^\n                source.ts meta.block.ts meta.brace.round.ts\n                 ^\n                 source.ts meta.block.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.block.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n>console.log(1);\n ^^^^^^^\n source.ts meta.function-call.ts support.class.console.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^\n         source.ts meta.function-call.ts support.function.console.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts constant.numeric.decimal.ts\n              ^\n              source.ts meta.brace.round.ts\n               ^\n               source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue626.baseline.txt",
    "content": "original file\n-----------------------------------\nconst f = (...args) => {}\nconst f = (a, ...args) => {}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const f = (...args) => {}\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^^^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts keyword.operator.rest.ts\n               ^^^^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts\n                     ^^\n                     source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>const f = (a, ...args) => {}\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts\n               ^^^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts keyword.operator.rest.ts\n                  ^^^^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts\n                        ^^\n                        source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue628.baseline.txt",
    "content": "original file\n-----------------------------------\nof(1);\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>of(1);\n ^^\n source.ts meta.function-call.ts entity.name.function.ts\n   ^\n   source.ts meta.brace.round.ts\n    ^\n    source.ts constant.numeric.decimal.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^\n      source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue629.baseline.txt",
    "content": "original file\n-----------------------------------\nclass c {\n\tprivate _forEachCell(\n    terminal: ITerminal,\n    firstRow: number,\n    lastRow: number,\n    callback: (\n      code: number,\n      char: string,\n      width: number,\n      x: number,\n      y: number,\n      fg: number,\n      bg: number,\n      flags: number\n    ) => void\n  ): void {\n\t}\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class c {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>\tprivate _forEachCell(\n ^\n source.ts meta.class.ts\n  ^^^^^^^\n  source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts\n          ^^^^^^^^^^^^\n          source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n>    terminal: ITerminal,\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n     ^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n               ^^^^^^^^^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n>    firstRow: number,\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n     ^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n               ^^^^^^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n>    lastRow: number,\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n              ^^^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n>    callback: (\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n     ^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts entity.name.function.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n>      code: number,\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts\n       ^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts variable.parameter.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts support.type.primitive.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts punctuation.separator.parameter.ts\n>      char: string,\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts\n       ^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts variable.parameter.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts support.type.primitive.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts punctuation.separator.parameter.ts\n>      width: number,\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts variable.parameter.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts\n              ^^^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts support.type.primitive.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts punctuation.separator.parameter.ts\n>      x: number,\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts variable.parameter.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts\n          ^^^^^^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts support.type.primitive.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts punctuation.separator.parameter.ts\n>      y: number,\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts variable.parameter.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts\n          ^^^^^^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts support.type.primitive.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts punctuation.separator.parameter.ts\n>      fg: number,\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts\n       ^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts variable.parameter.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts\n           ^^^^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts support.type.primitive.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts punctuation.separator.parameter.ts\n>      bg: number,\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts\n       ^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts variable.parameter.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts\n           ^^^^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts support.type.primitive.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts punctuation.separator.parameter.ts\n>      flags: number\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts variable.parameter.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts\n              ^^^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.annotation.ts support.type.primitive.ts\n>    ) => void\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n       ^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts\n          ^^^^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts support.type.primitive.ts\n>  ): void {\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n      ^^^^\n      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\t}\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue63.baseline.txt",
    "content": "original file\n-----------------------------------\ntype Callback <T> = (error: Error, value: T) => any\n\ntype Callback<T > = (error: Error, value: T) => any\n\ntype Callback = (error: Error, value: T) => any\n\ntype Callback<string | (a: number, b: string) => void> = (error: Error, value: T) => any\n\n type Foo <T > = {\n\n\tfoo: T,\n\tbar: number\n\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type Callback <T> = (error: Error, value: T) => any\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n              ^\n              source.ts meta.type.declaration.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^\n                   source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.type.declaration.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                      ^^^^^\n                      source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                             ^^^^^\n                             source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts\n                                    ^^^^^\n                                    source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts\n                                              ^^\n                                              source.ts meta.type.declaration.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts meta.type.function.return.ts\n                                                 ^^^\n                                                 source.ts meta.type.declaration.ts meta.type.function.return.ts support.type.primitive.ts\n>\n ^\n source.ts\n>type Callback<T > = (error: Error, value: T) => any\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^\n                   source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.type.declaration.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                      ^^^^^\n                      source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                             ^^^^^\n                             source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts\n                                    ^^^^^\n                                    source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts\n                                              ^^\n                                              source.ts meta.type.declaration.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts meta.type.function.return.ts\n                                                 ^^^\n                                                 source.ts meta.type.declaration.ts meta.type.function.return.ts support.type.primitive.ts\n>\n ^\n source.ts\n>type Callback = (error: Error, value: T) => any\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n              ^\n              source.ts meta.type.declaration.ts\n               ^\n               source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.type.declaration.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^^^^^\n                  source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                         ^^^^^\n                         source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts\n                                ^^^^^\n                                source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts\n                                          ^^\n                                          source.ts meta.type.declaration.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts meta.type.function.return.ts\n                                             ^^^\n                                             source.ts meta.type.declaration.ts meta.type.function.return.ts support.type.primitive.ts\n>\n ^\n source.ts\n>type Callback<string | (a: number, b: string) => void> = (error: Error, value: T) => any\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n               ^^^^^^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts keyword.operator.type.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                            ^^^^^^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                       ^^^^^^\n                                       source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                               ^^\n                                               source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.return.ts\n                                                  ^^^^\n                                                  source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.return.ts support.type.primitive.ts\n                                                      ^\n                                                      source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                       ^\n                                                       source.ts meta.type.declaration.ts\n                                                        ^\n                                                        source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                                         ^\n                                                         source.ts meta.type.declaration.ts\n                                                          ^\n                                                          source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                           ^^^^^\n                                                           source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                                                ^\n                                                                source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                 ^\n                                                                 source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                                  ^^^^^\n                                                                  source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                                       ^\n                                                                       source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                        ^\n                                                                        source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts\n                                                                         ^^^^^\n                                                                         source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                                                              ^\n                                                                              source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                               ^\n                                                                               source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                                                ^\n                                                                                source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                                                 ^\n                                                                                 source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                                  ^\n                                                                                  source.ts meta.type.declaration.ts\n                                                                                   ^^\n                                                                                   source.ts meta.type.declaration.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                                                     ^\n                                                                                     source.ts meta.type.declaration.ts meta.type.function.return.ts\n                                                                                      ^^^\n                                                                                      source.ts meta.type.declaration.ts meta.type.function.return.ts support.type.primitive.ts\n>\n ^\n source.ts\n> type Foo <T > = {\n ^\n source.ts\n  ^^^^\n  source.ts meta.type.declaration.ts storage.type.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^^^\n       source.ts meta.type.declaration.ts entity.name.type.alias.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n            ^\n            source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n             ^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n               ^\n               source.ts meta.type.declaration.ts\n                ^\n                source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts\n>\tfoo: T,\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts\n  ^^^\n  source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n     ^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n      ^\n      source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n       ^\n       source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n        ^\n        source.ts meta.type.declaration.ts meta.object.type.ts punctuation.separator.comma.ts\n>\tbar: number\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts\n  ^^^\n  source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n     ^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n      ^\n      source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n       ^^^^^^\n       source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts\n>}\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue632.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\n<Bar>\n  {({ name }) => (\n   <HelloWorld<Foo>\n      name={name}\n      variants={['TEST']}\n    />\n  )}\n</Bar>\n\n<Bar>\n  {({ name }) => (\n    <HelloWorld<\n      Foo>\n      name={name}\n    />\n  )}\n</Bar>\n\n<Bar>\n  {({ name }) => (\n    <HelloWorld<\n      Foo>\n      name={name}\n      variants={['TEST']}\n    />\n  )}\n</Bar>\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n><Bar>\n ^\n source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n  ^^^\n  source.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n     ^\n     source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>  {({ name }) => (\n ^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n   ^\n   source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx punctuation.section.embedded.begin.tsx\n    ^\n    source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n     ^\n     source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx punctuation.definition.binding-pattern.object.tsx\n      ^\n      source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx\n       ^^^^\n       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx variable.parameter.tsx\n           ^\n           source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx\n            ^\n            source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx punctuation.definition.binding-pattern.object.tsx\n             ^\n             source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n              ^\n              source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx\n               ^^\n               source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n                 ^\n                 source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx\n                  ^\n                  source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.brace.round.tsx\n>   <HelloWorld<Foo>\n ^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx\n    ^\n    source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n     ^^^^^^^^^^\n     source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n               ^\n               source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n                ^^^\n                source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.type.parameters.tsx entity.name.type.tsx\n                   ^\n                   source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n>      name={name}\n ^^^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx\n       ^^^^\n       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n           ^\n           source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n            ^\n            source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n             ^^^^\n             source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.readwrite.tsx\n                 ^\n                 source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n>      variants={['TEST']}\n ^^^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx\n       ^^^^^^^^\n       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n               ^\n               source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                ^\n                source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n                 ^\n                 source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.brace.square.tsx\n                  ^\n                  source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.array.literal.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                   ^^^^\n                   source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.array.literal.tsx string.quoted.single.tsx\n                       ^\n                       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.array.literal.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                        ^\n                        source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.brace.square.tsx\n                         ^\n                         source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n>    />\n ^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx\n     ^^\n     source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>  )}\n ^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx\n   ^\n   source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.brace.round.tsx\n    ^\n    source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx punctuation.section.embedded.end.tsx\n></Bar>\n ^^\n source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n   ^^^\n   source.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n      ^\n      source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>\n ^\n source.tsx\n><Bar>\n ^\n source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n  ^^^\n  source.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n     ^\n     source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>  {({ name }) => (\n ^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n   ^\n   source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx punctuation.section.embedded.begin.tsx\n    ^\n    source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n     ^\n     source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx punctuation.definition.binding-pattern.object.tsx\n      ^\n      source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx\n       ^^^^\n       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx variable.parameter.tsx\n           ^\n           source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx\n            ^\n            source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx punctuation.definition.binding-pattern.object.tsx\n             ^\n             source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n              ^\n              source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx\n               ^^\n               source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n                 ^\n                 source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx\n                  ^\n                  source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.brace.round.tsx\n>    <HelloWorld<\n ^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx\n     ^\n     source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n      ^^^^^^^^^^\n      source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n                ^\n                source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n>      Foo>\n ^^^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.type.parameters.tsx\n       ^^^\n       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.type.parameters.tsx entity.name.type.tsx\n          ^\n          source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n>      name={name}\n ^^^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx\n       ^^^^\n       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n           ^\n           source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n            ^\n            source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n             ^^^^\n             source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.readwrite.tsx\n                 ^\n                 source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n>    />\n ^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx\n     ^^\n     source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>  )}\n ^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx\n   ^\n   source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.brace.round.tsx\n    ^\n    source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx punctuation.section.embedded.end.tsx\n></Bar>\n ^^\n source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n   ^^^\n   source.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n      ^\n      source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>\n ^\n source.tsx\n><Bar>\n ^\n source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n  ^^^\n  source.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n     ^\n     source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>  {({ name }) => (\n ^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n   ^\n   source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx punctuation.section.embedded.begin.tsx\n    ^\n    source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n     ^\n     source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx punctuation.definition.binding-pattern.object.tsx\n      ^\n      source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx\n       ^^^^\n       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx variable.parameter.tsx\n           ^\n           source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx\n            ^\n            source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx meta.parameter.object-binding-pattern.tsx punctuation.definition.binding-pattern.object.tsx\n             ^\n             source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n              ^\n              source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx\n               ^^\n               source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n                 ^\n                 source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx\n                  ^\n                  source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.brace.round.tsx\n>    <HelloWorld<\n ^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx\n     ^\n     source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n      ^^^^^^^^^^\n      source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n                ^\n                source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n>      Foo>\n ^^^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.type.parameters.tsx\n       ^^^\n       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.type.parameters.tsx entity.name.type.tsx\n          ^\n          source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n>      name={name}\n ^^^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx\n       ^^^^\n       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n           ^\n           source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n            ^\n            source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n             ^^^^\n             source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.readwrite.tsx\n                 ^\n                 source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n>      variants={['TEST']}\n ^^^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx\n       ^^^^^^^^\n       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n               ^\n               source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                ^\n                source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n                 ^\n                 source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.brace.square.tsx\n                  ^\n                  source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.array.literal.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                   ^^^^\n                   source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.array.literal.tsx string.quoted.single.tsx\n                       ^\n                       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.array.literal.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                        ^\n                        source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.brace.square.tsx\n                         ^\n                         source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n>    />\n ^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx meta.tag.attributes.tsx\n     ^^\n     source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>  )}\n ^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx\n   ^\n   source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.brace.round.tsx\n    ^\n    source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx punctuation.section.embedded.end.tsx\n></Bar>\n ^^\n source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n   ^^^\n   source.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n      ^\n      source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx"
  },
  {
    "path": "tests/baselines/Issue634.baseline.txt",
    "content": "original file\n-----------------------------------\neval;\neval();\npackage;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>eval;\n ^^^^\n source.ts variable.other.readwrite.ts\n     ^\n     source.ts punctuation.terminator.statement.ts\n>eval();\n ^^^^\n source.ts meta.function-call.ts support.function.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^\n      source.ts meta.brace.round.ts\n       ^\n       source.ts punctuation.terminator.statement.ts\n>package;\n ^^^^^^^\n source.ts keyword.control.ts\n        ^\n        source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue635.baseline.txt",
    "content": "original file\n-----------------------------------\nlet a: number,\n    b: number,\n    c: number;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let a: number,\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n              ^\n              source.ts meta.var.expr.ts punctuation.separator.comma.ts\n>    b: number,\n ^^^^\n source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n              ^\n              source.ts meta.var.expr.ts punctuation.separator.comma.ts\n>    c: number;\n ^^^^\n source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n              ^\n              source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue636.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\nclass Baz { }\n\nclass F {\n\tpublic *foo() {\n\t\tyield <Baz />;\n\t}\n\t\n\tpublic fuu() {\n\t\treturn <Baz />;\n\t}\n}\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>class Baz { }\n ^^^^^\n source.tsx meta.class.tsx storage.type.class.tsx\n      ^\n      source.tsx meta.class.tsx\n       ^^^\n       source.tsx meta.class.tsx entity.name.type.class.tsx\n          ^\n          source.tsx meta.class.tsx\n           ^\n           source.tsx meta.class.tsx punctuation.definition.block.tsx\n            ^\n            source.tsx meta.class.tsx\n             ^\n             source.tsx meta.class.tsx punctuation.definition.block.tsx\n>\n ^\n source.tsx\n>class F {\n ^^^^^\n source.tsx meta.class.tsx storage.type.class.tsx\n      ^\n      source.tsx meta.class.tsx\n       ^\n       source.tsx meta.class.tsx entity.name.type.class.tsx\n        ^\n        source.tsx meta.class.tsx\n         ^\n         source.tsx meta.class.tsx punctuation.definition.block.tsx\n>\tpublic *foo() {\n ^\n source.tsx meta.class.tsx\n  ^^^^^^\n  source.tsx meta.class.tsx meta.method.declaration.tsx storage.modifier.tsx\n        ^\n        source.tsx meta.class.tsx meta.method.declaration.tsx\n         ^\n         source.tsx meta.class.tsx meta.method.declaration.tsx keyword.generator.asterisk.tsx\n          ^^^\n          source.tsx meta.class.tsx meta.method.declaration.tsx meta.definition.method.tsx entity.name.function.tsx\n             ^\n             source.tsx meta.class.tsx meta.method.declaration.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n              ^\n              source.tsx meta.class.tsx meta.method.declaration.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n               ^\n               source.tsx meta.class.tsx meta.method.declaration.tsx\n                ^\n                source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.definition.block.tsx\n>\t\tyield <Baz />;\n ^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n   ^^^^^\n   source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx keyword.control.flow.tsx\n        ^\n        source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n         ^\n         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n          ^^^\n          source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n             ^\n             source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx\n              ^^\n              source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                ^\n                source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.terminator.statement.tsx\n>\t}\n ^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n  ^\n  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.definition.block.tsx\n>\t\n ^^\n source.tsx meta.class.tsx\n>\tpublic fuu() {\n ^\n source.tsx meta.class.tsx\n  ^^^^^^\n  source.tsx meta.class.tsx meta.method.declaration.tsx storage.modifier.tsx\n        ^\n        source.tsx meta.class.tsx meta.method.declaration.tsx\n         ^^^\n         source.tsx meta.class.tsx meta.method.declaration.tsx meta.definition.method.tsx entity.name.function.tsx\n            ^\n            source.tsx meta.class.tsx meta.method.declaration.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n             ^\n             source.tsx meta.class.tsx meta.method.declaration.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n              ^\n              source.tsx meta.class.tsx meta.method.declaration.tsx\n               ^\n               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.definition.block.tsx\n>\t\treturn <Baz />;\n ^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n   ^^^^^^\n   source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx keyword.control.flow.tsx\n         ^\n         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n          ^\n          source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n           ^^^\n           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n              ^\n              source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx\n               ^^\n               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                 ^\n                 source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.terminator.statement.tsx\n>\t}\n ^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n  ^\n  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.definition.block.tsx\n>}\n ^\n source.tsx meta.class.tsx punctuation.definition.block.tsx"
  },
  {
    "path": "tests/baselines/Issue637.baseline.txt",
    "content": "original file\n-----------------------------------\ninterface I {}\n\nconst goodHighlighting2 = <\n  T\n>(\n  arg: T\n) => {\n  const a = arg\n  return a\n}\n\nconst badHighlighting = <\n  T extends I,\n>(\n  arg: T\n) => {\n  const a = arg\n  return a\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>interface I {}\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^\n             source.ts meta.interface.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.interface.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>const goodHighlighting2 = <\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                         ^\n                         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                          ^\n                          source.ts meta.var.expr.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n>  T\n ^^\n source.ts meta.var.expr.ts meta.type.parameters.ts\n   ^\n   source.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.ts\n>>(\n ^\n source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n  ^\n  source.ts meta.var.expr.ts meta.brace.round.ts\n>  arg: T\n ^^\n source.ts meta.var.expr.ts\n   ^^^\n   source.ts meta.var.expr.ts variable.parameter.ts\n      ^\n      source.ts meta.var.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.type.annotation.ts entity.name.type.ts\n>) => {\n ^\n source.ts meta.var.expr.ts meta.brace.round.ts\n  ^\n  source.ts meta.var.expr.ts\n   ^^\n   source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>  const a = arg\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^^^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n             ^^^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n>  return a\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>const badHighlighting = <\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n>  T extends I,\n ^^\n source.ts meta.var.expr.ts meta.type.parameters.ts\n   ^\n   source.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.ts\n    ^\n    source.ts meta.var.expr.ts meta.type.parameters.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.type.parameters.ts storage.modifier.ts\n            ^\n            source.ts meta.var.expr.ts meta.type.parameters.ts\n             ^\n             source.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.ts\n              ^\n              source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n>>(\n ^\n source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n  ^\n  source.ts meta.var.expr.ts meta.brace.round.ts\n>  arg: T\n ^^\n source.ts meta.var.expr.ts\n   ^^^\n   source.ts meta.var.expr.ts variable.parameter.ts\n      ^\n      source.ts meta.var.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.type.annotation.ts entity.name.type.ts\n>) => {\n ^\n source.ts meta.var.expr.ts meta.brace.round.ts\n  ^\n  source.ts meta.var.expr.ts\n   ^^\n   source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>  const a = arg\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^^^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n             ^^^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n>  return a\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue637a.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - since this example has slightly different scopes because of how cast expression works\nconst goodHighlighting = <T extends I>(\n  arg: T\n) => {\n  const a = arg\n  return a\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - since this example has slightly different scopes because of how cast expression works\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>const goodHighlighting = <T extends I>(\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts meta.var.expr.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.type.parameters.ts\n                             ^^^^^^^\n                             source.ts meta.var.expr.ts meta.type.parameters.ts storage.modifier.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.type.parameters.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.brace.round.ts\n>  arg: T\n ^^\n source.ts meta.var.expr.ts\n   ^^^\n   source.ts meta.var.expr.ts variable.parameter.ts\n      ^\n      source.ts meta.var.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.type.annotation.ts entity.name.type.ts\n>) => {\n ^\n source.ts meta.var.expr.ts meta.brace.round.ts\n  ^\n  source.ts meta.var.expr.ts\n   ^^\n   source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>  const a = arg\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^^^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n             ^^^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n>  return a\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue637b.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - since this example has slightly different scopes because of how cast expression works and isnt supported in the tsx file\nconst goodHighlighting = <T extends I>(\n  arg: T\n) => {\n  const a = arg\n  return a\n}\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - since this example has slightly different scopes because of how cast expression works and isnt supported in the tsx file\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>const goodHighlighting = <T extends I>(\n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^^^^^^^^^^^^^^^^\n       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx\n                       ^\n                       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n                        ^\n                        source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n                         ^\n                         source.tsx meta.var.expr.tsx meta.arrow.tsx\n                          ^\n                          source.tsx meta.var.expr.tsx meta.arrow.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n                           ^\n                           source.tsx meta.var.expr.tsx meta.arrow.tsx meta.type.parameters.tsx entity.name.type.tsx\n                            ^\n                            source.tsx meta.var.expr.tsx meta.arrow.tsx meta.type.parameters.tsx\n                             ^^^^^^^\n                             source.tsx meta.var.expr.tsx meta.arrow.tsx meta.type.parameters.tsx storage.modifier.tsx\n                                    ^\n                                    source.tsx meta.var.expr.tsx meta.arrow.tsx meta.type.parameters.tsx\n                                     ^\n                                     source.tsx meta.var.expr.tsx meta.arrow.tsx meta.type.parameters.tsx entity.name.type.tsx\n                                      ^\n                                      source.tsx meta.var.expr.tsx meta.arrow.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n                                       ^\n                                       source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n>  arg: T\n ^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx\n   ^^^\n   source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n      ^\n      source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n       ^\n       source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx\n        ^\n        source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx meta.type.annotation.tsx entity.name.type.tsx\n>) => {\n ^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n  ^\n  source.tsx meta.var.expr.tsx meta.arrow.tsx\n   ^^\n   source.tsx meta.var.expr.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n     ^\n     source.tsx meta.var.expr.tsx meta.arrow.tsx\n      ^\n      source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx punctuation.definition.block.tsx\n>  const a = arg\n ^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx\n   ^^^^^\n   source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx storage.type.tsx\n        ^\n        source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx\n          ^\n          source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n           ^\n           source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n            ^\n            source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx\n             ^^^\n             source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx meta.var.expr.tsx variable.other.readwrite.tsx\n>  return a\n ^^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx\n   ^^^^^^\n   source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx keyword.control.flow.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx\n          ^\n          source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx variable.other.readwrite.tsx\n>}\n ^\n source.tsx meta.var.expr.tsx meta.arrow.tsx meta.block.tsx punctuation.definition.block.tsx"
  },
  {
    "path": "tests/baselines/Issue638.baseline.txt",
    "content": "original file\n-----------------------------------\nconst\n  a = 1,\n  b: string = 'x'\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n>  a = 1,\n ^^\n source.ts meta.var.expr.ts\n   ^\n   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n    ^\n    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n     ^\n     source.ts meta.var.expr.ts keyword.operator.assignment.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts constant.numeric.decimal.ts\n        ^\n        source.ts meta.var.expr.ts punctuation.separator.comma.ts\n>  b: string = 'x'\n ^^\n source.ts meta.var.expr.ts\n   ^\n   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n    ^\n    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n      ^^^^^^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                ^\n                source.ts meta.var.expr.ts string.quoted.single.ts\n                 ^\n                 source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts"
  },
  {
    "path": "tests/baselines/Issue639.baseline.txt",
    "content": "original file\n-----------------------------------\nvar g = function() {console.log(1);};\nvar x = (function(){}/0); // bad highlighting\nvar y = (function(){}/0/g);\nvar z = (function(){}/0/g)/g(function(){}/0/g);\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var g = function() {console.log(1);};\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts entity.name.function.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^^^^\n         source.ts meta.var.expr.ts meta.function.expression.ts storage.type.function.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.function.expression.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                     ^^^^^^^\n                     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function-call.ts support.class.console.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                             ^^^\n                             source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts constant.numeric.decimal.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                                     ^\n                                     source.ts punctuation.terminator.statement.ts\n>var x = (function(){}/0); // bad highlighting\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts meta.brace.round.ts\n          ^^^^^^^^\n          source.ts meta.var.expr.ts meta.function.expression.ts storage.type.function.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                      ^\n                      source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                       ^\n                       source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.brace.round.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n                          ^\n                          source.ts\n                           ^^\n                           source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                             ^^^^^^^^^^^^^^^^^\n                             source.ts comment.line.double-slash.ts\n>var y = (function(){}/0/g);\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts meta.brace.round.ts\n          ^^^^^^^^\n          source.ts meta.var.expr.ts meta.function.expression.ts storage.type.function.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                      ^\n                      source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                       ^\n                       source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                        ^\n                        source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                         ^\n                         source.ts meta.var.expr.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.brace.round.ts\n                           ^\n                           source.ts punctuation.terminator.statement.ts\n>var z = (function(){}/0/g)/g(function(){}/0/g);\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts meta.brace.round.ts\n          ^^^^^^^^\n          source.ts meta.var.expr.ts meta.function.expression.ts storage.type.function.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                      ^\n                      source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                       ^\n                       source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                        ^\n                        source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                         ^\n                         source.ts meta.var.expr.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.brace.round.ts\n                              ^^^^^^^^\n                              source.ts meta.var.expr.ts meta.function.expression.ts storage.type.function.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                                          ^\n                                          source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                           ^\n                                           source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                            ^\n                                            source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                             ^\n                                             source.ts meta.var.expr.ts variable.other.readwrite.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.brace.round.ts\n                                               ^\n                                               source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue64.baseline.txt",
    "content": "original file\n-----------------------------------\nres.sendfile = deprecate.function(res.sendfile,\n  'res.sendfile: Use res.sendFile instead');\n\n// some comment\n\nres.download = function download(path, filename, fn) {\n  // something\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>res.sendfile = deprecate.function(res.sendfile,\n ^^^\n source.ts variable.other.object.ts\n    ^\n    source.ts punctuation.accessor.ts\n     ^^^^^^^^\n     source.ts variable.other.property.ts\n             ^\n             source.ts\n              ^\n              source.ts keyword.operator.assignment.ts\n               ^\n               source.ts\n                ^^^^^^^^^\n                source.ts meta.function-call.ts variable.other.object.ts\n                         ^\n                         source.ts meta.function-call.ts punctuation.accessor.ts\n                          ^^^^^^^^\n                          source.ts meta.function-call.ts entity.name.function.ts\n                                  ^\n                                  source.ts meta.brace.round.ts\n                                   ^^^\n                                   source.ts variable.other.object.ts\n                                      ^\n                                      source.ts punctuation.accessor.ts\n                                       ^^^^^^^^\n                                       source.ts variable.other.property.ts\n                                               ^\n                                               source.ts punctuation.separator.comma.ts\n>  'res.sendfile: Use res.sendFile instead');\n ^^\n source.ts\n   ^\n   source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n    source.ts string.quoted.single.ts\n                                          ^\n                                          source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                           ^\n                                           source.ts meta.brace.round.ts\n                                            ^\n                                            source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>// some comment\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>res.download = function download(path, filename, fn) {\n ^^^\n source.ts variable.other.object.ts\n    ^\n    source.ts punctuation.accessor.ts\n     ^^^^^^^^\n     source.ts entity.name.function.ts\n             ^\n             source.ts\n              ^\n              source.ts keyword.operator.assignment.ts\n               ^\n               source.ts\n                ^^^^^^^^\n                source.ts meta.function.ts storage.type.function.ts\n                        ^\n                        source.ts meta.function.ts\n                         ^^^^^^^^\n                         source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                  ^^^^\n                                  source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts\n                                        ^^^^^^^^\n                                        source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                ^\n                                                source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.parameters.ts\n                                                  ^^\n                                                  source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                     ^\n                                                     source.ts meta.function.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  // something\n ^^\n source.ts meta.function.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n   ^^\n   source.ts meta.function.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n     ^^^^^^^^^^\n     source.ts meta.function.ts meta.block.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue642.baseline.txt",
    "content": "original file\n-----------------------------------\nexport declare class TestClient {\n    private readonly test1;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export declare class TestClient {\n ^^^^^^\n source.ts meta.class.ts keyword.control.export.ts\n       ^\n       source.ts meta.class.ts\n        ^^^^^^^\n        source.ts meta.class.ts storage.modifier.ts\n               ^\n               source.ts meta.class.ts\n                ^^^^^\n                source.ts meta.class.ts storage.type.class.ts\n                     ^\n                     source.ts meta.class.ts\n                      ^^^^^^^^^^\n                      source.ts meta.class.ts entity.name.type.class.ts\n                                ^\n                                source.ts meta.class.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.definition.block.ts\n>    private readonly test1;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n            ^\n            source.ts meta.class.ts\n             ^^^^^^^^\n             source.ts meta.class.ts meta.field.declaration.ts storage.modifier.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts\n                      ^^^^^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                           ^\n                           source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue643.baseline.txt",
    "content": "original file\n-----------------------------------\nexport class TestClient {\n    private readonly test1;\n    private readonly test2?;\n    private readonly test3;\n    private readonly test4;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export class TestClient {\n ^^^^^^\n source.ts meta.class.ts keyword.control.export.ts\n       ^\n       source.ts meta.class.ts\n        ^^^^^\n        source.ts meta.class.ts storage.type.class.ts\n             ^\n             source.ts meta.class.ts\n              ^^^^^^^^^^\n              source.ts meta.class.ts entity.name.type.class.ts\n                        ^\n                        source.ts meta.class.ts\n                         ^\n                         source.ts meta.class.ts punctuation.definition.block.ts\n>    private readonly test1;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n            ^\n            source.ts meta.class.ts\n             ^^^^^^^^\n             source.ts meta.class.ts meta.field.declaration.ts storage.modifier.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts\n                      ^^^^^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                           ^\n                           source.ts meta.class.ts punctuation.terminator.statement.ts\n>    private readonly test2?;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n            ^\n            source.ts meta.class.ts\n             ^^^^^^^^\n             source.ts meta.class.ts meta.field.declaration.ts storage.modifier.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts\n                      ^^^^^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.optional.ts\n                            ^\n                            source.ts meta.class.ts punctuation.terminator.statement.ts\n>    private readonly test3;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n            ^\n            source.ts meta.class.ts\n             ^^^^^^^^\n             source.ts meta.class.ts meta.field.declaration.ts storage.modifier.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts\n                      ^^^^^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                           ^\n                           source.ts meta.class.ts punctuation.terminator.statement.ts\n>    private readonly test4;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n            ^\n            source.ts meta.class.ts\n             ^^^^^^^^\n             source.ts meta.class.ts meta.field.declaration.ts storage.modifier.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts\n                      ^^^^^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                           ^\n                           source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue646.baseline.txt",
    "content": "original file\n-----------------------------------\n// Good\nconst foo = 5; // The json data that the extension sent\nconsole.log(`${foo}`)\n\n// Good\nconst foo = 5\nconsole.log(`${foo}`)\n\n// Bad\nconst foo = 5 // The json data that the extension sent\nconsole.log(`${foo}`)\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// Good\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^\n   source.ts comment.line.double-slash.ts\n>const foo = 5; // The json data that the extension sent\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts constant.numeric.decimal.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n               ^\n               source.ts\n                ^^\n                source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                  source.ts comment.line.double-slash.ts\n>console.log(`${foo}`)\n ^^^^^^^\n source.ts meta.function-call.ts support.class.console.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^\n         source.ts meta.function-call.ts support.function.console.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts string.template.ts punctuation.definition.string.template.begin.ts\n              ^^\n              source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                ^^^\n                source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                   ^\n                   source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                    ^\n                    source.ts string.template.ts punctuation.definition.string.template.end.ts\n                     ^\n                     source.ts meta.brace.round.ts\n>\n ^\n source.ts\n>// Good\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^\n   source.ts comment.line.double-slash.ts\n>const foo = 5\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts constant.numeric.decimal.ts\n>console.log(`${foo}`)\n ^^^^^^^\n source.ts meta.function-call.ts support.class.console.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^\n         source.ts meta.function-call.ts support.function.console.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts string.template.ts punctuation.definition.string.template.begin.ts\n              ^^\n              source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                ^^^\n                source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                   ^\n                   source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                    ^\n                    source.ts string.template.ts punctuation.definition.string.template.end.ts\n                     ^\n                     source.ts meta.brace.round.ts\n>\n ^\n source.ts\n>// Bad\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^\n   source.ts comment.line.double-slash.ts\n>const foo = 5 // The json data that the extension sent\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts constant.numeric.decimal.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^\n               source.ts meta.var.expr.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.var.expr.ts comment.line.double-slash.ts\n>console.log(`${foo}`)\n ^^^^^^^\n source.ts meta.function-call.ts support.class.console.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^\n         source.ts meta.function-call.ts support.function.console.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts string.template.ts punctuation.definition.string.template.begin.ts\n              ^^\n              source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                ^^^\n                source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                   ^\n                   source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                    ^\n                    source.ts string.template.ts punctuation.definition.string.template.end.ts\n                     ^\n                     source.ts meta.brace.round.ts"
  },
  {
    "path": "tests/baselines/Issue647.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction doesSomething2(value: number) {\n  if (value as number < 10) {\n    return \"huh\"\n  } else {\n    return null;\n  }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function doesSomething2(value: number) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^^^^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                         ^^^^^\n                         source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                              ^\n                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                ^^^^^^\n                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                       ^\n                                       source.ts meta.function.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  if (value as number < 10) {\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^\n   source.ts meta.function.ts meta.block.ts keyword.control.conditional.ts\n     ^\n     source.ts meta.function.ts meta.block.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n       ^^^^^\n       source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.function.ts meta.block.ts\n             ^^\n             source.ts meta.function.ts meta.block.ts keyword.control.as.ts\n               ^\n               source.ts meta.function.ts meta.block.ts\n                ^^^^^^\n                source.ts meta.function.ts meta.block.ts support.type.primitive.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts keyword.operator.relational.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts\n                         ^^\n                         source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    return \"huh\"\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.block.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n             ^^^\n             source.ts meta.function.ts meta.block.ts meta.block.ts string.quoted.double.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>  } else {\n ^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n   ^\n   source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n    ^\n    source.ts meta.function.ts meta.block.ts\n     ^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.conditional.ts\n         ^\n         source.ts meta.function.ts meta.block.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    return null;\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.block.ts\n            ^^^^\n            source.ts meta.function.ts meta.block.ts meta.block.ts constant.language.null.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>  }\n ^^\n source.ts meta.function.ts meta.block.ts meta.block.ts\n   ^\n   source.ts meta.function.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue65.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Foo() {\n  get something(): any/*Something*/ {\n    throw new Error('Error...');\n  }\n\n  foo() {\n    'string';\n  }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Foo() {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^^^\n          source.ts meta.class.ts\n             ^\n             source.ts meta.class.ts punctuation.definition.block.ts\n>  get something(): any/*Something*/ {\n ^^\n source.ts meta.class.ts\n   ^^^\n   source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts\n       ^^^^^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                    ^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                       ^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts comment.block.ts punctuation.definition.comment.ts\n                         ^^^^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts comment.block.ts\n                                  ^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts comment.block.ts punctuation.definition.comment.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    throw new Error('Error...');\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.trycatch.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n           ^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts\n               ^^^^^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                      ^^^^^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.single.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>  }\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>  foo() {\n ^^\n source.ts meta.class.ts meta.method.declaration.ts\n   ^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    'string';\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n      ^^^^^^\n      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>  }\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue650.baseline.txt",
    "content": "original file\n-----------------------------------\nexport /* comment */ class MyClass{\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export /* comment */ class MyClass{\n ^^^^^^\n source.ts storage.modifier.ts\n       ^\n       source.ts\n        ^^\n        source.ts comment.block.ts punctuation.definition.comment.ts\n          ^^^^^^^^^\n          source.ts comment.block.ts\n                   ^^\n                   source.ts comment.block.ts punctuation.definition.comment.ts\n                     ^\n                     source.ts\n                      ^^^^^\n                      source.ts meta.class.ts storage.type.class.ts\n                           ^\n                           source.ts meta.class.ts\n                            ^^^^^^^\n                            source.ts meta.class.ts entity.name.type.class.ts\n                                   ^\n                                   source.ts meta.class.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue651.baseline.txt",
    "content": "original file\n-----------------------------------\ninterface DagEdge {\n    a?,\n    b\n}\nvar a = 1;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>interface DagEdge {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^^^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n                  ^\n                  source.ts meta.interface.ts\n                   ^\n                   source.ts meta.interface.ts punctuation.definition.block.ts\n>    a?,\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.interface.ts meta.field.declaration.ts keyword.operator.optional.ts\n       ^\n       source.ts meta.interface.ts punctuation.separator.comma.ts\n>    b\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>var a = 1;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts constant.numeric.decimal.ts\n          ^\n          source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue652.baseline.txt",
    "content": "original file\n-----------------------------------\nconst test2 = \"x\" + \n\t\"y\"; statement;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const test2 = \"x\" + \n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                ^\n                source.ts meta.var.expr.ts string.quoted.double.ts\n                 ^\n                 source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                    ^\n                    source.ts meta.var.expr.ts\n>\t\"y\"; statement;\n ^\n source.ts\n  ^\n  source.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n   ^\n   source.ts string.quoted.double.ts\n    ^\n    source.ts string.quoted.double.ts punctuation.definition.string.end.ts\n     ^\n     source.ts punctuation.terminator.statement.ts\n      ^\n      source.ts\n       ^^^^^^^^^\n       source.ts variable.other.readwrite.ts\n                ^\n                source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue653.baseline.txt",
    "content": "original file\n-----------------------------------\nexport default interface IFoo {\n    x: string;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export default interface IFoo {\n ^^^^^^\n source.ts meta.export.default.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.default.ts\n        ^^^^^^^\n        source.ts meta.export.default.ts keyword.control.default.ts\n               ^\n               source.ts meta.export.default.ts\n                ^^^^^^^^^\n                source.ts meta.export.default.ts meta.interface.ts storage.type.interface.ts\n                         ^\n                         source.ts meta.export.default.ts meta.interface.ts\n                          ^^^^\n                          source.ts meta.export.default.ts meta.interface.ts entity.name.type.interface.ts\n                              ^\n                              source.ts meta.export.default.ts meta.interface.ts\n                               ^\n                               source.ts meta.export.default.ts meta.interface.ts punctuation.definition.block.ts\n>    x: string;\n ^^^^\n source.ts meta.export.default.ts meta.interface.ts meta.field.declaration.ts\n     ^\n     source.ts meta.export.default.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.export.default.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.export.default.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.export.default.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n              ^\n              source.ts meta.export.default.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.export.default.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue654.baseline.txt",
    "content": "original file\n-----------------------------------\nlet app = 1 \n{\n\t1 + 1\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let app = 1 \n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts constant.numeric.decimal.ts\n            ^\n            source.ts meta.var.expr.ts\n>{\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n>\t1 + 1\n ^\n source.ts meta.block.ts\n  ^\n  source.ts meta.block.ts constant.numeric.decimal.ts\n   ^\n   source.ts meta.block.ts\n    ^\n    source.ts meta.block.ts keyword.operator.arithmetic.ts\n     ^\n     source.ts meta.block.ts\n      ^\n      source.ts meta.block.ts constant.numeric.decimal.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue66.baseline.txt",
    "content": "original file\n-----------------------------------\nconst a = new Array<{}>();\n// syntax highlighting wrong from here on out, due to '{}'\n\nclass Thing {\n    render() {\n\n    }\n}\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>const a = new Array<{}>();\n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^\n       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx\n        ^\n        source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n         ^\n         source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n          ^\n          source.tsx meta.var.expr.tsx\n           ^^^\n           source.tsx meta.var.expr.tsx new.expr.tsx keyword.operator.new.tsx\n              ^\n              source.tsx meta.var.expr.tsx new.expr.tsx\n               ^^^^^\n               source.tsx meta.var.expr.tsx new.expr.tsx meta.function-call.tsx support.class.builtin.tsx\n                    ^\n                    source.tsx meta.var.expr.tsx new.expr.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n                     ^\n                     source.tsx meta.var.expr.tsx new.expr.tsx meta.type.parameters.tsx meta.object.type.tsx punctuation.definition.block.tsx\n                      ^\n                      source.tsx meta.var.expr.tsx new.expr.tsx meta.type.parameters.tsx meta.object.type.tsx punctuation.definition.block.tsx\n                       ^\n                       source.tsx meta.var.expr.tsx new.expr.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n                        ^\n                        source.tsx meta.var.expr.tsx new.expr.tsx meta.brace.round.tsx\n                         ^\n                         source.tsx meta.var.expr.tsx new.expr.tsx meta.brace.round.tsx\n                          ^\n                          source.tsx punctuation.terminator.statement.tsx\n>// syntax highlighting wrong from here on out, due to '{}'\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>\n ^\n source.tsx\n>class Thing {\n ^^^^^\n source.tsx meta.class.tsx storage.type.class.tsx\n      ^\n      source.tsx meta.class.tsx\n       ^^^^^\n       source.tsx meta.class.tsx entity.name.type.class.tsx\n            ^\n            source.tsx meta.class.tsx\n             ^\n             source.tsx meta.class.tsx punctuation.definition.block.tsx\n>    render() {\n ^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx\n     ^^^^^^\n     source.tsx meta.class.tsx meta.method.declaration.tsx meta.definition.method.tsx entity.name.function.tsx\n           ^\n           source.tsx meta.class.tsx meta.method.declaration.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n            ^\n            source.tsx meta.class.tsx meta.method.declaration.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n             ^\n             source.tsx meta.class.tsx meta.method.declaration.tsx\n              ^\n              source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.definition.block.tsx\n>\n ^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n>    }\n ^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n     ^\n     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.definition.block.tsx\n>}\n ^\n source.tsx meta.class.tsx punctuation.definition.block.tsx"
  },
  {
    "path": "tests/baselines/Issue661.baseline.txt",
    "content": "original file\n-----------------------------------\n// breaks when '{' start in a new line behind a '('\nconst foo = () => (\n  {\n    num: 1,\n    foo: 'foo',\n    bar: `bar`,\n    //  '=' break all following highlighting\n    baz: `baz=${123}`,\n  }\n);\n\nclass TestColor extends Foo {\n  public init() {}\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// breaks when '{' start in a new line behind a '('\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>const foo = () => (\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts\n                ^^\n                source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.brace.round.ts\n>  {\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts\n   ^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n>    num: 1,\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n        ^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts constant.numeric.decimal.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n>    foo: 'foo',\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n        ^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n           ^^^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.quoted.single.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.quoted.single.ts punctuation.definition.string.end.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n>    bar: `bar`,\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n        ^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.template.ts punctuation.definition.string.template.begin.ts\n           ^^^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.template.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.template.ts punctuation.definition.string.template.end.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n>    //  '=' break all following highlighting\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts comment.line.double-slash.ts\n>    baz: `baz=${123}`,\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n        ^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.template.ts punctuation.definition.string.template.begin.ts\n           ^^^^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.template.ts\n               ^^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                 ^^^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts constant.numeric.decimal.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.template.ts punctuation.definition.string.template.end.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n>  }\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts\n   ^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n>);\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.brace.round.ts\n  ^\n  source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>class TestColor extends Foo {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n                ^\n                source.ts meta.class.ts\n                 ^^^^^^^\n                 source.ts meta.class.ts storage.modifier.ts\n                        ^\n                        source.ts meta.class.ts\n                         ^^^\n                         source.ts meta.class.ts entity.other.inherited-class.ts\n                            ^\n                            source.ts meta.class.ts\n                             ^\n                             source.ts meta.class.ts punctuation.definition.block.ts\n>  public init() {}\n ^^\n source.ts meta.class.ts\n   ^^^^^^\n   source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts\n          ^^^^\n          source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue662.baseline.txt",
    "content": "original file\n-----------------------------------\nconst a = (() => {\n\tlet exports;\n\texports = {\n\t\tx: {},\n\t};\n\tif (exports.x) {\n\t\tconsole.log(\"\");\n\t}\n});\n\n// no highlighting\nclass C {}\nfunction f() {}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const a = (() => {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.brace.round.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts\n               ^^\n               source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>\tlet exports;\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n  ^^^\n  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n      ^^^^^^^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>\texports = {\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n  ^^^^^^^\n  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts support.type.object.module.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n>\t\tx: {},\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts\n   ^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n    ^\n    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n       ^\n       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n        ^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>\t};\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts\n  ^\n  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n   ^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>\tif (exports.x) {\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n  ^^\n  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.conditional.ts\n    ^\n    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n      ^^^^^^^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts support.type.object.module.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts support.variable.property.dom.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>\t\tconsole.log(\"\");\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts\n   ^^^^^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.function-call.ts support.class.console.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n           ^^^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.console.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.brace.round.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>\t}\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts\n  ^\n  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>});\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.var.expr.ts meta.brace.round.ts\n   ^\n   source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>// no highlighting\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>class C {}\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts punctuation.definition.block.ts\n>function f() {}\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.function.ts\n              ^\n              source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n               ^\n               source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue663.baseline.txt",
    "content": "original file\n-----------------------------------\nexport default function foo(): void;\nexport default function foo(bar: string): void;\nexport default function foo(bar?: string): void\n{ }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export default function foo(): void;\n ^^^^^^\n source.ts meta.export.default.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.default.ts\n        ^^^^^^^\n        source.ts meta.export.default.ts keyword.control.default.ts\n               ^\n               source.ts meta.export.default.ts\n                ^^^^^^^^\n                source.ts meta.export.default.ts meta.function.expression.ts storage.type.function.ts\n                        ^\n                        source.ts meta.export.default.ts meta.function.expression.ts\n                         ^^^\n                         source.ts meta.export.default.ts meta.function.expression.ts meta.definition.function.ts entity.name.function.ts\n                            ^\n                            source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                             ^\n                             source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                              ^\n                              source.ts meta.export.default.ts meta.function.expression.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.export.default.ts meta.function.expression.ts meta.return.type.ts\n                                ^^^^\n                                source.ts meta.export.default.ts meta.function.expression.ts meta.return.type.ts support.type.primitive.ts\n                                    ^\n                                    source.ts punctuation.terminator.statement.ts\n>export default function foo(bar: string): void;\n ^^^^^^\n source.ts meta.export.default.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.default.ts\n        ^^^^^^^\n        source.ts meta.export.default.ts keyword.control.default.ts\n               ^\n               source.ts meta.export.default.ts\n                ^^^^^^^^\n                source.ts meta.export.default.ts meta.function.expression.ts storage.type.function.ts\n                        ^\n                        source.ts meta.export.default.ts meta.function.expression.ts\n                         ^^^\n                         source.ts meta.export.default.ts meta.function.expression.ts meta.definition.function.ts entity.name.function.ts\n                            ^\n                            source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                             ^^^\n                             source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                ^\n                                source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                 ^\n                                 source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts\n                                  ^^^^^^\n                                  source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                        ^\n                                        source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                         ^\n                                         source.ts meta.export.default.ts meta.function.expression.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                          ^\n                                          source.ts meta.export.default.ts meta.function.expression.ts meta.return.type.ts\n                                           ^^^^\n                                           source.ts meta.export.default.ts meta.function.expression.ts meta.return.type.ts support.type.primitive.ts\n                                               ^\n                                               source.ts punctuation.terminator.statement.ts\n>export default function foo(bar?: string): void\n ^^^^^^\n source.ts meta.export.default.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.default.ts\n        ^^^^^^^\n        source.ts meta.export.default.ts keyword.control.default.ts\n               ^\n               source.ts meta.export.default.ts\n                ^^^^^^^^\n                source.ts meta.export.default.ts meta.function.expression.ts storage.type.function.ts\n                        ^\n                        source.ts meta.export.default.ts meta.function.expression.ts\n                         ^^^\n                         source.ts meta.export.default.ts meta.function.expression.ts meta.definition.function.ts entity.name.function.ts\n                            ^\n                            source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                             ^^^\n                             source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                                ^\n                                source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts keyword.operator.optional.ts\n                                 ^\n                                 source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                  ^\n                                  source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts\n                                   ^^^^^^\n                                   source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                         ^\n                                         source.ts meta.export.default.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                          ^\n                                          source.ts meta.export.default.ts meta.function.expression.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                           ^\n                                           source.ts meta.export.default.ts meta.function.expression.ts meta.return.type.ts\n                                            ^^^^\n                                            source.ts meta.export.default.ts meta.function.expression.ts meta.return.type.ts support.type.primitive.ts\n>{ }\n ^\n source.ts meta.export.default.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.export.default.ts meta.function.expression.ts meta.block.ts\n   ^\n   source.ts meta.export.default.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue665.baseline.txt",
    "content": "original file\n-----------------------------------\nimport * as _ from 'lodash';\nimport * as $ from 'jquery';\nimport * as React from 'react';\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>import * as _ from 'lodash';\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts constant.language.import-export-all.ts\n         ^\n         source.ts meta.import.ts\n          ^^\n          source.ts meta.import.ts keyword.control.as.ts\n            ^\n            source.ts meta.import.ts\n             ^\n             source.ts meta.import.ts variable.other.readwrite.alias.ts\n              ^\n              source.ts meta.import.ts\n               ^^^^\n               source.ts meta.import.ts keyword.control.from.ts\n                   ^\n                   source.ts meta.import.ts\n                    ^\n                    source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                     ^^^^^^\n                     source.ts meta.import.ts string.quoted.single.ts\n                           ^\n                           source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                            ^\n                            source.ts punctuation.terminator.statement.ts\n>import * as $ from 'jquery';\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts constant.language.import-export-all.ts\n         ^\n         source.ts meta.import.ts\n          ^^\n          source.ts meta.import.ts keyword.control.as.ts\n            ^\n            source.ts meta.import.ts\n             ^\n             source.ts meta.import.ts variable.other.readwrite.alias.ts\n              ^\n              source.ts meta.import.ts\n               ^^^^\n               source.ts meta.import.ts keyword.control.from.ts\n                   ^\n                   source.ts meta.import.ts\n                    ^\n                    source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                     ^^^^^^\n                     source.ts meta.import.ts string.quoted.single.ts\n                           ^\n                           source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                            ^\n                            source.ts punctuation.terminator.statement.ts\n>import * as React from 'react';\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts constant.language.import-export-all.ts\n         ^\n         source.ts meta.import.ts\n          ^^\n          source.ts meta.import.ts keyword.control.as.ts\n            ^\n            source.ts meta.import.ts\n             ^^^^^\n             source.ts meta.import.ts variable.other.readwrite.alias.ts\n                  ^\n                  source.ts meta.import.ts\n                   ^^^^\n                   source.ts meta.import.ts keyword.control.from.ts\n                       ^\n                       source.ts meta.import.ts\n                        ^\n                        source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                         ^^^^^\n                         source.ts meta.import.ts string.quoted.single.ts\n                              ^\n                              source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                               ^\n                               source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue666.baseline.txt",
    "content": "original file\n-----------------------------------\nswitch (0) // discard and renew state per mode\n{\n}\nthis.foo({\n   one, two, three // some comment\n})\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>switch (0) // discard and renew state per mode\n ^^^^^^\n source.ts switch-statement.expr.ts switch-expression.expr.ts keyword.control.switch.ts\n       ^\n       source.ts switch-statement.expr.ts switch-expression.expr.ts\n        ^\n        source.ts switch-statement.expr.ts switch-expression.expr.ts meta.brace.round.ts\n         ^\n         source.ts switch-statement.expr.ts switch-expression.expr.ts constant.numeric.decimal.ts\n          ^\n          source.ts switch-statement.expr.ts switch-expression.expr.ts meta.brace.round.ts\n           ^\n           source.ts switch-statement.expr.ts\n            ^^\n            source.ts switch-statement.expr.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n              source.ts switch-statement.expr.ts comment.line.double-slash.ts\n>{\n ^\n source.ts switch-statement.expr.ts switch-block.expr.ts punctuation.definition.block.ts\n>}\n ^\n source.ts switch-statement.expr.ts punctuation.definition.block.ts\n>this.foo({\n ^^^^\n source.ts meta.function-call.ts variable.language.this.ts\n     ^\n     source.ts meta.function-call.ts punctuation.accessor.ts\n      ^^^\n      source.ts meta.function-call.ts entity.name.function.ts\n         ^\n         source.ts meta.brace.round.ts\n          ^\n          source.ts meta.objectliteral.ts punctuation.definition.block.ts\n>   one, two, three // some comment\n ^^^\n source.ts meta.objectliteral.ts\n    ^^^\n    source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.objectliteral.ts punctuation.separator.comma.ts\n        ^\n        source.ts meta.objectliteral.ts\n         ^^^\n         source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.objectliteral.ts punctuation.separator.comma.ts\n             ^\n             source.ts meta.objectliteral.ts\n              ^^^^^\n              source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.objectliteral.ts meta.object.member.ts\n                    ^^\n                    source.ts meta.objectliteral.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                      ^^^^^^^^^^^^^\n                      source.ts meta.objectliteral.ts comment.line.double-slash.ts\n>})\n ^\n source.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.brace.round.ts"
  },
  {
    "path": "tests/baselines/Issue667.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\nconst foo = <Foo itemIcon={tabDef.ItemID ? (tabDef.Image || null) : 'Add'} onRenderItemLink={(props) => { }}>text</Foo>;\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>const foo = <Foo itemIcon={tabDef.ItemID ? (tabDef.Image || null) : 'Add'} onRenderItemLink={(props) => { }}>text</Foo>;\n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^^^\n       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx\n          ^\n          source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n           ^\n           source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n            ^\n            source.tsx meta.var.expr.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n              ^^^\n              source.tsx meta.var.expr.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n                  ^^^^^^^^\n                  source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                          ^\n                          source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                           ^\n                           source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n                            ^^^^^^\n                            source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.object.tsx\n                                  ^\n                                  source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                                   ^^^^^^\n                                   source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.property.tsx\n                                         ^\n                                         source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                          ^\n                                          source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.ternary.tsx\n                                           ^\n                                           source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                            ^\n                                            source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.brace.round.tsx\n                                             ^^^^^^\n                                             source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.object.tsx\n                                                   ^\n                                                   source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                                                    ^^^^^\n                                                    source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.property.tsx\n                                                         ^\n                                                         source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                                          ^^\n                                                          source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.logical.tsx\n                                                            ^\n                                                            source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                                             ^^^^\n                                                             source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx constant.language.null.tsx\n                                                                 ^\n                                                                 source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.brace.round.tsx\n                                                                  ^\n                                                                  source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                                                   ^\n                                                                   source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.ternary.tsx\n                                                                    ^\n                                                                    source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                                                     ^\n                                                                     source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                                                                      ^^^\n                                                                      source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.single.tsx\n                                                                         ^\n                                                                         source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                                                          ^\n                                                                          source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n                                                                           ^\n                                                                           source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                                                            ^^^^^^^^^^^^^^^^\n                                                                            source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                                                                                            ^\n                                                                                            source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                                                                                             ^\n                                                                                             source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n                                                                                              ^\n                                                                                              source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n                                                                                               ^^^^^\n                                                                                               source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx variable.parameter.tsx\n                                                                                                    ^\n                                                                                                    source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n                                                                                                     ^\n                                                                                                     source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.arrow.tsx\n                                                                                                      ^^\n                                                                                                      source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.arrow.tsx storage.type.function.arrow.tsx\n                                                                                                        ^\n                                                                                                        source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.arrow.tsx\n                                                                                                         ^\n                                                                                                         source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx punctuation.definition.block.tsx\n                                                                                                          ^\n                                                                                                          source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx\n                                                                                                           ^\n                                                                                                           source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.arrow.tsx meta.block.tsx punctuation.definition.block.tsx\n                                                                                                            ^\n                                                                                                            source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n                                                                                                             ^\n                                                                                                             source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                                                                              ^^^^\n                                                                                                              source.tsx meta.var.expr.tsx meta.tag.tsx meta.jsx.children.tsx\n                                                                                                                  ^^\n                                                                                                                  source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                                                                                                                    ^^^\n                                                                                                                    source.tsx meta.var.expr.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n                                                                                                                       ^\n                                                                                                                       source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                                                                                        ^\n                                                                                                                        source.tsx punctuation.terminator.statement.tsx"
  },
  {
    "path": "tests/baselines/Issue668.baseline.txt",
    "content": "original file\n-----------------------------------\nclass c {\n\treadonly options: string[] = _.map(this.objects, 'name').\n\t  concat('Blob', 'Time', 'String', 'Boolean', 'Date', 'Datetime', 'Decimal', 'Double', 'ID', 'Integer', 'Long', 'Object')\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class c {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>\treadonly options: string[] = _.map(this.objects, 'name').\n ^\n source.ts meta.class.ts\n  ^^^^^^^^\n  source.ts meta.class.ts meta.field.declaration.ts storage.modifier.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^^^^^^^\n           source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                    ^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                                 ^^^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                    ^\n                                    source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                     ^^^^\n                                     source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n                                         ^\n                                         source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                                          ^^^^^^^\n                                          source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.field.declaration.ts punctuation.separator.comma.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.field.declaration.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.field.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                    ^^^^\n                                                    source.ts meta.class.ts meta.field.declaration.ts string.quoted.single.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.field.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                         ^\n                                                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                                          ^\n                                                          source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n>\t  concat('Blob', 'Time', 'String', 'Boolean', 'Date', 'Datetime', 'Decimal', 'Double', 'ID', 'Integer', 'Long', 'Object')\n ^^^\n source.ts meta.class.ts meta.method.declaration.ts\n    ^^^^^^\n    source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n            ^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                    ^^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                            ^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                      ^^^^^^^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                 ^^^^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                        ^\n                                                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                         ^^^^^^^^\n                                                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts\n                                                                 ^\n                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                  ^\n                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                   ^\n                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                                    ^\n                                                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                                     ^^^^^^^\n                                                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts\n                                                                            ^\n                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                             ^\n                                                                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                              ^\n                                                                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                                               ^\n                                                                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                                                ^^^^^^\n                                                                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts\n                                                                                      ^\n                                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                                       ^\n                                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                                        ^\n                                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                                                         ^\n                                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                                                          ^^\n                                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts\n                                                                                            ^\n                                                                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                                             ^\n                                                                                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                                              ^\n                                                                                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                                                               ^\n                                                                                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                                                                ^^^^^^^\n                                                                                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts\n                                                                                                       ^\n                                                                                                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                                                        ^\n                                                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                                                         ^\n                                                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                                                                          ^\n                                                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                                                                           ^^^^\n                                                                                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts\n                                                                                                               ^\n                                                                                                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                                                                ^\n                                                                                                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                                                                 ^\n                                                                                                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                                                                                  ^\n                                                                                                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                                                                                   ^^^^^^\n                                                                                                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts\n                                                                                                                         ^\n                                                                                                                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                                                                          ^\n                                                                                                                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue670.baseline.txt",
    "content": "original file\n-----------------------------------\nconst Foo = {\n    /*good*/foooo/*good*/:/*good*/ 123/*good*/, \n    /*good*/'foo'/*BAD*/: 456, \n    /*good*/\"fooo\"/*BAD*/: 789, \n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const Foo = {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    /*good*/foooo/*good*/:/*good*/ 123/*good*/, \n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts comment.block.ts punctuation.definition.comment.ts\n       ^^^^\n       source.ts meta.var.expr.ts meta.objectliteral.ts comment.block.ts\n           ^^\n           source.ts meta.var.expr.ts meta.objectliteral.ts comment.block.ts punctuation.definition.comment.ts\n             ^^^^^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                  ^^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts comment.block.ts punctuation.definition.comment.ts\n                    ^^^^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts comment.block.ts\n                        ^^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts comment.block.ts punctuation.definition.comment.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                           ^^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts comment.block.ts punctuation.definition.comment.ts\n                             ^^^^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts comment.block.ts\n                                 ^^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts comment.block.ts punctuation.definition.comment.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                    ^^^\n                                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                                       ^^\n                                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts comment.block.ts punctuation.definition.comment.ts\n                                         ^^^^\n                                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts comment.block.ts\n                                             ^^\n                                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts comment.block.ts punctuation.definition.comment.ts\n                                               ^\n                                               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                                                ^^\n                                                source.ts meta.var.expr.ts meta.objectliteral.ts\n>    /*good*/'foo'/*BAD*/: 456, \n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts comment.block.ts punctuation.definition.comment.ts\n       ^^^^\n       source.ts meta.var.expr.ts meta.objectliteral.ts comment.block.ts\n           ^^\n           source.ts meta.var.expr.ts meta.objectliteral.ts comment.block.ts punctuation.definition.comment.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n              ^^^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                  ^^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts comment.block.ts punctuation.definition.comment.ts\n                    ^^^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts comment.block.ts\n                       ^^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts comment.block.ts punctuation.definition.comment.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                           ^^^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                               ^^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts\n>    /*good*/\"fooo\"/*BAD*/: 789, \n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts comment.block.ts punctuation.definition.comment.ts\n       ^^^^\n       source.ts meta.var.expr.ts meta.objectliteral.ts comment.block.ts\n           ^^\n           source.ts meta.var.expr.ts meta.objectliteral.ts comment.block.ts punctuation.definition.comment.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n              ^^^^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                   ^^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts comment.block.ts punctuation.definition.comment.ts\n                     ^^^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts comment.block.ts\n                        ^^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts comment.block.ts punctuation.definition.comment.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                            ^^^\n                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                                ^^\n                                source.ts meta.var.expr.ts meta.objectliteral.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue672.baseline.txt",
    "content": "original file\n-----------------------------------\nexport function computed<K extends string | symbol>(...watchedProps: K[]) {\n  if (watchedProps.length < 1) throw new Error('@computed() decorator must have at least one property argument');\n\n  return <V, T extends Record<K, any>>(\n    _target: T,\n    _prop: string | symbol,\n    desc: TypedPropertyDescriptor<V>\n  ) => {\n    if (!desc.get) throw new Error('The `@computed()` decorator must be used on `get` method.');\n    if (desc.set) throw new Error('The `@computed()` decorator cannot be used with `set` method.');\n    if (desc.value) throw new Error('The `@computed()` decorator cannot be used with a regular function.');\n    // ....\n  };\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export function computed<K extends string | symbol>(...watchedProps: K[]) {\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                         ^\n                         source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                          ^\n                          source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                           ^\n                           source.ts meta.function.ts meta.type.parameters.ts\n                            ^^^^^^^\n                            source.ts meta.function.ts meta.type.parameters.ts storage.modifier.ts\n                                   ^\n                                   source.ts meta.function.ts meta.type.parameters.ts\n                                    ^^^^^^\n                                    source.ts meta.function.ts meta.type.parameters.ts support.type.primitive.ts\n                                          ^\n                                          source.ts meta.function.ts meta.type.parameters.ts\n                                           ^\n                                           source.ts meta.function.ts meta.type.parameters.ts keyword.operator.type.ts\n                                            ^\n                                            source.ts meta.function.ts meta.type.parameters.ts\n                                             ^^^^^^\n                                             source.ts meta.function.ts meta.type.parameters.ts support.type.primitive.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                     ^^^\n                                                     source.ts meta.function.ts meta.parameters.ts keyword.operator.rest.ts\n                                                        ^^^^^^^^^^^^\n                                                        source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                                       ^\n                                                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                        ^\n                                                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                         ^\n                                                                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts\n                                                                           ^\n                                                                           source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  if (watchedProps.length < 1) throw new Error('@computed() decorator must have at least one property argument');\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^\n   source.ts meta.function.ts meta.block.ts keyword.control.conditional.ts\n     ^\n     source.ts meta.function.ts meta.block.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n       ^^^^^^^^^^^^\n       source.ts meta.function.ts meta.block.ts variable.other.object.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts punctuation.accessor.ts\n                    ^^^^^^\n                    source.ts meta.function.ts meta.block.ts support.variable.property.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts keyword.operator.relational.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts\n                                ^^^^^\n                                source.ts meta.function.ts meta.block.ts keyword.control.trycatch.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts\n                                      ^^^\n                                      source.ts meta.function.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts new.expr.ts\n                                          ^^^^^\n                                          source.ts meta.function.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                                               ^\n                                               source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                ^\n                                                source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                 source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.single.ts\n                                                                                                               ^\n                                                                                                               source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                                                                ^\n                                                                                                                source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                                                                 ^\n                                                                                                                 source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.function.ts meta.block.ts\n>  return <V, T extends Record<K, any>>(\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.function.ts meta.block.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.type.parameters.ts entity.name.type.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.type.parameters.ts punctuation.separator.comma.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.type.parameters.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.type.parameters.ts entity.name.type.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.type.parameters.ts\n                ^^^^^^^\n                source.ts meta.function.ts meta.block.ts meta.type.parameters.ts storage.modifier.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.type.parameters.ts\n                        ^^^^^^\n                        source.ts meta.function.ts meta.block.ts meta.type.parameters.ts entity.name.type.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.type.parameters.ts meta.type.parameters.ts entity.name.type.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts meta.type.parameters.ts meta.type.parameters.ts\n                                  ^^^\n                                  source.ts meta.function.ts meta.block.ts meta.type.parameters.ts meta.type.parameters.ts support.type.primitive.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n>    _target: T,\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^^\n     source.ts meta.function.ts meta.block.ts variable.parameter.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.type.annotation.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.type.annotation.ts entity.name.type.ts\n               ^\n               source.ts meta.function.ts meta.block.ts punctuation.separator.parameter.ts\n>    _prop: string | symbol,\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^\n     source.ts meta.function.ts meta.block.ts variable.parameter.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.type.annotation.ts\n            ^^^^^^\n            source.ts meta.function.ts meta.block.ts meta.type.annotation.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.type.annotation.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.type.annotation.ts keyword.operator.type.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.type.annotation.ts\n                     ^^^^^^\n                     source.ts meta.function.ts meta.block.ts meta.type.annotation.ts support.type.primitive.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts punctuation.separator.parameter.ts\n>    desc: TypedPropertyDescriptor<V>\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^\n     source.ts meta.function.ts meta.block.ts variable.parameter.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.type.annotation.ts\n           ^^^^^^^^^^^^^^^^^^^^^^^\n           source.ts meta.function.ts meta.block.ts meta.type.annotation.ts entity.name.type.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts meta.type.annotation.ts meta.type.parameters.ts entity.name.type.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n>  ) => {\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^\n   source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n    ^\n    source.ts meta.function.ts meta.block.ts\n     ^^\n     source.ts meta.function.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n       ^\n       source.ts meta.function.ts meta.block.ts meta.arrow.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    if (!desc.get) throw new Error('The `@computed()` decorator must be used on `get` method.');\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts\n     ^^\n     source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.control.conditional.ts\n       ^\n       source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.operator.logical.ts\n          ^^^^\n          source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.object.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n               ^^^\n               source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.property.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts\n                    ^^^^^\n                    source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.control.trycatch.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts\n                          ^^^\n                          source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts\n                              ^^^^^\n                              source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                     source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts string.quoted.single.ts\n                                                                                              ^\n                                                                                              source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                                               ^\n                                                                                               source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                                                ^\n                                                                                                source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>    if (desc.set) throw new Error('The `@computed()` decorator cannot be used with `set` method.');\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts\n     ^^\n     source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.control.conditional.ts\n       ^\n       source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n         ^^^^\n         source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.object.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n              ^^^\n              source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.property.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts\n                   ^^^^^\n                   source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.control.trycatch.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts\n                         ^^^\n                         source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts\n                             ^^^^^\n                             source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                    source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts string.quoted.single.ts\n                                                                                                 ^\n                                                                                                 source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                                                  ^\n                                                                                                  source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                                                   ^\n                                                                                                   source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>    if (desc.value) throw new Error('The `@computed()` decorator cannot be used with a regular function.');\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts\n     ^^\n     source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.control.conditional.ts\n       ^\n       source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n         ^^^^\n         source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.object.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n              ^^^^^\n              source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts support.variable.property.dom.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts\n                     ^^^^^\n                     source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.control.trycatch.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts\n                           ^^^\n                           source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts\n                               ^^^^^\n                               source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                      source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts string.quoted.single.ts\n                                                                                                         ^\n                                                                                                         source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                                                          ^\n                                                                                                          source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                                                                                                           ^\n                                                                                                           source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>    // ....\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^^\n       source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts comment.line.double-slash.ts\n>  };\n ^^\n source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts\n   ^\n   source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n    ^\n    source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue673.baseline.txt",
    "content": "original file\n-----------------------------------\n+new Date - 1 < 2;\nvar abc = 'abc';\nfunction abc2() { }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>+new Date - 1 < 2;\n ^\n source.ts keyword.operator.arithmetic.ts\n  ^^^\n  source.ts new.expr.ts keyword.operator.new.ts\n     ^\n     source.ts new.expr.ts\n      ^^^^\n      source.ts new.expr.ts support.class.builtin.ts\n          ^\n          source.ts new.expr.ts\n           ^\n           source.ts keyword.operator.arithmetic.ts\n            ^\n            source.ts\n             ^\n             source.ts constant.numeric.decimal.ts\n              ^\n              source.ts\n               ^\n               source.ts keyword.operator.relational.ts\n                ^\n                source.ts\n                 ^\n                 source.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n>var abc = 'abc';\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n            ^^^\n            source.ts meta.var.expr.ts string.quoted.single.ts\n               ^\n               source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>function abc2() { }\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.function.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue674.baseline.txt",
    "content": "original file\n-----------------------------------\nconst column = {\n    render: (a) =>\n    // a,\n    {\n        const b = this.state;\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const column = {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    render: (a) =>\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts entity.name.function.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n                 ^^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts storage.type.function.arrow.ts\n>    // a,\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts comment.line.double-slash.ts\n>    {\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>        const b = this.state;\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts\n         ^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                   ^^^^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                        ^^^^^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue675.baseline.txt",
    "content": "original file\n-----------------------------------\ntype T = { a: number } & ({ b: number })\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type T = { a: number } & ({ b: number })\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^\n        source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n           ^\n           source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n               ^^^^^^\n               source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.type.declaration.ts\n                        ^\n                        source.ts meta.type.declaration.ts keyword.operator.type.ts\n                         ^\n                         source.ts meta.type.declaration.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.object.type.ts punctuation.definition.block.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.object.type.ts meta.field.declaration.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                ^^^^^^\n                                source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.object.type.ts punctuation.definition.block.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.brace.round.ts"
  },
  {
    "path": "tests/baselines/Issue677.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction main(url: string)\n: Promise<any> {\n    return new Promise((accept, reject) => {\n        const text = window.prompt();\n        accept(text);\n    });\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function main(url: string)\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^^^\n               source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                    ^^^^^^\n                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>: Promise<any> {\n ^^\n source.ts meta.function.ts\n   ^^^^^^^\n   source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n          ^\n          source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n           ^^^\n           source.ts meta.function.ts meta.type.parameters.ts support.type.primitive.ts\n              ^\n              source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n               ^\n               source.ts meta.function.ts\n                ^\n                source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    return new Promise((accept, reject) => {\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^^^\n            source.ts meta.function.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n               ^\n               source.ts meta.function.ts meta.block.ts new.expr.ts\n                ^^^^^^^\n                source.ts meta.function.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.promise.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                         ^^^^^^\n                         source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts\n                                 ^^^^^^\n                                 source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts\n                                         ^^\n                                         source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                           ^\n                                           source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts\n                                            ^\n                                            source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>        const text = window.prompt();\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts\n         ^^^^^\n         source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n               ^^^^\n               source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                      ^^^^^^\n                      source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.variable.dom.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                             ^^^^^^\n                             source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.function.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>        accept(text);\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n               ^\n               source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                ^^^^\n                source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>    });\n ^^^^\n source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts\n     ^\n     source.ts meta.function.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts\n       ^\n       source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue677arrow.baseline.txt",
    "content": "original file\n-----------------------------------\nconst  func2 = (url: string)\n: Promise<any> => {\n    return new Promise((accept, reject) => {\n        const text = window.prompt();\n        accept(text);\n    });\n}\nconst  func2a = (url)\n: Promise<any> => {\n    return new Promise((accept, reject) => {\n        const text = window.prompt();\n        accept(text);\n    });\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const  func2 = (url: string)\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^^\n      source.ts meta.var.expr.ts\n        ^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^^^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                      ^^^^^^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n>: Promise<any> => {\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n  ^\n  source.ts meta.var.expr.ts meta.arrow.ts meta.arrow.ts meta.return.type.arrow.ts\n   ^^^^^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.arrow.ts meta.return.type.arrow.ts entity.name.type.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n           ^^^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts support.type.primitive.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.arrow.ts meta.return.type.arrow.ts\n                ^^\n                source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    return new Promise((accept, reject) => {\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n            ^^^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts\n                ^^^^^^^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.promise.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                         ^^^^^^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts\n                                 ^^^^^^\n                                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts\n                                         ^^\n                                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>        const text = window.prompt();\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts\n         ^^^^^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n               ^^^^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                      ^^^^^^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.variable.dom.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                             ^^^^^^\n                             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.function.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>        accept(text);\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                ^^^^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>    });\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.brace.round.ts\n       ^\n       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>const  func2a = (url)\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^^\n      source.ts meta.var.expr.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.brace.round.ts\n                  ^^^\n                  source.ts meta.var.expr.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.brace.round.ts\n>: Promise<any> => {\n ^\n source.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n  ^\n  source.ts meta.arrow.ts meta.return.type.arrow.ts\n   ^^^^^^^\n   source.ts meta.arrow.ts meta.return.type.arrow.ts entity.name.type.ts\n          ^\n          source.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n           ^^^\n           source.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts support.type.primitive.ts\n              ^\n              source.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n               ^\n               source.ts meta.arrow.ts meta.return.type.arrow.ts\n                ^^\n                source.ts meta.arrow.ts storage.type.function.arrow.ts\n                  ^\n                  source.ts meta.arrow.ts\n                   ^\n                   source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    return new Promise((accept, reject) => {\n ^^^^\n source.ts meta.arrow.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.arrow.ts meta.block.ts\n            ^^^\n            source.ts meta.arrow.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n               ^\n               source.ts meta.arrow.ts meta.block.ts new.expr.ts\n                ^^^^^^^\n                source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.promise.ts\n                       ^\n                       source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                         ^^^^^^\n                         source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                               ^\n                               source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                ^\n                                source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts\n                                 ^^^^^^\n                                 source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                       ^\n                                       source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                        ^\n                                        source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts\n                                         ^^\n                                         source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                           ^\n                                           source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts\n                                            ^\n                                            source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>        const text = window.prompt();\n ^^^^^^^^\n source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts\n         ^^^^^\n         source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n               ^^^^\n               source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                      ^^^^^^\n                      source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.variable.dom.ts\n                            ^\n                            source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                             ^^^^^^\n                             source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.function.ts\n                                   ^\n                                   source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>        accept(text);\n ^^^^^^^^\n source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n               ^\n               source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                ^^^^\n                source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                     ^\n                     source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>    });\n ^^^^\n source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts\n     ^\n     source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.brace.round.ts\n       ^\n       source.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue683.baseline.txt",
    "content": "original file\n-----------------------------------\nfor (var i = 0 in collection) {\n    const x = 1; // Not classified\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>for (var i = 0 in collection) {\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^\n      source.ts meta.var.expr.ts storage.type.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts constant.numeric.decimal.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^^\n                source.ts keyword.operator.expression.in.ts\n                  ^\n                  source.ts\n                   ^^^^^^^^^^\n                   source.ts variable.other.readwrite.ts\n                             ^\n                             source.ts meta.brace.round.ts\n                              ^\n                              source.ts\n                               ^\n                               source.ts meta.block.ts punctuation.definition.block.ts\n>    const x = 1; // Not classified\n ^^^^\n source.ts meta.block.ts\n     ^^^^^\n     source.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.block.ts meta.var.expr.ts\n           ^\n           source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                ^\n                source.ts meta.block.ts punctuation.terminator.statement.ts\n                 ^\n                 source.ts meta.block.ts\n                  ^^\n                  source.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                    ^^^^^^^^^^^^^^^\n                    source.ts meta.block.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue684.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has type assertion\nfunction f(p: string) {\n    return <number> <unknown> p;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has type assertion\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>function f(p: string) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n               ^^^^^^\n               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                      ^\n                      source.ts meta.function.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    return <number> <unknown> p;\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts cast.expr.ts\n            ^\n            source.ts meta.function.ts meta.block.ts cast.expr.ts meta.brace.angle.ts\n             ^^^^^^\n             source.ts meta.function.ts meta.block.ts cast.expr.ts support.type.primitive.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts cast.expr.ts meta.brace.angle.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts cast.expr.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts cast.expr.ts meta.brace.angle.ts\n                      ^^^^^^^\n                      source.ts meta.function.ts meta.block.ts cast.expr.ts support.type.primitive.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts cast.expr.ts meta.brace.angle.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue685.baseline.txt",
    "content": "original file\n-----------------------------------\nconst x = {\n  success: (state, { payload }): IState =>\n    R.compose<typeof payload, IState, IState>(\n      R.merge<IState>(state),\n      R.reduce(\n        (acc, channel) =>\n          setChannel(channel.id)(\n            {\n              data: omitStoreEntities(channel),\n              status: Status.LOADED,\n              error: null,\n            },\n            acc\n          ),\n        R.clone(initialState)\n      )\n    )(payload),\n};\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const x = {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>  success: (state, { payload }): IState =>\n ^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n   ^^^^^^^\n   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts entity.name.function.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n             ^^^^^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                      ^^^^^^^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.return.type.arrow.ts\n                                  ^^^^^^\n                                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.return.type.arrow.ts entity.name.type.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.return.type.arrow.ts\n                                         ^^\n                                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts storage.type.function.arrow.ts\n>    R.compose<typeof payload, IState, IState>(\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts variable.other.constant.object.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts punctuation.accessor.ts\n       ^^^^^^^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts entity.name.function.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n               ^^^^^^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts keyword.operator.expression.typeof.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts\n                      ^^^^^^^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts variable.other.readwrite.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts\n                               ^^^^^^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts entity.name.type.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts\n                                       ^^^^^^\n                                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts entity.name.type.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n>      R.merge<IState>(state),\n ^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts variable.other.constant.object.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts entity.name.function.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n               ^^^^^^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts entity.name.type.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                       ^^^^^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts punctuation.separator.comma.ts\n>      R.reduce(\n ^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts variable.other.constant.object.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts entity.name.function.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n>        (acc, channel) =>\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n          ^^^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts\n               ^^^^^^^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n                        ^^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts storage.type.function.arrow.ts\n>          setChannel(channel.id)(\n ^^^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n           ^^^^^^^^^^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts entity.name.function.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                      ^^^^^^^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                              ^^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts support.variable.property.dom.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n>            {\n ^^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n>              data: omitStoreEntities(channel),\n ^^^^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n               ^^^^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                     ^^^^^^^^^^^^^^^^^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts entity.name.function.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                                       ^^^^^^^\n                                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                                               ^\n                                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>              status: Status.LOADED,\n ^^^^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n               ^^^^^^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                       ^^^^^^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                              ^^^^^^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts variable.other.constant.property.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>              error: null,\n ^^^^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n               ^^^^^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                      ^^^^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts constant.language.null.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>            },\n ^^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts punctuation.separator.comma.ts\n>            acc\n ^^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n             ^^^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n>          ),\n ^^^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts punctuation.separator.comma.ts\n>        R.clone(initialState)\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts variable.other.constant.object.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts punctuation.accessor.ts\n           ^^^^^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts entity.name.function.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                 ^^^^^^^^^^^^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n>      )\n ^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n>    )(payload),\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n       ^^^^^^^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>};\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue686.baseline.txt",
    "content": "original file\n-----------------------------------\n({\n    a: () => { },\n    b: (/**/) => { },\n});\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>({\n ^\n source.ts meta.brace.round.ts\n  ^\n  source.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    a: () => { },\n ^^^^\n source.ts meta.objectliteral.ts\n     ^\n     source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts entity.name.function.ts\n      ^\n      source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n       ^\n       source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n        ^\n        source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n          ^\n          source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n           ^^\n           source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts storage.type.function.arrow.ts\n             ^\n             source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n              ^\n              source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n               ^\n               source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts\n                ^\n                source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                 ^\n                 source.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>    b: (/**/) => { },\n ^^^^\n source.ts meta.objectliteral.ts\n     ^\n     source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts entity.name.function.ts\n      ^\n      source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n       ^\n       source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n        ^\n        source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^^\n         source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts comment.block.ts punctuation.definition.comment.ts\n           ^^\n           source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts comment.block.ts punctuation.definition.comment.ts\n             ^\n             source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n              ^\n              source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n               ^^\n               source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts storage.type.function.arrow.ts\n                 ^\n                 source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n                  ^\n                  source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                   ^\n                   source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts\n                    ^\n                    source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>});\n ^\n source.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.brace.round.ts\n   ^\n   source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue687.baseline.txt",
    "content": "original file\n-----------------------------------\nexport interface ObjectAllocator { \n        getTokenConstructor(): new <TKind extends SyntaxKind>(kind: TKind, pos?: number, end?: number) => Token<TKind>; \n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export interface ObjectAllocator { \n ^^^^^^\n source.ts meta.interface.ts keyword.control.export.ts\n       ^\n       source.ts meta.interface.ts\n        ^^^^^^^^^\n        source.ts meta.interface.ts storage.type.interface.ts\n                 ^\n                 source.ts meta.interface.ts\n                  ^^^^^^^^^^^^^^^\n                  source.ts meta.interface.ts entity.name.type.interface.ts\n                                 ^\n                                 source.ts meta.interface.ts\n                                  ^\n                                  source.ts meta.interface.ts punctuation.definition.block.ts\n                                   ^^\n                                   source.ts meta.interface.ts\n>        getTokenConstructor(): new <TKind extends SyntaxKind>(kind: TKind, pos?: number, end?: number) => Token<TKind>; \n ^^^^^^^^\n source.ts meta.interface.ts meta.method.declaration.ts\n         ^^^^^^^^^^^^^^^^^^^\n         source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                            ^\n                            source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                             ^\n                             source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                              ^\n                              source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n                                ^^^\n                                source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.constructor.ts keyword.control.new.ts\n                                   ^\n                                   source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n                                    ^\n                                    source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                     ^^^^^\n                                     source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts entity.name.type.ts\n                                          ^\n                                          source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts\n                                           ^^^^^^^\n                                           source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts storage.modifier.ts\n                                                  ^\n                                                  source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts\n                                                   ^^^^^^^^^^\n                                                   source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts entity.name.type.ts\n                                                             ^\n                                                             source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                              ^\n                                                              source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                               ^^^^\n                                                               source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                                                   ^\n                                                                   source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                    ^\n                                                                    source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                                     ^^^^^\n                                                                     source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                                          ^\n                                                                          source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                           ^\n                                                                           source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts\n                                                                            ^^^\n                                                                            source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                                                               ^\n                                                                               source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts keyword.operator.optional.ts\n                                                                                ^\n                                                                                source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                                 ^\n                                                                                 source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                                                  ^^^^^^\n                                                                                  source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                                        ^\n                                                                                        source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                                         ^\n                                                                                         source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts\n                                                                                          ^^^\n                                                                                          source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                                                                             ^\n                                                                                             source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts keyword.operator.optional.ts\n                                                                                              ^\n                                                                                              source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                                               ^\n                                                                                               source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                                                                ^^^^^^\n                                                                                                source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                                                      ^\n                                                                                                      source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                                                       ^\n                                                                                                       source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n                                                                                                        ^^\n                                                                                                        source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                                                                          ^\n                                                                                                          source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts\n                                                                                                           ^^^^^\n                                                                                                           source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts entity.name.type.ts\n                                                                                                                ^\n                                                                                                                source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                                                                 ^^^^^\n                                                                                                                 source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts meta.type.parameters.ts entity.name.type.ts\n                                                                                                                      ^\n                                                                                                                      source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.function.return.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                                                                       ^\n                                                                                                                       source.ts meta.interface.ts punctuation.terminator.statement.ts\n                                                                                                                        ^^\n                                                                                                                        source.ts meta.interface.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue688.baseline.txt",
    "content": "original file\n-----------------------------------\n/**\n * @privateRemarks \n * Bla bla bla.\n */\nconst foo = 1\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/**\n ^^^\n source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n> * @privateRemarks \n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^^^^^^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n                   ^^\n                   source.ts comment.block.documentation.ts\n> * Bla bla bla.\n ^^^^^^^^^^^^^^^^\n source.ts comment.block.documentation.ts\n> */\n ^\n source.ts comment.block.documentation.ts\n  ^^\n  source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>const foo = 1\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts constant.numeric.decimal.ts"
  },
  {
    "path": "tests/baselines/Issue689.baseline.txt",
    "content": "original file\n-----------------------------------\nconst x = 1;\nconst y = (\n    x > x ? 2 :\n    x < x ? 3 :\n    4\n);\nconst foo = y;\nconst bar = `${x} ${y}`;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const x = 1;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts constant.numeric.decimal.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>const y = (\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.brace.round.ts\n>    x > x ? 2 :\n ^^^^\n source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.relational.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.ternary.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts constant.numeric.decimal.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.ternary.ts\n>    x < x ? 3 :\n ^^^^\n source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.relational.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.ternary.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts constant.numeric.decimal.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.ternary.ts\n>    4\n ^^^^\n source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts constant.numeric.decimal.ts\n>);\n ^\n source.ts meta.var.expr.ts meta.brace.round.ts\n  ^\n  source.ts punctuation.terminator.statement.ts\n>const foo = y;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts variable.other.readwrite.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>const bar = `${x} ${y}`;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts\n              ^^\n              source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                ^\n                source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                  ^\n                  source.ts meta.var.expr.ts string.template.ts\n                   ^^\n                   source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                     ^\n                     source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                       ^\n                       source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue692.baseline.txt",
    "content": "original file\n-----------------------------------\nexport function isInOpenInterval(start: number, end: number) {\n  return tersible(a => a > start && a < end, () => `(${start}...${end})`)\n}\nexport function isInClosedInterval(start: number, end: number) {\n  return tersible(a => a >= start && a <= end, () => `[${start}...${end}]`)\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export function isInOpenInterval(start: number, end: number) {\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                  ^^^^^\n                                  source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                         ^^^^^^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                               ^\n                                               source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                ^\n                                                source.ts meta.function.ts meta.parameters.ts\n                                                 ^^^\n                                                 source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                      ^^^^^^\n                                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                             ^\n                                                             source.ts meta.function.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  return tersible(a => a > start && a < end, () => `(${start}...${end})`)\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.function.ts meta.block.ts\n          ^^^^^^^^\n          source.ts meta.function.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.arrow.ts variable.parameter.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                     ^^\n                     source.ts meta.function.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts keyword.operator.relational.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts\n                            ^^^^^\n                            source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts\n                                  ^^\n                                  source.ts meta.function.ts meta.block.ts keyword.operator.logical.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts keyword.operator.relational.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts\n                                         ^^^\n                                         source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                            ^\n                                            source.ts meta.function.ts meta.block.ts punctuation.separator.comma.ts\n                                             ^\n                                             source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                                              ^\n                                              source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                               ^\n                                               source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                ^\n                                                source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                                                 ^^\n                                                 source.ts meta.function.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.block.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.block.ts string.template.ts\n                                                      ^^\n                                                      source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                        ^^^^^\n                                                        source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                              ^^^\n                                                              source.ts meta.function.ts meta.block.ts string.template.ts\n                                                                 ^^\n                                                                 source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                   ^^^\n                                                                   source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                       ^\n                                                                       source.ts meta.function.ts meta.block.ts string.template.ts\n                                                                        ^\n                                                                        source.ts meta.function.ts meta.block.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                                         ^\n                                                                         source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>export function isInClosedInterval(start: number, end: number) {\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                   ^\n                                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                    ^^^^^\n                                    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                          ^\n                                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                           ^^^^^^\n                                           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.parameters.ts\n                                                   ^^^\n                                                   source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                        ^^^^^^\n                                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                               ^\n                                                               source.ts meta.function.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  return tersible(a => a >= start && a <= end, () => `[${start}...${end}]`)\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.function.ts meta.block.ts\n          ^^^^^^^^\n          source.ts meta.function.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.arrow.ts variable.parameter.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                     ^^\n                     source.ts meta.function.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts\n                          ^^\n                          source.ts meta.function.ts meta.block.ts keyword.operator.relational.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts\n                             ^^^^^\n                             source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts\n                                   ^^\n                                   source.ts meta.function.ts meta.block.ts keyword.operator.logical.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts\n                                        ^^\n                                        source.ts meta.function.ts meta.block.ts keyword.operator.relational.ts\n                                          ^\n                                          source.ts meta.function.ts meta.block.ts\n                                           ^^^\n                                           source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                                              ^\n                                              source.ts meta.function.ts meta.block.ts punctuation.separator.comma.ts\n                                               ^\n                                               source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                                                ^\n                                                source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                                                   ^^\n                                                   source.ts meta.function.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.block.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.block.ts string.template.ts\n                                                        ^^\n                                                        source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                          ^^^^^\n                                                          source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                ^^^\n                                                                source.ts meta.function.ts meta.block.ts string.template.ts\n                                                                   ^^\n                                                                   source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                     ^^^\n                                                                     source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                                                        ^\n                                                                        source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                         ^\n                                                                         source.ts meta.function.ts meta.block.ts string.template.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.block.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                                           ^\n                                                                           source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue695.baseline.txt",
    "content": "original file\n-----------------------------------\nexport type bindActionsToPayloadReturns = <A, M extends ActionCreatorsMapObject<A>>(\n  actionCreators: M,\n  dispatch: Dispatch\n) => ActionsWithPromises<M>;\n\nexport const bindActions = bindActionCreators as bindActionsToPayloadReturns;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export type bindActionsToPayloadReturns = <A, M extends ActionCreatorsMapObject<A>>(\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                                 ^^^^^^^\n                                                 source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                                                        ^\n                                                        source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                                         ^^^^^^^^^^^^^^^^^^^^^^^\n                                                         source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                                                                                ^\n                                                                                source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                                 ^\n                                                                                 source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.parameters.ts entity.name.type.ts\n                                                                                  ^\n                                                                                  source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                                   ^\n                                                                                   source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                                    ^\n                                                                                    source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.brace.round.ts\n>  actionCreators: M,\n ^^\n source.ts meta.type.declaration.ts meta.type.paren.cover.ts\n   ^^^^^^^^^^^^^^\n   source.ts meta.type.declaration.ts meta.type.paren.cover.ts variable.parameter.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.annotation.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.annotation.ts entity.name.type.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.paren.cover.ts punctuation.separator.parameter.ts\n>  dispatch: Dispatch\n ^^\n source.ts meta.type.declaration.ts meta.type.paren.cover.ts\n   ^^^^^^^^\n   source.ts meta.type.declaration.ts meta.type.paren.cover.ts variable.parameter.ts\n           ^\n           source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.annotation.ts\n             ^^^^^^^^\n             source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.annotation.ts entity.name.type.ts\n>) => ActionsWithPromises<M>;\n ^\n source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.brace.round.ts\n  ^\n  source.ts meta.type.declaration.ts\n   ^^\n   source.ts meta.type.declaration.ts meta.type.function.return.ts storage.type.function.arrow.ts\n     ^\n     source.ts meta.type.declaration.ts meta.type.function.return.ts\n      ^^^^^^^^^^^^^^^^^^^\n      source.ts meta.type.declaration.ts meta.type.function.return.ts entity.name.type.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.function.return.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.function.return.ts meta.type.parameters.ts entity.name.type.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.function.return.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                            ^\n                            source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>export const bindActions = bindActionCreators as bindActionsToPayloadReturns;\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^^^\n        source.ts meta.var.expr.ts storage.type.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^^^^^^^^^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                          ^\n                          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                           ^\n                           source.ts meta.var.expr.ts\n                            ^^^^^^^^^^^^^^^^^^\n                            source.ts meta.var.expr.ts variable.other.readwrite.ts\n                                              ^\n                                              source.ts meta.var.expr.ts\n                                               ^^\n                                               source.ts meta.var.expr.ts keyword.control.as.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts\n                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                  source.ts meta.var.expr.ts entity.name.type.ts\n                                                                             ^\n                                                                             source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue698.baseline.txt",
    "content": "original file\n-----------------------------------\nconst children = [].map<Set<Map<number, string>>>(element => {\n\tif (!this.identityProvider) {\n\t\treturn element;\n\t}\n\treturn element;\n});\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const children = [].map<Set<Map<number, string>>>(element => {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.array.literal.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                     ^^^\n                     source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                         ^^^\n                         source.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                             ^^^\n                             source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts entity.name.type.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                 ^^^^^^\n                                 source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.parameters.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.parameters.ts\n                                         ^^^^^^\n                                         source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.parameters.ts support.type.primitive.ts\n                                               ^\n                                               source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts meta.brace.round.ts\n                                                   ^^^^^^^\n                                                   source.ts meta.var.expr.ts meta.arrow.ts variable.parameter.ts\n                                                          ^\n                                                          source.ts meta.var.expr.ts meta.arrow.ts\n                                                           ^^\n                                                           source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                             ^\n                                                             source.ts meta.var.expr.ts meta.arrow.ts\n                                                              ^\n                                                              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>\tif (!this.identityProvider) {\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n  ^^\n  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.conditional.ts\n    ^\n    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.operator.logical.ts\n       ^^^^\n       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.language.this.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n            ^^^^^^^^^^^^^^^^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.property.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>\t\treturn element;\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts\n          ^^^^^^^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>\t}\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts\n  ^\n  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>\treturn element;\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n  ^^^^^^\n  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n        ^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n         ^^^^^^^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>});\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.var.expr.ts meta.brace.round.ts\n   ^\n   source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue701.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Cl {\n    one?: string;\n    two!: string;\n}\nlet x! = 1;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Cl {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^\n       source.ts meta.class.ts entity.name.type.class.ts\n         ^\n         source.ts meta.class.ts\n          ^\n          source.ts meta.class.ts punctuation.definition.block.ts\n>    one?: string;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts keyword.operator.optional.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n           ^^^^^^\n           source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                 ^\n                 source.ts meta.class.ts punctuation.terminator.statement.ts\n>    two!: string;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts keyword.operator.definiteassignment.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n           ^^^^^^\n           source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                 ^\n                 source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>let x! = 1;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts keyword.operator.definiteassignment.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n        ^\n        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts constant.numeric.decimal.ts\n           ^\n           source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue702.baseline.txt",
    "content": "original file\n-----------------------------------\nconst t = () =>\n`a`\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const t = () =>\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts\n              ^^\n              source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n>`a`\n ^\n source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts\n  ^\n  source.ts meta.var.expr.ts string.template.ts\n   ^\n   source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts"
  },
  {
    "path": "tests/baselines/Issue711.baseline.txt",
    "content": "original file\n-----------------------------------\na => (\n\t{\n\t\ta: /^mods\\//, b: 2\n\t});\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>a => (\n ^\n source.ts meta.arrow.ts variable.parameter.ts\n  ^\n  source.ts meta.arrow.ts\n   ^^\n   source.ts meta.arrow.ts storage.type.function.arrow.ts\n     ^\n     source.ts meta.arrow.ts\n      ^\n      source.ts meta.arrow.ts meta.brace.round.ts\n>\t{\n ^\n source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts\n  ^\n  source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n>\t\ta: /^mods\\//, b: 2\n ^^\n source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts\n   ^\n   source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n    ^\n    source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n     ^\n     source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.regexp.ts\n      ^\n      source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.regexp.ts punctuation.definition.string.begin.ts\n       ^\n       source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.regexp.ts keyword.control.anchor.regexp\n        ^^^^\n        source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.regexp.ts\n            ^^\n            source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.regexp.ts constant.character.escape.backslash.regexp\n              ^\n              source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.regexp.ts punctuation.definition.string.end.ts\n               ^\n               source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n                ^\n                source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts\n                 ^\n                 source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n                  ^\n                  source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n                   ^\n                   source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts\n                    ^\n                    source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts constant.numeric.decimal.ts\n>\t});\n ^\n source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts\n  ^\n  source.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n   ^\n   source.ts meta.arrow.ts meta.brace.round.ts\n    ^\n    source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue715.baseline.txt",
    "content": "original file\n-----------------------------------\ninterface TestCafeFactory {\n  Selector(\n    init:\n          | string\n      | ((...args: any[]) => Node | Node[] | NodeList | HTMLCollection)\n      | Selector\n      | NodeSnapshot\n      | SelectorPromise,\n    options?: SelectorOptions\n  ): Selector;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>interface TestCafeFactory {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^^^^^^^^^^^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n                          ^\n                          source.ts meta.interface.ts\n                           ^\n                           source.ts meta.interface.ts punctuation.definition.block.ts\n>  Selector(\n ^^\n source.ts meta.interface.ts meta.method.declaration.ts\n   ^^^^^^^^\n   source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n           ^\n           source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n>    init:\n ^^^^\n source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts\n     ^^^^\n     source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n         ^\n         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n>          | string\n ^^^^^^^^^^\n source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n           ^\n           source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n            ^\n            source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n             ^^^^^^\n             source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n>      | ((...args: any[]) => Node | Node[] | NodeList | HTMLCollection)\n ^^^^^^\n source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n       ^\n       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n        ^\n        source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n         ^\n         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n          ^\n          source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n           ^^^\n           source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts keyword.operator.rest.ts\n              ^^^^\n              source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                  ^\n                  source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                    ^^^\n                    source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                        ^\n                        source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                         ^\n                         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                          ^\n                          source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts\n                           ^^\n                           source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                             ^\n                             source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                              ^^^^\n                              source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts entity.name.type.ts\n                                  ^\n                                  source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                   ^\n                                   source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts keyword.operator.type.ts\n                                    ^\n                                    source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                     ^^^^\n                                     source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts entity.name.type.ts\n                                         ^\n                                         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts meta.type.tuple.ts meta.brace.square.ts\n                                          ^\n                                          source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts meta.type.tuple.ts meta.brace.square.ts\n                                           ^\n                                           source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                            ^\n                                            source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts keyword.operator.type.ts\n                                             ^\n                                             source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                              ^^^^^^^^\n                                              source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts entity.name.type.ts\n                                                      ^\n                                                      source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                                       ^\n                                                       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts keyword.operator.type.ts\n                                                        ^\n                                                        source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                                         ^^^^^^^^^^^^^^\n                                                         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts entity.name.type.ts\n                                                                       ^\n                                                                       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n>      | Selector\n ^^^^^^\n source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n       ^\n       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n        ^\n        source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n         ^^^^^^^^\n         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n>      | NodeSnapshot\n ^^^^^^\n source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n       ^\n       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n        ^\n        source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n         ^^^^^^^^^^^^\n         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n>      | SelectorPromise,\n ^^^^^^\n source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n       ^\n       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n        ^\n        source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n         ^^^^^^^^^^^^^^^\n         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                        ^\n                        source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n>    options?: SelectorOptions\n ^^^^\n source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts\n     ^^^^^^^\n     source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n            ^\n            source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts keyword.operator.optional.ts\n             ^\n             source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n               ^^^^^^^^^^^^^^^\n               source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n>  ): Selector;\n ^^\n source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n   ^\n   source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n    ^\n    source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n     ^\n     source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n      ^^^^^^^^\n      source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n              ^\n              source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue717.baseline.txt",
    "content": "original file\n-----------------------------------\n/* regex? */\nfunction test() {\n   return /\"/.test('xxx\"xxx');\n}\n\nconsole.log(test());\na = 3 /*test*/ / parseInt(/.+/.exec('3f23fg')[0]);\nconsole.log(a);\n\nb = 1\na = () => b\n2 + (b=2), 3\nb = 6\nconsole.log(a(),b);\n(b)\n\nif (a === 1) {\n   b = 2\n} else if (a === 2) b = 3\nelse b = 4\nc = 1\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/* regex? */\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n   ^^^^^^^^\n   source.ts comment.block.ts\n           ^^\n           source.ts comment.block.ts punctuation.definition.comment.ts\n>function test() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.function.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>   return /\"/.test('xxx\"xxx');\n ^^^\n source.ts meta.function.ts meta.block.ts\n    ^^^^^^\n    source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n          ^\n          source.ts meta.function.ts meta.block.ts string.regexp.ts\n           ^\n           source.ts meta.function.ts meta.block.ts string.regexp.ts punctuation.definition.string.begin.ts\n            ^\n            source.ts meta.function.ts meta.block.ts string.regexp.ts\n             ^\n             source.ts meta.function.ts meta.block.ts string.regexp.ts punctuation.definition.string.end.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n               ^^^^\n               source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                     ^^^^^^^\n                     source.ts meta.function.ts meta.block.ts string.quoted.single.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>console.log(test());\n ^^^^^^^\n source.ts meta.function-call.ts support.class.console.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^\n         source.ts meta.function-call.ts support.function.console.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^^^^\n             source.ts meta.function-call.ts entity.name.function.ts\n                 ^\n                 source.ts meta.brace.round.ts\n                  ^\n                  source.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.brace.round.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n>a = 3 /*test*/ / parseInt(/.+/.exec('3f23fg')[0]);\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts\n     ^\n     source.ts constant.numeric.decimal.ts\n      ^\n      source.ts\n       ^^\n       source.ts comment.block.ts punctuation.definition.comment.ts\n         ^^^^\n         source.ts comment.block.ts\n             ^^\n             source.ts comment.block.ts punctuation.definition.comment.ts\n               ^\n               source.ts\n                ^\n                source.ts keyword.operator.arithmetic.ts\n                 ^\n                 source.ts\n                  ^^^^^^^^\n                  source.ts meta.function-call.ts support.function.ts\n                          ^\n                          source.ts meta.brace.round.ts\n                           ^\n                           source.ts string.regexp.ts punctuation.definition.string.begin.ts\n                            ^\n                            source.ts string.regexp.ts constant.other.character-class.regexp\n                             ^\n                             source.ts string.regexp.ts keyword.operator.quantifier.regexp\n                              ^\n                              source.ts string.regexp.ts punctuation.definition.string.end.ts\n                               ^\n                               source.ts meta.function-call.ts punctuation.accessor.ts\n                                ^^^^\n                                source.ts meta.function-call.ts support.function.ts\n                                    ^\n                                    source.ts meta.brace.round.ts\n                                     ^\n                                     source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                      ^^^^^^\n                                      source.ts string.quoted.single.ts\n                                            ^\n                                            source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                             ^\n                                             source.ts meta.brace.round.ts\n                                              ^\n                                              source.ts meta.array.literal.ts meta.brace.square.ts\n                                               ^\n                                               source.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                                ^\n                                                source.ts meta.array.literal.ts meta.brace.square.ts\n                                                 ^\n                                                 source.ts meta.brace.round.ts\n                                                  ^\n                                                  source.ts punctuation.terminator.statement.ts\n>console.log(a);\n ^^^^^^^\n source.ts meta.function-call.ts support.class.console.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^\n         source.ts meta.function-call.ts support.function.console.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.brace.round.ts\n               ^\n               source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>b = 1\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts\n     ^\n     source.ts constant.numeric.decimal.ts\n>a = () => b\n ^\n source.ts entity.name.function.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts meta.arrow.ts\n     ^\n     source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n      ^\n      source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n       ^\n       source.ts meta.arrow.ts\n        ^^\n        source.ts meta.arrow.ts storage.type.function.arrow.ts\n          ^\n          source.ts meta.arrow.ts\n           ^\n           source.ts variable.other.readwrite.ts\n>2 + (b=2), 3\n ^\n source.ts constant.numeric.decimal.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.arithmetic.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^\n      source.ts variable.other.readwrite.ts\n       ^\n       source.ts keyword.operator.assignment.ts\n        ^\n        source.ts constant.numeric.decimal.ts\n         ^\n         source.ts meta.brace.round.ts\n          ^\n          source.ts punctuation.separator.comma.ts\n           ^\n           source.ts\n            ^\n            source.ts constant.numeric.decimal.ts\n>b = 6\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts\n     ^\n     source.ts constant.numeric.decimal.ts\n>console.log(a(),b);\n ^^^^^^^\n source.ts meta.function-call.ts support.class.console.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^\n         source.ts meta.function-call.ts support.function.console.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts meta.function-call.ts entity.name.function.ts\n              ^\n              source.ts meta.brace.round.ts\n               ^\n               source.ts meta.brace.round.ts\n                ^\n                source.ts punctuation.separator.comma.ts\n                 ^\n                 source.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.brace.round.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>(b)\n ^\n source.ts meta.brace.round.ts\n  ^\n  source.ts variable.other.readwrite.ts\n   ^\n   source.ts meta.brace.round.ts\n>\n ^\n source.ts\n>if (a === 1) {\n ^^\n source.ts keyword.control.conditional.ts\n   ^\n   source.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^\n     source.ts variable.other.readwrite.ts\n      ^\n      source.ts\n       ^^^\n       source.ts keyword.operator.comparison.ts\n          ^\n          source.ts\n           ^\n           source.ts constant.numeric.decimal.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts\n              ^\n              source.ts meta.block.ts punctuation.definition.block.ts\n>   b = 2\n ^^^\n source.ts meta.block.ts\n    ^\n    source.ts meta.block.ts variable.other.readwrite.ts\n     ^\n     source.ts meta.block.ts\n      ^\n      source.ts meta.block.ts keyword.operator.assignment.ts\n       ^\n       source.ts meta.block.ts\n        ^\n        source.ts meta.block.ts constant.numeric.decimal.ts\n>} else if (a === 2) b = 3\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts\n   ^^^^\n   source.ts keyword.control.conditional.ts\n       ^\n       source.ts\n        ^^\n        source.ts keyword.control.conditional.ts\n          ^\n          source.ts\n           ^\n           source.ts meta.brace.round.ts\n            ^\n            source.ts variable.other.readwrite.ts\n             ^\n             source.ts\n              ^^^\n              source.ts keyword.operator.comparison.ts\n                 ^\n                 source.ts\n                  ^\n                  source.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.brace.round.ts\n                    ^\n                    source.ts\n                     ^\n                     source.ts variable.other.readwrite.ts\n                      ^\n                      source.ts\n                       ^\n                       source.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts\n                         ^\n                         source.ts constant.numeric.decimal.ts\n>else b = 4\n ^^^^\n source.ts keyword.control.conditional.ts\n     ^\n     source.ts\n      ^\n      source.ts variable.other.readwrite.ts\n       ^\n       source.ts\n        ^\n        source.ts keyword.operator.assignment.ts\n         ^\n         source.ts\n          ^\n          source.ts constant.numeric.decimal.ts\n>c = 1\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts\n     ^\n     source.ts constant.numeric.decimal.ts"
  },
  {
    "path": "tests/baselines/Issue720.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Bar {\n  myFunc1 = () =>\n    1 < 2 &&\n    2 > 1 &&\n    FOO < FOOO;\n  myFunc2 = () =>\n    1 < 2 &&\n    2 > 1 &&\n    FOO < FOOO;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Bar {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^\n          source.ts meta.class.ts\n           ^\n           source.ts meta.class.ts punctuation.definition.block.ts\n>  myFunc1 = () =>\n ^^\n source.ts meta.class.ts meta.field.declaration.ts\n   ^^^^^^^\n   source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                ^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts storage.type.function.arrow.ts\n>    1 < 2 &&\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n      ^\n      source.ts meta.class.ts meta.field.declaration.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts keyword.operator.relational.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.logical.ts\n>    2 > 1 &&\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n      ^\n      source.ts meta.class.ts meta.field.declaration.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts keyword.operator.relational.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.logical.ts\n>    FOO < FOOO;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^\n     source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts keyword.operator.relational.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^^^^\n           source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.ts\n               ^\n               source.ts meta.class.ts punctuation.terminator.statement.ts\n>  myFunc2 = () =>\n ^^\n source.ts meta.class.ts meta.field.declaration.ts\n   ^^^^^^^\n   source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                ^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts storage.type.function.arrow.ts\n>    1 < 2 &&\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n      ^\n      source.ts meta.class.ts meta.field.declaration.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts keyword.operator.relational.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.logical.ts\n>    2 > 1 &&\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n      ^\n      source.ts meta.class.ts meta.field.declaration.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts keyword.operator.relational.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.logical.ts\n>    FOO < FOOO;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^\n     source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts keyword.operator.relational.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^^^^\n           source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.ts\n               ^\n               source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue721.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Foo {\n  prop = () =>\n    this.condition\n      ? fn(this.value)\n      : fn(this.value)\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Foo {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^\n          source.ts meta.class.ts\n           ^\n           source.ts meta.class.ts punctuation.definition.block.ts\n>  prop = () =>\n ^^\n source.ts meta.class.ts meta.field.declaration.ts\n   ^^^^\n   source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n             ^^\n             source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts storage.type.function.arrow.ts\n>    this.condition\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n     ^^^^\n     source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n          ^^^^^^^^^\n          source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n>      ? fn(this.value)\n ^^^^^^\n source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts keyword.operator.ternary.ts\n        ^\n        source.ts meta.class.ts\n         ^^\n         source.ts meta.class.ts meta.function-call.ts entity.name.function.ts\n           ^\n           source.ts meta.class.ts meta.brace.round.ts\n            ^^^^\n            source.ts meta.class.ts variable.language.this.ts\n                ^\n                source.ts meta.class.ts punctuation.accessor.ts\n                 ^^^^^\n                 source.ts meta.class.ts support.variable.property.dom.ts\n                      ^\n                      source.ts meta.class.ts meta.brace.round.ts\n>      : fn(this.value)\n ^^^^^^\n source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts keyword.operator.ternary.ts\n        ^\n        source.ts meta.class.ts\n         ^^\n         source.ts meta.class.ts meta.function-call.ts entity.name.function.ts\n           ^\n           source.ts meta.class.ts meta.brace.round.ts\n            ^^^^\n            source.ts meta.class.ts variable.language.this.ts\n                ^\n                source.ts meta.class.ts punctuation.accessor.ts\n                 ^^^^^\n                 source.ts meta.class.ts support.variable.property.dom.ts\n                      ^\n                      source.ts meta.class.ts meta.brace.round.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue724.baseline.txt",
    "content": "original file\n-----------------------------------\nclass C {\n\n  a(){return false}\n  b(){return false}\n\n  Works(){\n    return this.a()\n    ? true\n    : this.b()\n      ? false\n      : true;\n  }\n\n  doesNotWork = () =>\n    this.a()\n    ? true\n    : this.b()\n      ? false\n      : true; // fails for apparently any keyword, e.g. \"undefined\", \"null\", ...\n\n  alsoWorks = () =>\n    this.a() ? true : this.b() ? false : true;\n\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class C {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>  a(){return false}\n ^^\n source.ts meta.class.ts meta.method.declaration.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n       ^^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n              ^^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.language.boolean.false.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>  b(){return false}\n ^^\n source.ts meta.class.ts meta.method.declaration.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n       ^^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n              ^^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.language.boolean.false.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>  Works(){\n ^^\n source.ts meta.class.ts meta.method.declaration.ts\n   ^^^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    return this.a()\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n            ^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.language.this.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n>    ? true\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.ternary.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.language.boolean.true.ts\n>    : this.b()\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.ternary.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.language.this.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n>      ? false\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.ternary.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.language.boolean.false.ts\n>      : true;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.ternary.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.language.boolean.true.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>  }\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>  doesNotWork = () =>\n ^^\n source.ts meta.class.ts meta.field.declaration.ts\n   ^^^^^^^^^^^\n   source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                    ^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts storage.type.function.arrow.ts\n>    this.a()\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n     ^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n>    ? true\n ^^^^\n source.ts meta.class.ts\n     ^\n     source.ts meta.class.ts keyword.operator.ternary.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^\n       source.ts meta.class.ts constant.language.boolean.true.ts\n>    : this.b()\n ^^^^\n source.ts meta.class.ts\n     ^\n     source.ts meta.class.ts keyword.operator.ternary.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^\n       source.ts meta.class.ts meta.function-call.ts variable.language.this.ts\n           ^\n           source.ts meta.class.ts meta.function-call.ts punctuation.accessor.ts\n            ^\n            source.ts meta.class.ts meta.function-call.ts entity.name.function.ts\n             ^\n             source.ts meta.class.ts meta.brace.round.ts\n              ^\n              source.ts meta.class.ts meta.brace.round.ts\n>      ? false\n ^^^^^^\n source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts keyword.operator.ternary.ts\n        ^\n        source.ts meta.class.ts\n         ^^^^^\n         source.ts meta.class.ts constant.language.boolean.false.ts\n>      : true; // fails for apparently any keyword, e.g. \"undefined\", \"null\", ...\n ^^^^^^\n source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts keyword.operator.ternary.ts\n        ^\n        source.ts meta.class.ts\n         ^^^^\n         source.ts meta.class.ts constant.language.boolean.true.ts\n             ^\n             source.ts meta.class.ts punctuation.terminator.statement.ts\n              ^\n              source.ts meta.class.ts\n               ^^\n               source.ts meta.class.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.class.ts comment.line.double-slash.ts\n>\n ^\n source.ts meta.class.ts\n>  alsoWorks = () =>\n ^^\n source.ts meta.class.ts meta.field.declaration.ts\n   ^^^^^^^^^\n   source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                  ^^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts storage.type.function.arrow.ts\n>    this.a() ? true : this.b() ? false : true;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n     ^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts keyword.operator.ternary.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^^^^\n                source.ts meta.class.ts meta.field.declaration.ts constant.language.boolean.true.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts keyword.operator.ternary.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts keyword.operator.ternary.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts\n                                  ^^^^^\n                                  source.ts meta.class.ts meta.field.declaration.ts constant.language.boolean.false.ts\n                                       ^\n                                       source.ts meta.class.ts meta.field.declaration.ts\n                                        ^\n                                        source.ts meta.class.ts meta.field.declaration.ts keyword.operator.ternary.ts\n                                         ^\n                                         source.ts meta.class.ts meta.field.declaration.ts\n                                          ^^^^\n                                          source.ts meta.class.ts meta.field.declaration.ts constant.language.boolean.true.ts\n                                              ^\n                                              source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue727.baseline.txt",
    "content": "original file\n-----------------------------------\nstyled.div``\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>styled.div``\n ^^^^^^\n source.ts variable.other.object.ts\n       ^\n       source.ts punctuation.accessor.ts\n        ^^^\n        source.ts entity.name.function.tagged-template.ts\n           ^\n           source.ts string.template.ts punctuation.definition.string.template.begin.ts\n            ^\n            source.ts string.template.ts punctuation.definition.string.template.end.ts"
  },
  {
    "path": "tests/baselines/Issue728.baseline.txt",
    "content": "original file\n-----------------------------------\nexport default abstract class AbstractClass {}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export default abstract class AbstractClass {}\n ^^^^^^\n source.ts meta.export.default.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.default.ts\n        ^^^^^^^\n        source.ts meta.export.default.ts keyword.control.default.ts\n               ^\n               source.ts meta.export.default.ts\n                ^^^^^^^^\n                source.ts meta.export.default.ts meta.class.ts storage.modifier.ts\n                        ^\n                        source.ts meta.export.default.ts meta.class.ts\n                         ^^^^^\n                         source.ts meta.export.default.ts meta.class.ts storage.type.class.ts\n                              ^\n                              source.ts meta.export.default.ts meta.class.ts\n                               ^^^^^^^^^^^^^\n                               source.ts meta.export.default.ts meta.class.ts entity.name.type.class.ts\n                                            ^\n                                            source.ts meta.export.default.ts meta.class.ts\n                                             ^\n                                             source.ts meta.export.default.ts meta.class.ts punctuation.definition.block.ts\n                                              ^\n                                              source.ts meta.export.default.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue730.baseline.txt",
    "content": "original file\n-----------------------------------\nobject.length('it should be function type')\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>object.length('it should be function type')\n ^^^^^^\n source.ts meta.function-call.ts variable.other.object.ts\n       ^\n       source.ts meta.function-call.ts punctuation.accessor.ts\n        ^^^^^^\n        source.ts meta.function-call.ts entity.name.function.ts\n              ^\n              source.ts meta.brace.round.ts\n               ^\n               source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                ^^^^^^^^^^^^^^^^^^^^^^^^^^\n                source.ts string.quoted.single.ts\n                                          ^\n                                          source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                           ^\n                                           source.ts meta.brace.round.ts"
  },
  {
    "path": "tests/baselines/Issue732.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction validateEmail(e) {\n    if (true) /\"/.test(e); return 1 + 1;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function validateEmail(e) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^^^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                          ^\n                          source.ts meta.function.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    if (true) /\"/.test(e); return 1 + 1;\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^\n     source.ts meta.function.ts meta.block.ts keyword.control.conditional.ts\n       ^\n       source.ts meta.function.ts meta.block.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n         ^^^^\n         source.ts meta.function.ts meta.block.ts constant.language.boolean.true.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n              ^^\n              source.ts meta.function.ts meta.block.ts string.regexp.ts punctuation.definition.string.begin.ts\n                ^\n                source.ts meta.function.ts meta.block.ts string.regexp.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts string.regexp.ts punctuation.definition.string.end.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^\n                   source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts\n                            ^^^^^^\n                            source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts keyword.operator.arithmetic.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue737.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction foo() {\n    return /(?:(Z))?/\n}\n\nexport const bar = true\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function foo() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.function.ts\n                ^\n                source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    return /(?:(Z))?/\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^^\n           source.ts meta.function.ts meta.block.ts string.regexp.ts punctuation.definition.string.begin.ts\n             ^\n             source.ts meta.function.ts meta.block.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp\n              ^^\n              source.ts meta.function.ts meta.block.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp punctuation.definition.group.no-capture.regexp\n                ^\n                source.ts meta.function.ts meta.block.ts string.regexp.ts meta.group.regexp meta.group.regexp punctuation.definition.group.regexp\n                 ^\n                 source.ts meta.function.ts meta.block.ts string.regexp.ts meta.group.regexp meta.group.regexp\n                  ^\n                  source.ts meta.function.ts meta.block.ts string.regexp.ts meta.group.regexp meta.group.regexp punctuation.definition.group.regexp\n                   ^\n                   source.ts meta.function.ts meta.block.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp\n                    ^\n                    source.ts meta.function.ts meta.block.ts string.regexp.ts keyword.operator.quantifier.regexp\n                     ^\n                     source.ts meta.function.ts meta.block.ts string.regexp.ts punctuation.definition.string.end.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>export const bar = true\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^^^\n        source.ts meta.var.expr.ts storage.type.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.var.expr.ts\n                    ^^^^\n                    source.ts meta.var.expr.ts constant.language.boolean.true.ts"
  },
  {
    "path": "tests/baselines/Issue741.baseline.txt",
    "content": "original file\n-----------------------------------\nclass CategoriesComponent {\n    x() {\n        subscribe(data => { if (data) console.log(1) })\n    }\n\n    private checkCompanyRole() {\n        return this\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class CategoriesComponent {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^^^^^^^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n                          ^\n                          source.ts meta.class.ts\n                           ^\n                           source.ts meta.class.ts punctuation.definition.block.ts\n>    x() {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        subscribe(data => { if (data) console.log(1) })\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                   ^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts variable.parameter.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts\n                        ^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts\n                             ^^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.control.conditional.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                 ^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                       ^^^^^^^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.class.console.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                               ^^^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts constant.numeric.decimal.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>    private checkCompanyRole() {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts\n             ^^^^^^^^^^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        return this\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                ^^^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue743.baseline.txt",
    "content": "original file\n-----------------------------------\ntype Test = {\n    okay: string;\n    broken1: readonly { a: string; b: number; }[];\n    broken2: readonly { a: number; b: string; }[];\n};\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type Test = {\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>    okay: string;\n ^^^^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts\n     ^^^^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n         ^\n         source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n          ^\n          source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n           ^^^^^^\n           source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.object.type.ts punctuation.terminator.statement.ts\n>    broken1: readonly { a: string; b: number; }[];\n ^^^^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n              ^^^^^^^^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts storage.modifier.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                            ^^^^^^\n                            source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                       ^^^^^^\n                                       source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts meta.object.type.ts punctuation.terminator.statement.ts\n>    broken2: readonly { a: number; b: string; }[];\n ^^^^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n              ^^^^^^^^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts storage.modifier.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                            ^^^^^^\n                            source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                       ^^^^^^\n                                       source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts meta.object.type.ts punctuation.terminator.statement.ts\n>};\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue744.baseline.txt",
    "content": "original file\n-----------------------------------\ninterface Foo {\n\tfoo<T = Array<Array<void>>>(): void; // breaks all following lines\n\tfoo(): void;\n}\n\ninterface Foo2 {\n\tfoo<T extends Array<Array<void>>>(): void; // breaks all following lines\n\tfoo(): void;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>interface Foo {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n              ^\n              source.ts meta.interface.ts\n               ^\n               source.ts meta.interface.ts punctuation.definition.block.ts\n>\tfoo<T = Array<Array<void>>>(): void; // breaks all following lines\n ^\n source.ts meta.interface.ts meta.method.declaration.ts\n  ^^^\n  source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n     ^\n     source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n      ^\n      source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts entity.name.type.ts\n       ^\n       source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts\n        ^\n        source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts\n          ^^^^^\n          source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts entity.name.type.ts\n               ^\n               source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                ^^^^^\n                source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.parameters.ts entity.name.type.ts\n                     ^\n                     source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                      ^^^^\n                      source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.parameters.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                           ^\n                           source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                            ^\n                            source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                             ^\n                             source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                              ^\n                              source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                               ^\n                               source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                ^\n                                source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n                                 ^^^^\n                                 source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                                     ^\n                                     source.ts meta.interface.ts punctuation.terminator.statement.ts\n                                      ^\n                                      source.ts meta.interface.ts\n                                       ^^\n                                       source.ts meta.interface.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                         source.ts meta.interface.ts comment.line.double-slash.ts\n>\tfoo(): void;\n ^\n source.ts meta.interface.ts meta.method.declaration.ts\n  ^^^\n  source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n     ^\n     source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n      ^\n      source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n       ^\n       source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n         ^^^^\n         source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n             ^\n             source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>interface Foo2 {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n               ^\n               source.ts meta.interface.ts\n                ^\n                source.ts meta.interface.ts punctuation.definition.block.ts\n>\tfoo<T extends Array<Array<void>>>(): void; // breaks all following lines\n ^\n source.ts meta.interface.ts meta.method.declaration.ts\n  ^^^\n  source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n     ^\n     source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n      ^\n      source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts entity.name.type.ts\n       ^\n       source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts\n        ^^^^^^^\n        source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts storage.modifier.ts\n               ^\n               source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts\n                ^^^^^\n                source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                     ^\n                     source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                      ^^^^^\n                      source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.parameters.ts entity.name.type.ts\n                           ^\n                           source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                            ^^^^\n                            source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.parameters.ts support.type.primitive.ts\n                                ^\n                                source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                 ^\n                                 source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                  ^\n                                  source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                   ^\n                                   source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                    ^\n                                    source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                     ^\n                                     source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                      ^\n                                      source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n                                       ^^^^\n                                       source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                                           ^\n                                           source.ts meta.interface.ts punctuation.terminator.statement.ts\n                                            ^\n                                            source.ts meta.interface.ts\n                                             ^^\n                                             source.ts meta.interface.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                               source.ts meta.interface.ts comment.line.double-slash.ts\n>\tfoo(): void;\n ^\n source.ts meta.interface.ts meta.method.declaration.ts\n  ^^^\n  source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n     ^\n     source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n      ^\n      source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n       ^\n       source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n         ^^^^\n         source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n             ^\n             source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue748.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has type assertion\ntype X = A | B;\ntype A = string;\ntype B = number;\nfunction foo<T extends X>(arg: T): T extends B ? number : string {\n  if (arg === \"A\") return <T extends B ? number : never>111;\n  return <T extends B ? never : string>\"returning a string\";\n}\nfoo(\"A\");\nfoo(1);\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has type assertion\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>type X = A | B;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^\n        source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts entity.name.type.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^\n            source.ts meta.type.declaration.ts keyword.operator.type.ts\n             ^\n             source.ts meta.type.declaration.ts\n              ^\n              source.ts meta.type.declaration.ts entity.name.type.ts\n               ^\n               source.ts punctuation.terminator.statement.ts\n>type A = string;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^\n        source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^^^^^^\n          source.ts meta.type.declaration.ts support.type.primitive.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>type B = number;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^\n        source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^^^^^^\n          source.ts meta.type.declaration.ts support.type.primitive.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>function foo<T extends X>(arg: T): T extends B ? number : string {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n               ^\n               source.ts meta.function.ts meta.type.parameters.ts\n                ^^^^^^^\n                source.ts meta.function.ts meta.type.parameters.ts storage.modifier.ts\n                       ^\n                       source.ts meta.function.ts meta.type.parameters.ts\n                        ^\n                        source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                         ^\n                         source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                           ^^^\n                           source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                              ^\n                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                  ^\n                                  source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                   ^\n                                   source.ts meta.function.ts meta.return.type.ts\n                                    ^\n                                    source.ts meta.function.ts meta.return.type.ts entity.name.type.ts\n                                     ^\n                                     source.ts meta.function.ts meta.return.type.ts\n                                      ^^^^^^^\n                                      source.ts meta.function.ts meta.return.type.ts storage.modifier.ts\n                                             ^\n                                             source.ts meta.function.ts meta.return.type.ts\n                                              ^\n                                              source.ts meta.function.ts meta.return.type.ts entity.name.type.ts\n                                               ^\n                                               source.ts meta.function.ts meta.return.type.ts\n                                                ^\n                                                source.ts meta.function.ts meta.return.type.ts keyword.operator.ternary.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.return.type.ts\n                                                  ^^^^^^\n                                                  source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.return.type.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.return.type.ts keyword.operator.ternary.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.return.type.ts\n                                                           ^^^^^^\n                                                           source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.return.type.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  if (arg === \"A\") return <T extends B ? number : never>111;\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^\n   source.ts meta.function.ts meta.block.ts keyword.control.conditional.ts\n     ^\n     source.ts meta.function.ts meta.block.ts\n      ^\n      source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n       ^^^\n       source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.function.ts meta.block.ts\n           ^^^\n           source.ts meta.function.ts meta.block.ts keyword.operator.comparison.ts\n              ^\n              source.ts meta.function.ts meta.block.ts\n               ^\n               source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                ^\n                source.ts meta.function.ts meta.block.ts string.quoted.double.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts\n                    ^^^^^^\n                    source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts cast.expr.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts cast.expr.ts meta.brace.angle.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts cast.expr.ts entity.name.type.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts cast.expr.ts\n                              ^^^^^^^\n                              source.ts meta.function.ts meta.block.ts cast.expr.ts storage.modifier.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts cast.expr.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts cast.expr.ts entity.name.type.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts cast.expr.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts cast.expr.ts keyword.operator.ternary.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts cast.expr.ts\n                                          ^^^^^^\n                                          source.ts meta.function.ts meta.block.ts cast.expr.ts support.type.primitive.ts\n                                                ^\n                                                source.ts meta.function.ts meta.block.ts cast.expr.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.block.ts cast.expr.ts keyword.operator.ternary.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.block.ts cast.expr.ts\n                                                   ^^^^^\n                                                   source.ts meta.function.ts meta.block.ts cast.expr.ts support.type.primitive.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.block.ts cast.expr.ts meta.brace.angle.ts\n                                                         ^^^\n                                                         source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>  return <T extends B ? never : string>\"returning a string\";\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.function.ts meta.block.ts cast.expr.ts\n          ^\n          source.ts meta.function.ts meta.block.ts cast.expr.ts meta.brace.angle.ts\n           ^\n           source.ts meta.function.ts meta.block.ts cast.expr.ts entity.name.type.ts\n            ^\n            source.ts meta.function.ts meta.block.ts cast.expr.ts\n             ^^^^^^^\n             source.ts meta.function.ts meta.block.ts cast.expr.ts storage.modifier.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts cast.expr.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts cast.expr.ts entity.name.type.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts cast.expr.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts cast.expr.ts keyword.operator.ternary.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts cast.expr.ts\n                         ^^^^^\n                         source.ts meta.function.ts meta.block.ts cast.expr.ts support.type.primitive.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts cast.expr.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts cast.expr.ts keyword.operator.ternary.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts cast.expr.ts\n                                 ^^^^^^\n                                 source.ts meta.function.ts meta.block.ts cast.expr.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts cast.expr.ts meta.brace.angle.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                         ^^^^^^^^^^^^^^^^^^\n                                         source.ts meta.function.ts meta.block.ts string.quoted.double.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>foo(\"A\");\n ^^^\n source.ts meta.function-call.ts entity.name.function.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^\n     source.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n      ^\n      source.ts string.quoted.double.ts\n       ^\n       source.ts string.quoted.double.ts punctuation.definition.string.end.ts\n        ^\n        source.ts meta.brace.round.ts\n         ^\n         source.ts punctuation.terminator.statement.ts\n>foo(1);\n ^^^\n source.ts meta.function-call.ts entity.name.function.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^\n     source.ts constant.numeric.decimal.ts\n      ^\n      source.ts meta.brace.round.ts\n       ^\n       source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue750.baseline.txt",
    "content": "original file\n-----------------------------------\nconst dummy  = (div, g) => {\n  ( []              /([(div)])/g / [] );\n  ( ([])            /([(div)])/g / [] );\n  ( [] /* */        /([(div)])/g / [] );\n};\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const dummy  = (div, g) => {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n            ^^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^^^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts\n                         ^^\n                         source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.arrow.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>  ( []              /([(div)])/g / [] );\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n    ^\n    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n       ^^^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.operator.arithmetic.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                         ^^^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.operator.arithmetic.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.operator.arithmetic.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>  ( ([])            /([(div)])/g / [] );\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n    ^\n    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n       ^\n       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n        ^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n         ^^^^^^^^^^^^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.operator.arithmetic.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                         ^^^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.operator.arithmetic.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.operator.arithmetic.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>  ( [] /* */        /([(div)])/g / [] );\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n    ^\n    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n       ^\n       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n        ^^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts comment.block.ts punctuation.definition.comment.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts comment.block.ts\n           ^^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts comment.block.ts punctuation.definition.comment.ts\n             ^^^^^^^^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.operator.arithmetic.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                         ^^^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.operator.arithmetic.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.operator.arithmetic.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>};\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue751.baseline.txt",
    "content": "original file\n-----------------------------------\nexport const o: any = {\n  shortValuationPdfUuid: (\n  ): Array<Map<string, number>> => {\n    return [];\n  }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export const o: any = {\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^^^\n        source.ts meta.var.expr.ts storage.type.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                 ^^^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                     ^\n                     source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>  shortValuationPdfUuid: (\n ^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n   ^^^^^^^^^^^^^^^^^^^^^\n   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts entity.name.function.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n>  ): Array<Map<string, number>> => {\n ^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n   ^\n   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n    ^\n    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.return.type.arrow.ts\n      ^^^^^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.return.type.arrow.ts entity.name.type.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n            ^^^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts entity.name.type.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                ^^^^^^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts support.type.primitive.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts\n                        ^^^^^^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts support.type.primitive.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.return.type.arrow.ts\n                                 ^^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts storage.type.function.arrow.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    return [];\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.array.literal.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>  }\n ^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts\n   ^\n   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue754.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\nconst b = <Element />;\nconst a = /**/ <Element />;\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>const b = <Element />;\n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^\n       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx\n        ^\n        source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n         ^\n         source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n          ^\n          source.tsx meta.var.expr.tsx\n           ^\n           source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n            ^^^^^^^\n            source.tsx meta.var.expr.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n                   ^\n                   source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n                    ^^\n                    source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                      ^\n                      source.tsx punctuation.terminator.statement.tsx\n>const a = /**/ <Element />;\n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^\n       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx\n        ^\n        source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n         ^\n         source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n          ^\n          source.tsx meta.var.expr.tsx\n           ^^\n           source.tsx meta.var.expr.tsx comment.block.tsx punctuation.definition.comment.tsx\n             ^^\n             source.tsx meta.var.expr.tsx comment.block.tsx punctuation.definition.comment.tsx\n               ^\n               source.tsx meta.var.expr.tsx\n                ^\n                source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                 ^^^^^^^\n                 source.tsx meta.var.expr.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n                        ^\n                        source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n                         ^^\n                         source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                           ^\n                           source.tsx punctuation.terminator.statement.tsx"
  },
  {
    "path": "tests/baselines/Issue756.baseline.txt",
    "content": "original file\n-----------------------------------\nfor (const [key, value]of dict) { // No highlighting after 'of'.\n  console.log('hello, world')\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>for (const [key, value]of dict) { // No highlighting after 'of'.\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^\n      source.ts meta.var.expr.ts storage.type.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n             ^^^\n             source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.separator.comma.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n                  ^^^^^\n                  source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.constant.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n                        ^^\n                        source.ts keyword.operator.expression.of.ts\n                          ^\n                          source.ts\n                           ^^^^\n                           source.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.brace.round.ts\n                                ^\n                                source.ts\n                                 ^\n                                 source.ts meta.block.ts punctuation.definition.block.ts\n                                  ^\n                                  source.ts meta.block.ts\n                                   ^^\n                                   source.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                     source.ts meta.block.ts comment.line.double-slash.ts\n>  console.log('hello, world')\n ^^\n source.ts meta.block.ts\n   ^^^^^^^\n   source.ts meta.block.ts meta.function-call.ts support.class.console.ts\n          ^\n          source.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n           ^^^\n           source.ts meta.block.ts meta.function-call.ts support.function.console.ts\n              ^\n              source.ts meta.block.ts meta.brace.round.ts\n               ^\n               source.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                ^^^^^^^^^^^^\n                source.ts meta.block.ts string.quoted.single.ts\n                            ^\n                            source.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                             ^\n                             source.ts meta.block.ts meta.brace.round.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue760.baseline.txt",
    "content": "original file\n-----------------------------------\nvar a = {'\\\\': '('};\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var a = {'\\\\': '('};\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n           ^^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts constant.character.escape.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts punctuation.definition.string.end.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue762.baseline.txt",
    "content": "original file\n-----------------------------------\nDate as any || null\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>Date as any || null\n ^^^^\n source.ts support.class.builtin.ts\n     ^\n     source.ts\n      ^^\n      source.ts keyword.control.as.ts\n        ^\n        source.ts\n         ^^^\n         source.ts support.type.primitive.ts\n            ^\n            source.ts\n             ^^\n             source.ts keyword.operator.logical.ts\n               ^\n               source.ts\n                ^^^^\n                source.ts constant.language.null.ts"
  },
  {
    "path": "tests/baselines/Issue763.baseline.txt",
    "content": "original file\n-----------------------------------\ninterface SomeInterface {\n  onStart(callback: Function): void;\n  onError(callback: (obj: { videoPath: string }) => void): void;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>interface SomeInterface {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^^^^^^^^^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n                        ^\n                        source.ts meta.interface.ts\n                         ^\n                         source.ts meta.interface.ts punctuation.definition.block.ts\n>  onStart(callback: Function): void;\n ^^\n source.ts meta.interface.ts meta.method.declaration.ts\n   ^^^^^^^\n   source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n          ^\n          source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n           ^^^^^^^^\n           source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts entity.name.function.ts\n                   ^\n                   source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                    ^\n                    source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                     ^^^^^^^^\n                     source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                             ^\n                             source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                              ^\n                              source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n                                ^^^^\n                                source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                                    ^\n                                    source.ts meta.interface.ts punctuation.terminator.statement.ts\n>  onError(callback: (obj: { videoPath: string }) => void): void;\n ^^\n source.ts meta.interface.ts meta.method.declaration.ts\n   ^^^^^^^\n   source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n          ^\n          source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n           ^^^^^^^^\n           source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts entity.name.function.ts\n                   ^\n                   source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                    ^\n                    source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                     ^\n                     source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                      ^^^\n                      source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                         ^\n                         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                          ^\n                          source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                           ^\n                           source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                            ^\n                            source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                             ^^^^^^^^^\n                             source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                      ^\n                                      source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                       ^\n                                       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                        ^^^^^^\n                                        source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                              ^\n                                              source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                               ^\n                                               source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                                ^\n                                                source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                 ^\n                                                 source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                  ^^\n                                                  source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                    ^\n                                                    source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts\n                                                     ^^^^\n                                                     source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts support.type.primitive.ts\n                                                         ^\n                                                         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                          ^\n                                                          source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                           ^\n                                                           source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n                                                            ^^^^\n                                                            source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                                                                ^\n                                                                source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue766.baseline.txt",
    "content": "original file\n-----------------------------------\nlet a: { prop1, prop2 };\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let a: { prop1, prop2 };\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n          ^^^^^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.separator.comma.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                 ^^^^^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue77.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has type assertion\n// trailing part of some real code...\n\nnull, <{[key]: () => any}> null\n\n// no syntax highlighting from here down...\n\nfunction foo():{a: string} { }\n\nnull, <{[key]: () =>{a: number}}> null\n\n// no syntax highlighting from here down...\n\nfunction foo() { }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has type assertion\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>// trailing part of some real code...\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>null, <{[key]: () => any}> null\n ^^^^\n source.ts constant.language.null.ts\n     ^\n     source.ts punctuation.separator.comma.ts\n      ^\n      source.ts cast.expr.ts\n       ^\n       source.ts cast.expr.ts meta.brace.angle.ts\n        ^\n        source.ts cast.expr.ts meta.object.type.ts punctuation.definition.block.ts\n         ^\n         source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n          ^^^\n          source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n             ^\n             source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n              ^\n              source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                ^\n                source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                   ^^\n                   source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                     ^\n                     source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts\n                      ^^^\n                      source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts support.type.primitive.ts\n                         ^\n                         source.ts cast.expr.ts meta.object.type.ts punctuation.definition.block.ts\n                          ^\n                          source.ts cast.expr.ts meta.brace.angle.ts\n                           ^\n                           source.ts\n                            ^^^^\n                            source.ts constant.language.null.ts\n>\n ^\n source.ts\n>// no syntax highlighting from here down...\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>function foo():{a: string} { }\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                 ^\n                 source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                  ^\n                  source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                    ^^^^^^\n                    source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                           ^\n                           source.ts meta.function.ts meta.return.type.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>null, <{[key]: () =>{a: number}}> null\n ^^^^\n source.ts constant.language.null.ts\n     ^\n     source.ts punctuation.separator.comma.ts\n      ^\n      source.ts cast.expr.ts\n       ^\n       source.ts cast.expr.ts meta.brace.angle.ts\n        ^\n        source.ts cast.expr.ts meta.object.type.ts punctuation.definition.block.ts\n         ^\n         source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n          ^^^\n          source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n             ^\n             source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n              ^\n              source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                ^\n                source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                   ^^\n                   source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                     ^\n                     source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts meta.object.type.ts punctuation.definition.block.ts\n                      ^\n                      source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                       ^\n                       source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                        ^\n                        source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                         ^^^^^^\n                         source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                               ^\n                               source.ts cast.expr.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts meta.object.type.ts punctuation.definition.block.ts\n                                ^\n                                source.ts cast.expr.ts meta.object.type.ts punctuation.definition.block.ts\n                                 ^\n                                 source.ts cast.expr.ts meta.brace.angle.ts\n                                  ^\n                                  source.ts\n                                   ^^^^\n                                   source.ts constant.language.null.ts\n>\n ^\n source.ts\n>// no syntax highlighting from here down...\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>function foo() { }\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.function.ts\n                ^\n                source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue774.baseline.txt",
    "content": "original file\n-----------------------------------\nimport util from \"util\"\nimport chalk from \"chalk\" // import\n\nconst Levels = {\n    0: { label: \"DEBUG\", color: chalk.gray.bold },\n    1: { label: \"INFO \", color: chalk.blueBright.bold },\n    2: { label: \"WARN \", color: chalk.magenta.bold },\n    3: { label: \"ERROR\", color: chalk.red.bold },\n}\ntype Level = keyof typeof Levels\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>import util from \"util\"\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^^^^\n        source.ts meta.import.ts variable.other.readwrite.alias.ts\n            ^\n            source.ts meta.import.ts\n             ^^^^\n             source.ts meta.import.ts keyword.control.from.ts\n                 ^\n                 source.ts meta.import.ts\n                  ^\n                  source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                   ^^^^\n                   source.ts meta.import.ts string.quoted.double.ts\n                       ^\n                       source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>import chalk from \"chalk\" // import\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^^^^^\n        source.ts meta.import.ts variable.other.readwrite.alias.ts\n             ^\n             source.ts meta.import.ts\n              ^^^^\n              source.ts meta.import.ts keyword.control.from.ts\n                  ^\n                  source.ts meta.import.ts\n                   ^\n                   source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                    ^^^^^\n                    source.ts meta.import.ts string.quoted.double.ts\n                         ^\n                         source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                          ^\n                          source.ts meta.import.ts\n                           ^^\n                           source.ts meta.import.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                             ^^^^^^^^\n                             source.ts meta.import.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>const Levels = {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    0: { label: \"DEBUG\", color: chalk.gray.bold },\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts constant.numeric.decimal.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n          ^^^^^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                  ^^^^^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n                          ^^^^^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                 ^^^^^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                                       ^^^^\n                                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.property.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                                            ^^^^\n                                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts variable.other.property.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>    1: { label: \"INFO \", color: chalk.blueBright.bold },\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts constant.numeric.decimal.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n          ^^^^^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                  ^^^^^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n                          ^^^^^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                 ^^^^^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                                       ^^^^^^^^^^\n                                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.property.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                                                  ^^^^\n                                                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts variable.other.property.ts\n                                                      ^\n                                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                       ^\n                                                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                        ^\n                                                        source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>    2: { label: \"WARN \", color: chalk.magenta.bold },\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts constant.numeric.decimal.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n          ^^^^^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                  ^^^^^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n                          ^^^^^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                 ^^^^^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                                       ^^^^^^^\n                                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.property.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                                               ^^^^\n                                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts variable.other.property.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>    3: { label: \"ERROR\", color: chalk.red.bold },\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts constant.numeric.decimal.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n          ^^^^^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                  ^^^^^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n                          ^^^^^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                 ^^^^^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                                       ^^^\n                                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.property.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                                           ^^^^\n                                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts variable.other.property.ts\n                                               ^\n                                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>type Level = keyof typeof Levels\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^\n            source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.type.declaration.ts\n              ^^^^^\n              source.ts meta.type.declaration.ts keyword.operator.expression.keyof.ts\n                   ^\n                   source.ts meta.type.declaration.ts\n                    ^^^^^^\n                    source.ts meta.type.declaration.ts keyword.operator.expression.typeof.ts\n                          ^\n                          source.ts meta.type.declaration.ts\n                           ^^^^^^\n                           source.ts meta.type.declaration.ts variable.other.readwrite.ts"
  },
  {
    "path": "tests/baselines/Issue780.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has type parameters that would be jsx in tsx files\nconst f0 = <T extends any>(p: {\n    a: string\n    b: T\n}) => async () => p.a + p.b\n\n\nconst f1 = <T extends any>({ a, b }: {\n    a: string\n    b: T\n}) => async () => a + b\n\n\nconst f2 = <T extends any>({ a, b }: {\n    a: string\n    b: T\n}) => async () => a + b\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has type parameters that would be jsx in tsx files\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>const f0 = <T extends any>(p: {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts entity.name.type.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts\n               ^^^^^^^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts storage.modifier.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts\n                       ^^^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>    a: string\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>    b: T\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n>}) => async () => p.a + p.b\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n   ^\n   source.ts meta.var.expr.ts meta.arrow.ts\n    ^^\n    source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts\n       ^^^^^\n       source.ts meta.var.expr.ts meta.arrow.ts storage.modifier.async.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts\n                ^^\n                source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts\n                   ^\n                   source.ts meta.var.expr.ts variable.other.object.ts\n                    ^\n                    source.ts meta.var.expr.ts punctuation.accessor.ts\n                     ^\n                     source.ts meta.var.expr.ts variable.other.property.ts\n                      ^\n                      source.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                        ^\n                        source.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.var.expr.ts variable.other.object.ts\n                          ^\n                          source.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^\n                           source.ts meta.var.expr.ts variable.other.property.ts\n>\n ^\n source.ts\n>\n ^\n source.ts\n>const f1 = <T extends any>({ a, b }: {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n             ^\n             source.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.ts\n              ^\n              source.ts meta.var.expr.ts meta.type.parameters.ts\n               ^^^^^^^\n               source.ts meta.var.expr.ts meta.type.parameters.ts storage.modifier.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.type.parameters.ts\n                       ^^^\n                       source.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.objectliteral.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.type.annotation.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>    a: string\n ^^^^\n source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n     ^\n     source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>    b: T\n ^^^^\n source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n     ^\n     source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n>}) => async () => a + b\n ^\n source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.var.expr.ts meta.brace.round.ts\n   ^\n   source.ts meta.var.expr.ts\n    ^^\n    source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts\n       ^^^^^\n       source.ts meta.var.expr.ts meta.arrow.ts storage.modifier.async.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts\n                ^^\n                source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts\n                   ^\n                   source.ts meta.var.expr.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                      ^\n                      source.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.var.expr.ts variable.other.readwrite.ts\n>\n ^\n source.ts\n>\n ^\n source.ts\n>const f2 = <T extends any>({ a, b }: {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n             ^\n             source.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.ts\n              ^\n              source.ts meta.var.expr.ts meta.type.parameters.ts\n               ^^^^^^^\n               source.ts meta.var.expr.ts meta.type.parameters.ts storage.modifier.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.type.parameters.ts\n                       ^^^\n                       source.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.objectliteral.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.type.annotation.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>    a: string\n ^^^^\n source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n     ^\n     source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>    b: T\n ^^^^\n source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n     ^\n     source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n>}) => async () => a + b\n ^\n source.ts meta.var.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.var.expr.ts meta.brace.round.ts\n   ^\n   source.ts meta.var.expr.ts\n    ^^\n    source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts\n       ^^^^^\n       source.ts meta.var.expr.ts meta.arrow.ts storage.modifier.async.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts\n                ^^\n                source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts\n                   ^\n                   source.ts meta.var.expr.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                      ^\n                      source.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.var.expr.ts variable.other.readwrite.ts"
  },
  {
    "path": "tests/baselines/Issue782.baseline.txt",
    "content": "original file\n-----------------------------------\nvar a = '\\u1234 \\u{1F600}'\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var a = '\\u1234 \\u{1F600}'\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n          ^^^^^^\n          source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n                ^\n                source.ts meta.var.expr.ts string.quoted.single.ts\n                 ^^^^^^^^^\n                 source.ts meta.var.expr.ts string.quoted.single.ts constant.character.escape.ts\n                          ^\n                          source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts"
  },
  {
    "path": "tests/baselines/Issue785.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction getFoo() { return <T, P>(t: T) => {t}}\n\nconst stuff = { foo: getFoo()<string, number>('ddd') }\n\n//const v = {\n//  title: ''\n//}\n\nconsole.log('highlight is broken unless object literal defined above')\nconst a = ''\nfunction hello() {\n  return 10\n}\n\ninterface Bar {\n  count: number\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function getFoo() { return <T, P>(t: T) => {t}}\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts meta.function.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts\n                     ^^^^^^\n                     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.type.parameters.ts entity.name.type.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.type.parameters.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.type.parameters.ts entity.name.type.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                                         ^^\n                                         source.ts meta.function.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                                           ^\n                                           source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                                            ^\n                                            source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                                             ^\n                                             source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                                              ^\n                                              source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                                               ^\n                                               source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>const stuff = { foo: getFoo()<string, number>('ddd') }\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts\n                 ^^^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                      ^^^^^^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.function-call.ts entity.name.function.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                               ^^^^^^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts support.type.primitive.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts\n                                       ^^^^^^\n                                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts support.type.primitive.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                                               ^\n                                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                ^^^\n                                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                                      ^\n                                                      source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>//const v = {\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>//  title: ''\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>//}\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^\n   source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>console.log('highlight is broken unless object literal defined above')\n ^^^^^^^\n source.ts meta.function-call.ts support.class.console.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^\n         source.ts meta.function-call.ts support.function.console.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n              source.ts string.quoted.single.ts\n                                                                     ^\n                                                                     source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                      ^\n                                                                      source.ts meta.brace.round.ts\n>const a = ''\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n            ^\n            source.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>function hello() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  return 10\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.function.ts meta.block.ts\n          ^^\n          source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>interface Bar {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n              ^\n              source.ts meta.interface.ts\n               ^\n               source.ts meta.interface.ts punctuation.definition.block.ts\n>  count: number\n ^^\n source.ts meta.interface.ts meta.field.declaration.ts\n   ^^^^^\n   source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n        ^\n        source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n         ^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n          ^^^^^^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue786.baseline.txt",
    "content": "original file\n-----------------------------------\nconst a = \"6\" / 2; /*comment*/ const b = 5;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const a = \"6\" / 2; /*comment*/ const b = 5;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n            ^\n            source.ts meta.var.expr.ts string.quoted.double.ts\n             ^\n             source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n                   ^\n                   source.ts\n                    ^^\n                    source.ts comment.block.ts punctuation.definition.comment.ts\n                      ^^^^^^^\n                      source.ts comment.block.ts\n                             ^^\n                             source.ts comment.block.ts punctuation.definition.comment.ts\n                               ^\n                               source.ts\n                                ^^^^^\n                                source.ts meta.var.expr.ts storage.type.ts\n                                     ^\n                                     source.ts meta.var.expr.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                                        ^\n                                        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                         ^\n                                         source.ts meta.var.expr.ts\n                                          ^\n                                          source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                           ^\n                                           source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue787.baseline.txt",
    "content": "original file\n-----------------------------------\nconsole.log(\"4\" / \"2\"); // 2\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>console.log(\"4\" / \"2\"); // 2\n ^^^^^^^\n source.ts meta.function-call.ts support.class.console.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^\n         source.ts meta.function-call.ts support.function.console.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n              ^\n              source.ts string.quoted.double.ts\n               ^\n               source.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                ^\n                source.ts\n                 ^\n                 source.ts keyword.operator.arithmetic.ts\n                  ^\n                  source.ts\n                   ^\n                   source.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                    ^\n                    source.ts string.quoted.double.ts\n                     ^\n                     source.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                      ^\n                      source.ts meta.brace.round.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts\n                        ^\n                        source.ts\n                         ^^\n                         source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                           ^^\n                           source.ts comment.line.double-slash.ts"
  },
  {
    "path": "tests/baselines/Issue790.baseline.txt",
    "content": "original file\n-----------------------------------\n[1, 2, 3].reduce<readonly number[]>((previous) => previous, []);\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>[1, 2, 3].reduce<readonly number[]>((previous) => previous, []);\n ^\n source.ts meta.array.literal.ts meta.brace.square.ts\n  ^\n  source.ts meta.array.literal.ts constant.numeric.decimal.ts\n   ^\n   source.ts meta.array.literal.ts punctuation.separator.comma.ts\n    ^\n    source.ts meta.array.literal.ts\n     ^\n     source.ts meta.array.literal.ts constant.numeric.decimal.ts\n      ^\n      source.ts meta.array.literal.ts punctuation.separator.comma.ts\n       ^\n       source.ts meta.array.literal.ts\n        ^\n        source.ts meta.array.literal.ts constant.numeric.decimal.ts\n         ^\n         source.ts meta.array.literal.ts meta.brace.square.ts\n          ^\n          source.ts meta.function-call.ts punctuation.accessor.ts\n           ^^^^^^\n           source.ts meta.function-call.ts entity.name.function.ts\n                 ^\n                 source.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                  ^^^^^^^^\n                  source.ts meta.type.parameters.ts storage.modifier.ts\n                          ^\n                          source.ts meta.type.parameters.ts\n                           ^^^^^^\n                           source.ts meta.type.parameters.ts support.type.primitive.ts\n                                 ^\n                                 source.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                   ^\n                                   source.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                    ^\n                                    source.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                      ^^^^^^^^\n                                      source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                                              ^\n                                              source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                               ^\n                                               source.ts meta.arrow.ts\n                                                ^^\n                                                source.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                  ^\n                                                  source.ts meta.arrow.ts\n                                                   ^^^^^^^^\n                                                   source.ts variable.other.readwrite.ts\n                                                           ^\n                                                           source.ts punctuation.separator.comma.ts\n                                                            ^\n                                                            source.ts meta.array.literal.ts\n                                                             ^\n                                                             source.ts meta.array.literal.ts meta.brace.square.ts\n                                                              ^\n                                                              source.ts meta.array.literal.ts meta.brace.square.ts\n                                                               ^\n                                                               source.ts meta.brace.round.ts\n                                                                ^\n                                                                source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue791.baseline.txt",
    "content": "original file\n-----------------------------------\nconst test = (foo, bar) => `${foo} ${bar}`\n\nconst test2 = (\n  foo,\n  bar\n) => `${foo} ${bar}`\n\nfunction test3(foo, bar) {\n  return `${foo} ${bar}`\n}\nfunction test4(\n  foo,\n  bar\n) {\n  return `${foo} ${bar}`\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const test = (foo, bar) => `${foo} ${bar}`\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^^^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts\n                    ^^^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts\n                         ^^\n                         source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.arrow.ts\n                            ^\n                            source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts\n                             ^^\n                             source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                               ^^^\n                               source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                   ^\n                                   source.ts meta.var.expr.ts string.template.ts\n                                    ^^\n                                    source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                      ^^^\n                                      source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                                         ^\n                                         source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                          ^\n                                          source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts\n>\n ^\n source.ts\n>const test2 = (\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts meta.brace.round.ts\n>  foo,\n ^^\n source.ts meta.var.expr.ts\n   ^^^\n   source.ts meta.var.expr.ts variable.parameter.ts\n      ^\n      source.ts meta.var.expr.ts punctuation.separator.parameter.ts\n>  bar\n ^^\n source.ts meta.var.expr.ts\n   ^^^\n   source.ts meta.var.expr.ts variable.parameter.ts\n>) => `${foo} ${bar}`\n ^\n source.ts meta.var.expr.ts meta.brace.round.ts\n  ^\n  source.ts meta.var.expr.ts\n   ^^\n   source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts\n      ^\n      source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts\n       ^^\n       source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n         ^^^\n         source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n             ^\n             source.ts meta.var.expr.ts string.template.ts\n              ^^\n              source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                ^^^\n                source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                    ^\n                    source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts\n>\n ^\n source.ts\n>function test3(foo, bar) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^^^\n                source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts\n                     ^^^\n                     source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                         ^\n                         source.ts meta.function.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  return `${foo} ${bar}`\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.function.ts meta.block.ts\n          ^\n          source.ts meta.function.ts meta.block.ts string.template.ts punctuation.definition.string.template.begin.ts\n           ^^\n           source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n             ^^^\n             source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts string.template.ts\n                  ^^\n                  source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                    ^^^\n                    source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts string.template.ts punctuation.definition.string.template.end.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>function test4(\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n>  foo,\n ^^\n source.ts meta.function.ts meta.parameters.ts\n   ^^^\n   source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n      ^\n      source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n>  bar\n ^^\n source.ts meta.function.ts meta.parameters.ts\n   ^^^\n   source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n>) {\n ^\n source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n  ^\n  source.ts meta.function.ts\n   ^\n   source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  return `${foo} ${bar}`\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.function.ts meta.block.ts\n          ^\n          source.ts meta.function.ts meta.block.ts string.template.ts punctuation.definition.string.template.begin.ts\n           ^^\n           source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n             ^^^\n             source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts string.template.ts\n                  ^^\n                  source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                    ^^^\n                    source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts string.template.ts punctuation.definition.string.template.end.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue793.baseline.txt",
    "content": "original file\n-----------------------------------\nreturn`tagged string`;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>return`tagged string`;\n ^^^^^^\n source.ts keyword.control.flow.ts\n       ^\n       source.ts string.template.ts punctuation.definition.string.template.begin.ts\n        ^^^^^^^^^^^^^\n        source.ts string.template.ts\n                     ^\n                     source.ts string.template.ts punctuation.definition.string.template.end.ts\n                      ^\n                      source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue794.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - contains jsx\n<Image source={image} style={{ aspectRatio: image.width! / image.height! }} />\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - contains jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n><Image source={image} style={{ aspectRatio: image.width! / image.height! }} />\n ^\n source.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n  ^^^^^\n  source.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n       ^\n       source.tsx meta.tag.tsx meta.tag.attributes.tsx\n        ^^^^^^\n        source.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n              ^\n              source.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n               ^\n               source.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n                ^^^^^\n                source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.readwrite.tsx\n                     ^\n                     source.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n                      ^\n                      source.tsx meta.tag.tsx meta.tag.attributes.tsx\n                       ^^^^^\n                       source.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                            ^\n                            source.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                             ^\n                             source.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n                              ^\n                              source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx punctuation.definition.block.tsx\n                               ^\n                               source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx\n                                ^^^^^^^^^^^\n                                source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx meta.object-literal.key.tsx\n                                           ^\n                                           source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx meta.object-literal.key.tsx punctuation.separator.key-value.tsx\n                                            ^\n                                            source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx\n                                             ^^^^^\n                                             source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx variable.other.object.tsx\n                                                  ^\n                                                  source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx punctuation.accessor.tsx\n                                                   ^^^^^\n                                                   source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx support.variable.property.dom.tsx\n                                                        ^\n                                                        source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx keyword.operator.logical.tsx\n                                                         ^\n                                                         source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx\n                                                          ^\n                                                          source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx keyword.operator.arithmetic.tsx\n                                                           ^\n                                                           source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx\n                                                            ^^^^^\n                                                            source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx variable.other.object.tsx\n                                                                 ^\n                                                                 source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx punctuation.accessor.tsx\n                                                                  ^^^^^^\n                                                                  source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx support.variable.property.dom.tsx\n                                                                        ^\n                                                                        source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx keyword.operator.logical.tsx\n                                                                         ^\n                                                                         source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx\n                                                                          ^\n                                                                          source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx punctuation.definition.block.tsx\n                                                                           ^\n                                                                           source.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n                                                                            ^\n                                                                            source.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                                                             ^^\n                                                                             source.tsx meta.tag.tsx punctuation.definition.tag.end.tsx"
  },
  {
    "path": "tests/baselines/Issue796.baseline.txt",
    "content": "original file\n-----------------------------------\nconst h = {\n  setSubProperty: <\n      T extends A,\n      K extends keyof T,\n      J extends keyof T[K]\n    >(\n      property: K,\n      key: J,\n      value: T[K][J]\n    ) =>  {}\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const h = {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>  setSubProperty: <\n ^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n   ^^^^^^^^^^^^^^\n   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts entity.name.function.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n>      T extends A,\n ^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts entity.name.type.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts\n         ^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts storage.modifier.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts entity.name.type.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts punctuation.separator.comma.ts\n>      K extends keyof T,\n ^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts entity.name.type.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts\n         ^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts storage.modifier.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts\n                 ^^^^^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts keyword.operator.expression.keyof.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts entity.name.type.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts punctuation.separator.comma.ts\n>      J extends keyof T[K]\n ^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts entity.name.type.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts\n         ^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts storage.modifier.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts\n                 ^^^^^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts keyword.operator.expression.keyof.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts entity.name.type.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts meta.type.tuple.ts entity.name.type.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n>    >(\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n>      property: K,\n ^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n       ^^^^^^^^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.parameter.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.annotation.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.annotation.ts entity.name.type.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts punctuation.separator.parameter.ts\n>      key: J,\n ^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.parameter.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.annotation.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.annotation.ts entity.name.type.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts punctuation.separator.parameter.ts\n>      value: T[K][J]\n ^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n       ^^^^^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.parameter.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.annotation.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.annotation.ts entity.name.type.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n>    ) =>  {}\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n       ^^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts storage.type.function.arrow.ts\n         ^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue797.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Foo {\n    declare baz: any;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Foo {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^\n          source.ts meta.class.ts\n           ^\n           source.ts meta.class.ts punctuation.definition.block.ts\n>    declare baz: any;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^^^\n             source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                  ^^^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue811.baseline.txt",
    "content": "original file\n-----------------------------------\nconst a = styled<{\n    padding: string\n}>`\n\t123\n`;\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>const a = styled<{\n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^\n       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx\n        ^\n        source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n         ^\n         source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n          ^\n          source.tsx meta.var.expr.tsx\n           ^^^^^^\n           source.tsx meta.var.expr.tsx meta.function-call.tsx entity.name.function.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n                  ^\n                  source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx punctuation.definition.block.tsx\n>    padding: string\n ^^^^\n source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx\n     ^^^^^^^\n     source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.definition.property.tsx variable.object.property.tsx\n            ^\n            source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx\n              ^^^^^^\n              source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx support.type.primitive.tsx\n>}>`\n ^\n source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx punctuation.definition.block.tsx\n  ^\n  source.tsx meta.var.expr.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n   ^\n   source.tsx meta.var.expr.tsx string.template.tsx punctuation.definition.string.template.begin.tsx\n>\t123\n ^^^^^\n source.tsx meta.var.expr.tsx string.template.tsx\n>`;\n ^\n source.tsx meta.var.expr.tsx string.template.tsx punctuation.definition.string.template.end.tsx\n  ^\n  source.tsx punctuation.terminator.statement.tsx"
  },
  {
    "path": "tests/baselines/Issue816.baseline.txt",
    "content": "original file\n-----------------------------------\nconst a = ({ abc: { abc: { abc } } }) => { }\nconst b = ({ abc: { abc } }) => { }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const a = ({ abc: { abc: { abc } } }) => { }\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n              ^^^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                     ^^^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                            ^^^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.arrow.ts\n                                       ^^\n                                       source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.arrow.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>const b = ({ abc: { abc } }) => { }\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n              ^^^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                     ^^^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.arrow.ts\n                              ^^\n                              source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.arrow.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue82.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Foo {\n    constructor(\n        test: number, // foo bar,\n        exitEditModeCallback: () => void // Used to re-enable View updates.\n    ) {\n        \n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Foo {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^\n          source.ts meta.class.ts\n           ^\n           source.ts meta.class.ts punctuation.definition.block.ts\n>    constructor(\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n>        test: number, // foo bar,\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n         ^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n               ^^^^^^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                       ^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                         ^^^^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts comment.line.double-slash.ts\n>        exitEditModeCallback: () => void // Used to re-enable View updates.\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n         ^^^^^^^^^^^^^^^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts entity.name.function.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                  ^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts\n                                     ^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts support.type.primitive.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.function.return.ts\n                                          ^^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts comment.line.double-slash.ts\n>    ) {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        \n ^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue822.baseline.txt",
    "content": "original file\n-----------------------------------\nconst ComponentContainer = f({})<Pick<null, \"a\">>`\n`;\n\nconst bla = 1;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const ComponentContainer = f({})<Pick<null, \"a\">>`\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                          ^\n                          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                           ^\n                           source.ts meta.var.expr.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                  ^^^^\n                                  source.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                       ^^^^\n                                       source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts support.type.builtin.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts string.quoted.double.ts\n                                               ^\n                                               source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts\n>`;\n ^\n source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts\n  ^\n  source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>const bla = 1;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts constant.numeric.decimal.ts\n              ^\n              source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue823.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction test(type, obj) {\n  return type in obj && 'broken';\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function test(type, obj) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^^^^\n               source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts\n                     ^^^\n                     source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                         ^\n                         source.ts meta.function.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>  return type in obj && 'broken';\n ^^\n source.ts meta.function.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.function.ts meta.block.ts\n          ^^^^\n          source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.function.ts meta.block.ts\n               ^^\n               source.ts meta.function.ts meta.block.ts keyword.operator.expression.in.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts\n                  ^^^\n                  source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts\n                      ^^\n                      source.ts meta.function.ts meta.block.ts keyword.operator.logical.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                          ^^^^^^\n                          source.ts meta.function.ts meta.block.ts string.quoted.single.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue832.baseline.txt",
    "content": "original file\n-----------------------------------\nlet a = /foo[]bar/;\nlet b = /foo[^]bar/;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let a = /foo[]bar/;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n          ^^^\n          source.ts meta.var.expr.ts string.regexp.ts\n             ^\n             source.ts meta.var.expr.ts string.regexp.ts constant.other.character-class.set.regexp punctuation.definition.character-class.regexp\n              ^\n              source.ts meta.var.expr.ts string.regexp.ts constant.other.character-class.set.regexp punctuation.definition.character-class.regexp\n               ^^^\n               source.ts meta.var.expr.ts string.regexp.ts\n                  ^\n                  source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>let b = /foo[^]bar/;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts string.regexp.ts\n         ^\n         source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n          ^^^\n          source.ts meta.var.expr.ts string.regexp.ts\n             ^\n             source.ts meta.var.expr.ts string.regexp.ts constant.other.character-class.set.regexp punctuation.definition.character-class.regexp\n              ^\n              source.ts meta.var.expr.ts string.regexp.ts constant.other.character-class.set.regexp keyword.operator.negation.regexp\n               ^\n               source.ts meta.var.expr.ts string.regexp.ts constant.other.character-class.set.regexp punctuation.definition.character-class.regexp\n                ^^^\n                source.ts meta.var.expr.ts string.regexp.ts\n                   ^\n                   source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue836.baseline.txt",
    "content": "original file\n-----------------------------------\nconst _actions = {} as {\n    [P in keyof Actions] : PropType<Parameters<Actions[P]> , \"0\"> extends object ? \n      (payload: PropType<Parameters<Actions[P]> , \"0\">) => void \n      : \n      () => void;\n  };\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const _actions = {} as {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                    ^\n                    source.ts meta.var.expr.ts\n                     ^^\n                     source.ts meta.var.expr.ts keyword.control.as.ts\n                       ^\n                       source.ts meta.var.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.object.type.ts punctuation.definition.block.ts\n>    [P in keyof Actions] : PropType<Parameters<Actions[P]> , \"0\"> extends object ? \n ^^^^\n source.ts meta.var.expr.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n     ^\n     source.ts meta.var.expr.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n      ^\n      source.ts meta.var.expr.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n       ^\n       source.ts meta.var.expr.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n        ^^\n        source.ts meta.var.expr.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n          ^\n          source.ts meta.var.expr.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n           ^^^^^\n           source.ts meta.var.expr.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.keyof.ts\n                ^\n                source.ts meta.var.expr.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                 ^^^^^^^\n                 source.ts meta.var.expr.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts\n                            ^^^^^^^^\n                            source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                     ^^^^^^^^^^\n                                     source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts entity.name.type.ts\n                                               ^\n                                               source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                ^^^^^^^\n                                                source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts entity.name.type.ts\n                                                       ^\n                                                       source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                                        ^\n                                                        source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.tuple.ts entity.name.type.ts\n                                                         ^\n                                                         source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                                          ^\n                                                          source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                           ^\n                                                           source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts\n                                                            ^\n                                                            source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                                             ^\n                                                             source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts\n                                                              ^\n                                                              source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                               ^\n                                                               source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts string.quoted.double.ts\n                                                                ^\n                                                                source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                 ^\n                                                                 source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                  ^\n                                                                  source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts\n                                                                   ^^^^^^^\n                                                                   source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts storage.modifier.ts\n                                                                          ^\n                                                                          source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts\n                                                                           ^^^^^^\n                                                                           source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts support.type.builtin.ts\n                                                                                 ^\n                                                                                 source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts\n                                                                                  ^\n                                                                                  source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.ternary.ts\n                                                                                   ^^\n                                                                                   source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts\n>      (payload: PropType<Parameters<Actions[P]> , \"0\">) => void \n ^^^^^^\n source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n        ^^^^^^^\n        source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n               ^\n               source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                 ^^^^^^^^\n                 source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                          ^^^^^^^^^^\n                          source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts entity.name.type.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                     ^^^^^^^\n                                     source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts entity.name.type.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.tuple.ts entity.name.type.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                               ^\n                                               source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts string.quoted.double.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                      ^\n                                                      source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                       ^\n                                                       source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                        ^\n                                                        source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts\n                                                         ^^\n                                                         source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                           ^\n                                                           source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.return.ts\n                                                            ^^^^\n                                                            source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.return.ts support.type.primitive.ts\n                                                                ^\n                                                                source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.return.ts\n>      : \n ^^^^^^\n source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.ternary.ts\n        ^^\n        source.ts meta.var.expr.ts meta.object.type.ts meta.type.annotation.ts\n>      () => void;\n ^^^^^^\n source.ts meta.var.expr.ts meta.object.type.ts meta.method.declaration.ts\n       ^\n       source.ts meta.var.expr.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n        ^\n        source.ts meta.var.expr.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n         ^\n         source.ts meta.var.expr.ts meta.object.type.ts meta.method.declaration.ts\n          ^^\n          source.ts meta.var.expr.ts meta.object.type.ts meta.method.declaration.ts meta.type.function.return.ts storage.type.function.arrow.ts\n            ^\n            source.ts meta.var.expr.ts meta.object.type.ts meta.method.declaration.ts meta.type.function.return.ts\n             ^^^^\n             source.ts meta.var.expr.ts meta.object.type.ts meta.method.declaration.ts meta.type.function.return.ts support.type.primitive.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.object.type.ts punctuation.terminator.statement.ts\n>  };\n ^^\n source.ts meta.var.expr.ts meta.object.type.ts\n   ^\n   source.ts meta.var.expr.ts meta.object.type.ts punctuation.definition.block.ts\n    ^\n    source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue840.baseline.txt",
    "content": "original file\n-----------------------------------\ntype Union<A,B> = A|B;\n\nconst fn = (\n// newline here\n): Array<Union<Array<number>, string>>=>{\n    try {\n        return [[1]]\n    } catch (e){\n        return [[1]]\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type Union<A,B> = A|B;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n           ^\n           source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n            ^\n            source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n             ^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                ^\n                source.ts meta.type.declaration.ts\n                 ^\n                 source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^\n                   source.ts meta.type.declaration.ts entity.name.type.ts\n                    ^\n                    source.ts meta.type.declaration.ts keyword.operator.type.ts\n                     ^\n                     source.ts meta.type.declaration.ts entity.name.type.ts\n                      ^\n                      source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>const fn = (\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.brace.round.ts\n>// newline here\n ^^\n source.ts meta.var.expr.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^\n   source.ts meta.var.expr.ts comment.line.double-slash.ts\n>): Array<Union<Array<number>, string>>=>{\n ^\n source.ts meta.var.expr.ts meta.brace.round.ts\n  ^\n  source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n   ^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n    ^^^^^\n    source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts entity.name.type.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n          ^^^^^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts entity.name.type.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                ^^^^^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts entity.name.type.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                      ^^^^^^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.parameters.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts\n                               ^^^^^^\n                               source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts support.type.primitive.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                       ^^\n                                       source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    try {\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.trycatch.ts\n        ^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>        return [[1]]\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.array.literal.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.array.literal.ts meta.brace.square.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.array.literal.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.array.literal.ts meta.brace.square.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n>    } catch (e){\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n       ^^^^^\n       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.trycatch.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>        return [[1]]\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.array.literal.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.array.literal.ts meta.brace.square.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.array.literal.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.array.literal.ts meta.brace.square.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n>    }\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue841.baseline.txt",
    "content": "original file\n-----------------------------------\ntype Foo = string\n\n(async () => {\n\tlet foo: string\n\n\ttry {\n\t\tfoo = \"hello\"\n\t} catch (error) {\n\t\t// Nothing\n\t}\n})()\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type Foo = string\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^^\n            source.ts meta.type.declaration.ts support.type.primitive.ts\n>\n ^\n source.ts\n>(async () => {\n ^\n source.ts meta.brace.round.ts\n  ^^^^^\n  source.ts meta.arrow.ts storage.modifier.async.ts\n       ^\n       source.ts meta.arrow.ts\n        ^\n        source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n          ^\n          source.ts meta.arrow.ts\n           ^^\n           source.ts meta.arrow.ts storage.type.function.arrow.ts\n             ^\n             source.ts meta.arrow.ts\n              ^\n              source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>\tlet foo: string\n ^\n source.ts meta.arrow.ts meta.block.ts\n  ^^^\n  source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n     ^\n     source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n      ^^^\n      source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n         ^\n         source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n          ^\n          source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n           ^^^^^^\n           source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n>\n ^\n source.ts meta.arrow.ts meta.block.ts\n>\ttry {\n ^\n source.ts meta.arrow.ts meta.block.ts\n  ^^^\n  source.ts meta.arrow.ts meta.block.ts keyword.control.trycatch.ts\n     ^\n     source.ts meta.arrow.ts meta.block.ts\n      ^\n      source.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>\t\tfoo = \"hello\"\n ^^\n source.ts meta.arrow.ts meta.block.ts meta.block.ts\n   ^^^\n   source.ts meta.arrow.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.arrow.ts meta.block.ts meta.block.ts\n       ^\n       source.ts meta.arrow.ts meta.block.ts meta.block.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.arrow.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.arrow.ts meta.block.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n          ^^^^^\n          source.ts meta.arrow.ts meta.block.ts meta.block.ts string.quoted.double.ts\n               ^\n               source.ts meta.arrow.ts meta.block.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>\t} catch (error) {\n ^\n source.ts meta.arrow.ts meta.block.ts meta.block.ts\n  ^\n  source.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n   ^\n   source.ts meta.arrow.ts meta.block.ts\n    ^^^^^\n    source.ts meta.arrow.ts meta.block.ts keyword.control.trycatch.ts\n         ^\n         source.ts meta.arrow.ts meta.block.ts\n          ^\n          source.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n           ^^^^^\n           source.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                 ^\n                 source.ts meta.arrow.ts meta.block.ts\n                  ^\n                  source.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>\t\t// Nothing\n ^^\n source.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n   ^^\n   source.ts meta.arrow.ts meta.block.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n     ^^^^^^^^\n     source.ts meta.arrow.ts meta.block.ts meta.block.ts comment.line.double-slash.ts\n>\t}\n ^\n source.ts meta.arrow.ts meta.block.ts meta.block.ts\n  ^\n  source.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>})()\n ^\n source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.brace.round.ts\n   ^\n   source.ts meta.brace.round.ts\n    ^\n    source.ts meta.brace.round.ts"
  },
  {
    "path": "tests/baselines/Issue844.baseline.txt",
    "content": "original file\n-----------------------------------\ndeclare const key: string;\ndeclare const value: string;\ndeclare const Classes: { [key: string]: any };\nconst k = value.slice(0, value.indexOf(\"<\"));\nnew Classes[value.slice(0, value.indexOf(\"<\"))]();\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>declare const key: string;\n ^^^^^^^\n source.ts meta.var.expr.ts storage.modifier.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^\n         source.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                    ^^^^^^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n                          ^\n                          source.ts punctuation.terminator.statement.ts\n>declare const value: string;\n ^^^^^^^\n source.ts meta.var.expr.ts storage.modifier.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^\n         source.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^^^^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                      ^^^^^^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n                            ^\n                            source.ts punctuation.terminator.statement.ts\n>declare const Classes: { [key: string]: any };\n ^^^^^^^\n source.ts meta.var.expr.ts storage.modifier.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^\n         source.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^^^^^^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.brace.square.ts\n                           ^^^\n                           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts variable.parameter.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts\n                                ^^^^^^\n                                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.brace.square.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts\n                                         ^^^\n                                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts support.type.primitive.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                              ^\n                                              source.ts punctuation.terminator.statement.ts\n>const k = value.slice(0, value.indexOf(\"<\"));\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^^^^^\n           source.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^\n                 source.ts meta.var.expr.ts meta.function-call.ts support.function.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                        ^\n                        source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                         ^\n                         source.ts meta.var.expr.ts\n                          ^^^^^\n                          source.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                ^^^^^^^\n                                source.ts meta.var.expr.ts meta.function-call.ts support.function.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.brace.round.ts\n                                        ^\n                                        source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                         ^\n                                         source.ts meta.var.expr.ts string.quoted.double.ts\n                                          ^\n                                          source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.brace.round.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.brace.round.ts\n                                             ^\n                                             source.ts punctuation.terminator.statement.ts\n>new Classes[value.slice(0, value.indexOf(\"<\"))]();\n ^^^\n source.ts new.expr.ts keyword.operator.new.ts\n    ^\n    source.ts new.expr.ts\n     ^^^^^^^\n     source.ts new.expr.ts variable.other.readwrite.ts\n            ^\n            source.ts new.expr.ts meta.array.literal.ts meta.brace.square.ts\n             ^^^^^\n             source.ts new.expr.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                  ^\n                  source.ts new.expr.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^\n                   source.ts new.expr.ts meta.array.literal.ts meta.function-call.ts support.function.ts\n                        ^\n                        source.ts new.expr.ts meta.array.literal.ts meta.brace.round.ts\n                         ^\n                         source.ts new.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                          ^\n                          source.ts new.expr.ts meta.array.literal.ts punctuation.separator.comma.ts\n                           ^\n                           source.ts new.expr.ts meta.array.literal.ts\n                            ^^^^^\n                            source.ts new.expr.ts meta.array.literal.ts meta.function-call.ts variable.other.object.ts\n                                 ^\n                                 source.ts new.expr.ts meta.array.literal.ts meta.function-call.ts punctuation.accessor.ts\n                                  ^^^^^^^\n                                  source.ts new.expr.ts meta.array.literal.ts meta.function-call.ts support.function.ts\n                                         ^\n                                         source.ts new.expr.ts meta.array.literal.ts meta.brace.round.ts\n                                          ^\n                                          source.ts new.expr.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                           ^\n                                           source.ts new.expr.ts meta.array.literal.ts string.quoted.double.ts\n                                            ^\n                                            source.ts new.expr.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                             ^\n                                             source.ts new.expr.ts meta.array.literal.ts meta.brace.round.ts\n                                              ^\n                                              source.ts new.expr.ts meta.array.literal.ts meta.brace.round.ts\n                                               ^\n                                               source.ts new.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                                ^\n                                                source.ts new.expr.ts meta.brace.round.ts\n                                                 ^\n                                                 source.ts new.expr.ts meta.brace.round.ts\n                                                  ^\n                                                  source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue846.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction foo(): number { return 42; }\nlet bar: ReturnType<typeof foo>;\nbar = 1;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function foo(): number { return 42; }\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.function.ts meta.return.type.ts\n                 ^^^^^^\n                 source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.function.ts meta.return.type.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts\n                          ^^^^^^\n                          source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts\n                                 ^^\n                                 source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>let bar: ReturnType<typeof foo>;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n          ^^^^^^^^^^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                     ^^^^^^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts keyword.operator.expression.typeof.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts\n                            ^^^\n                            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                ^\n                                source.ts punctuation.terminator.statement.ts\n>bar = 1;\n ^^^\n source.ts variable.other.readwrite.ts\n    ^\n    source.ts\n     ^\n     source.ts keyword.operator.assignment.ts\n      ^\n      source.ts\n       ^\n       source.ts constant.numeric.decimal.ts\n        ^\n        source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue850.baseline.txt",
    "content": "original file\n-----------------------------------\nx /= 2;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>x /= 2;\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^^\n   source.ts keyword.operator.assignment.compound.ts\n     ^\n     source.ts\n      ^\n      source.ts constant.numeric.decimal.ts\n       ^\n       source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue858.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Foo {\n    bar(): typeof Baz {\n        if (true) {\n            console.log('Hello World')\n        }\n        return\n    }\n}\nclass X {\n    constructor() {\n        foo(false ? typeof defaultValue : undefined);\n    }\n    public foo() { }\n}\nlet c: typeof a & [boolean][];\ntype Foo = { [K in keyof typeof foo & keyof typeof bar]: 1 };\nconst foo = {\n    get bar(): typeof foo['leet'] {\n        return this.leet;\n    },\n    leet: 1\n};\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Foo {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^\n          source.ts meta.class.ts\n           ^\n           source.ts meta.class.ts punctuation.definition.block.ts\n>    bar(): typeof Baz {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n            ^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.expression.typeof.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                   ^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        if (true) {\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n             ^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.language.boolean.true.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>            console.log('Hello World')\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.function-call.ts support.class.console.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                     ^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                          ^^^^^^^^^^^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts string.quoted.single.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.brace.round.ts\n>        }\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>        return\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>class X {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>    constructor() {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        foo(false ? typeof defaultValue : undefined);\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.language.boolean.false.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.ternary.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                     ^^^^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.expression.typeof.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                            ^^^^^^^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.ternary.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                           ^^^^^^^^^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.language.undefined.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    public foo() { }\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>let c: typeof a & [boolean][];\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.expression.typeof.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                    ^^^^^^^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts\n>type Foo = { [K in keyof typeof foo & keyof typeof bar]: 1 };\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n              ^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n               ^\n               source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                ^\n                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                 ^^\n                 source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                    ^^^^^\n                    source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.keyof.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                          ^^^^^^\n                          source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.typeof.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                 ^^^\n                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts variable.other.readwrite.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.type.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                       ^^^^^\n                                       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.keyof.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                             ^^^^^^\n                                             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.typeof.ts\n                                                   ^\n                                                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                                    ^^^\n                                                    source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts variable.other.readwrite.ts\n                                                       ^\n                                                       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                                                        ^\n                                                        source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                         ^\n                                                         source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                                          ^\n                                                          source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts constant.numeric.decimal.ts\n                                                           ^\n                                                           source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                                            ^\n                                                            source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                                                             ^\n                                                             source.ts punctuation.terminator.statement.ts\n>const foo = {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    get bar(): typeof foo['leet'] {\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts storage.type.property.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n         ^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.return.type.ts\n                ^^^^^^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.expression.typeof.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.return.type.ts\n                       ^^^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.return.type.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.return.type.ts meta.array.literal.ts meta.brace.square.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.return.type.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                            ^^^^\n                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.return.type.ts meta.array.literal.ts string.quoted.single.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.return.type.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.return.type.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.return.type.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        return this.leet;\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n                ^^^^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n                     ^^^^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    },\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>    leet: 1\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n>};\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue868.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Foo {\n    override bar() { }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Foo {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^\n          source.ts meta.class.ts\n           ^\n           source.ts meta.class.ts punctuation.definition.block.ts\n>    override bar() { }\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts\n              ^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue87.baseline.txt",
    "content": "original file\n-----------------------------------\nif (!req.body.new) {\n    // Return early if no new password is provided\n    return res.status(400).send('New password is requied');\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>if (!req.body.new) {\n ^^\n source.ts keyword.control.conditional.ts\n   ^\n   source.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^\n     source.ts keyword.operator.logical.ts\n      ^^^\n      source.ts variable.other.object.ts\n         ^\n         source.ts punctuation.accessor.ts\n          ^^^^\n          source.ts support.variable.property.dom.ts\n              ^\n              source.ts punctuation.accessor.ts\n               ^^^\n               source.ts variable.other.property.ts\n                  ^\n                  source.ts meta.brace.round.ts\n                   ^\n                   source.ts\n                    ^\n                    source.ts meta.block.ts punctuation.definition.block.ts\n>    // Return early if no new password is provided\n ^^^^\n source.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n       source.ts meta.block.ts comment.line.double-slash.ts\n>    return res.status(400).send('New password is requied');\n ^^^^\n source.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.block.ts\n            ^^^\n            source.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n               ^\n               source.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                ^^^^^^\n                source.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                      ^\n                      source.ts meta.block.ts meta.brace.round.ts\n                       ^^^\n                       source.ts meta.block.ts constant.numeric.decimal.ts\n                          ^\n                          source.ts meta.block.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^\n                            source.ts meta.block.ts meta.function-call.ts support.function.ts\n                                ^\n                                source.ts meta.block.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                  ^^^^^^^^^^^^^^^^^^^^^^^\n                                  source.ts meta.block.ts string.quoted.single.ts\n                                                         ^\n                                                         source.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                          ^\n                                                          source.ts meta.block.ts meta.brace.round.ts\n                                                           ^\n                                                           source.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue870.baseline.txt",
    "content": "original file\n-----------------------------------\nconst a = [1]\ntype Test<A> = {\n    2: 2;\n    3: 3;\n}[A extends typeof a ? 2 : 3];\nconst foo = 30;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const a = [1]\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts meta.array.literal.ts\n           ^\n           source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n            ^\n            source.ts meta.var.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n             ^\n             source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n>type Test<A> = {\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n          ^\n          source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n           ^\n           source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n            ^\n            source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n             ^\n             source.ts meta.type.declaration.ts\n              ^\n              source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.type.declaration.ts\n                ^\n                source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>    2: 2;\n ^^^^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts constant.numeric.decimal.ts\n      ^\n      source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^\n        source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts constant.numeric.decimal.ts\n         ^\n         source.ts meta.type.declaration.ts meta.object.type.ts punctuation.terminator.statement.ts\n>    3: 3;\n ^^^^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts constant.numeric.decimal.ts\n      ^\n      source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^\n        source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts constant.numeric.decimal.ts\n         ^\n         source.ts meta.type.declaration.ts meta.object.type.ts punctuation.terminator.statement.ts\n>}[A extends typeof a ? 2 : 3];\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n   ^\n   source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n    ^\n    source.ts meta.type.declaration.ts meta.type.tuple.ts\n     ^^^^^^^\n     source.ts meta.type.declaration.ts meta.type.tuple.ts storage.modifier.ts\n            ^\n            source.ts meta.type.declaration.ts meta.type.tuple.ts\n             ^^^^^^\n             source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.expression.typeof.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.type.tuple.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.tuple.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.tuple.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.ternary.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.tuple.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.tuple.ts constant.numeric.decimal.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.tuple.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.ternary.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.tuple.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.tuple.ts constant.numeric.decimal.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts\n>const foo = 30;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^^\n             source.ts meta.var.expr.ts constant.numeric.decimal.ts\n               ^\n               source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue88.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\nfunction foo() {\n return (\n     <div className=\"panel panel-default\">\n        <div className=\"panel-heading\">\n            <h3 className=\"panel-title\"><i className=\"fa fa-user\"></i> Log In</h3>\n        </div>\n        <div className=\"panel-body\">\n        </div>\n    </div>);\n}\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>function foo() {\n ^^^^^^^^\n source.tsx meta.function.tsx storage.type.function.tsx\n         ^\n         source.tsx meta.function.tsx\n          ^^^\n          source.tsx meta.function.tsx meta.definition.function.tsx entity.name.function.tsx\n             ^\n             source.tsx meta.function.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n              ^\n              source.tsx meta.function.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n               ^\n               source.tsx meta.function.tsx\n                ^\n                source.tsx meta.function.tsx meta.block.tsx punctuation.definition.block.tsx\n> return (\n ^\n source.tsx meta.function.tsx meta.block.tsx\n  ^^^^^^\n  source.tsx meta.function.tsx meta.block.tsx keyword.control.flow.tsx\n        ^\n        source.tsx meta.function.tsx meta.block.tsx\n         ^\n         source.tsx meta.function.tsx meta.block.tsx meta.brace.round.tsx\n>     <div className=\"panel panel-default\">\n ^^^^^\n source.tsx meta.function.tsx meta.block.tsx\n      ^\n      source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n       ^^^\n       source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx entity.name.tag.tsx\n          ^\n          source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx\n           ^^^^^^^^^\n           source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                    ^\n                    source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                     ^\n                     source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.begin.tsx\n                      ^^^^^^^^^^^^^^^^^^^\n                      source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx\n                                         ^\n                                         source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.end.tsx\n                                          ^\n                                          source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>        <div className=\"panel-heading\">\n ^^^^^^^^\n source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx\n         ^\n         source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n          ^^^\n          source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n             ^\n             source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n              ^^^^^^^^^\n              source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                       ^\n                       source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                        ^\n                        source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.begin.tsx\n                         ^^^^^^^^^^^^^\n                         source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx\n                                      ^\n                                      source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.end.tsx\n                                       ^\n                                       source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>            <h3 className=\"panel-title\"><i className=\"fa fa-user\"></i> Log In</h3>\n ^^^^^^^^^^^^\n source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx\n             ^\n             source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n              ^^\n              source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n                ^\n                source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n                 ^^^^^^^^^\n                 source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                          ^\n                          source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                           ^\n                           source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.begin.tsx\n                            ^^^^^^^^^^^\n                            source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx\n                                       ^\n                                       source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.end.tsx\n                                        ^\n                                        source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                         ^\n                                         source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                                          ^\n                                          source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n                                           ^\n                                           source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                            ^^^^^^^^^\n                                            source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                                                     ^\n                                                     source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                                                      ^\n                                                      source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.begin.tsx\n                                                       ^^^^^^^^^^\n                                                       source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx\n                                                                 ^\n                                                                 source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.end.tsx\n                                                                  ^\n                                                                  source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                                   ^^\n                                                                   source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                                                                     ^\n                                                                     source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n                                                                      ^\n                                                                      source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                                       ^^^^^^^\n                                                                       source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx\n                                                                              ^^\n                                                                              source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                                                                                ^^\n                                                                                source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n                                                                                  ^\n                                                                                  source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>        </div>\n ^^^^^^^^\n source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx\n         ^^\n         source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n           ^^^\n           source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n              ^\n              source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>        <div className=\"panel-body\">\n ^^^^^^^^\n source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx\n         ^\n         source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n          ^^^\n          source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n             ^\n             source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n              ^^^^^^^^^\n              source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                       ^\n                       source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                        ^\n                        source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.begin.tsx\n                         ^^^^^^^^^^\n                         source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx\n                                   ^\n                                   source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.end.tsx\n                                    ^\n                                    source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>        </div>\n ^^^^^^^^\n source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx meta.jsx.children.tsx\n         ^^\n         source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n           ^^^\n           source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx\n              ^\n              source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>    </div>);\n ^^^^\n source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx\n     ^^\n     source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n       ^^^\n       source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx entity.name.tag.tsx\n          ^\n          source.tsx meta.function.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n           ^\n           source.tsx meta.function.tsx meta.block.tsx meta.brace.round.tsx\n            ^\n            source.tsx meta.function.tsx meta.block.tsx punctuation.terminator.statement.tsx\n>}\n ^\n source.tsx meta.function.tsx meta.block.tsx punctuation.definition.block.tsx"
  },
  {
    "path": "tests/baselines/Issue89.baseline.txt",
    "content": "original file\n-----------------------------------\nexport class A extends /*  */B implements/**/ C{\n\t\t\n}\n\n\n\nexport class D implements/**/  F extends /**/G  {\n\t\t\n}\n\n\nexport class E extends /**/H  implements/**/ One, Two, Three{\n\t\t\n}\n\n\nclass className extends class1 implements class2 {\n    \n}\n\n/*\n\tChecking comments \n*/\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export class A extends /*  */B implements/**/ C{\n ^^^^^^\n source.ts meta.class.ts keyword.control.export.ts\n       ^\n       source.ts meta.class.ts\n        ^^^^^\n        source.ts meta.class.ts storage.type.class.ts\n             ^\n             source.ts meta.class.ts\n              ^\n              source.ts meta.class.ts entity.name.type.class.ts\n               ^\n               source.ts meta.class.ts\n                ^^^^^^^\n                source.ts meta.class.ts storage.modifier.ts\n                       ^\n                       source.ts meta.class.ts\n                        ^^\n                        source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                          ^^\n                          source.ts meta.class.ts comment.block.ts\n                            ^^\n                            source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                              ^\n                              source.ts meta.class.ts entity.other.inherited-class.ts\n                               ^\n                               source.ts meta.class.ts\n                                ^^^^^^^^^^\n                                source.ts meta.class.ts storage.modifier.ts\n                                          ^^\n                                          source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                            ^^\n                                            source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                              ^\n                                              source.ts meta.class.ts\n                                               ^\n                                               source.ts meta.class.ts entity.other.inherited-class.ts\n                                                ^\n                                                source.ts meta.class.ts punctuation.definition.block.ts\n>\t\t\n ^^^\n source.ts meta.class.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>\n ^\n source.ts\n>\n ^\n source.ts\n>export class D implements/**/  F extends /**/G  {\n ^^^^^^\n source.ts meta.class.ts keyword.control.export.ts\n       ^\n       source.ts meta.class.ts\n        ^^^^^\n        source.ts meta.class.ts storage.type.class.ts\n             ^\n             source.ts meta.class.ts\n              ^\n              source.ts meta.class.ts entity.name.type.class.ts\n               ^\n               source.ts meta.class.ts\n                ^^^^^^^^^^\n                source.ts meta.class.ts storage.modifier.ts\n                          ^^\n                          source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                            ^^\n                            source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                              ^^\n                              source.ts meta.class.ts\n                                ^\n                                source.ts meta.class.ts entity.other.inherited-class.ts\n                                 ^\n                                 source.ts meta.class.ts\n                                  ^^^^^^^\n                                  source.ts meta.class.ts storage.modifier.ts\n                                         ^\n                                         source.ts meta.class.ts\n                                          ^^\n                                          source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                            ^^\n                                            source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                              ^\n                                              source.ts meta.class.ts entity.other.inherited-class.ts\n                                               ^^\n                                               source.ts meta.class.ts\n                                                 ^\n                                                 source.ts meta.class.ts punctuation.definition.block.ts\n>\t\t\n ^^^\n source.ts meta.class.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>\n ^\n source.ts\n>export class E extends /**/H  implements/**/ One, Two, Three{\n ^^^^^^\n source.ts meta.class.ts keyword.control.export.ts\n       ^\n       source.ts meta.class.ts\n        ^^^^^\n        source.ts meta.class.ts storage.type.class.ts\n             ^\n             source.ts meta.class.ts\n              ^\n              source.ts meta.class.ts entity.name.type.class.ts\n               ^\n               source.ts meta.class.ts\n                ^^^^^^^\n                source.ts meta.class.ts storage.modifier.ts\n                       ^\n                       source.ts meta.class.ts\n                        ^^\n                        source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                          ^^\n                          source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                            ^\n                            source.ts meta.class.ts entity.other.inherited-class.ts\n                             ^^\n                             source.ts meta.class.ts\n                               ^^^^^^^^^^\n                               source.ts meta.class.ts storage.modifier.ts\n                                         ^^\n                                         source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                           ^^\n                                           source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts\n                                             ^\n                                             source.ts meta.class.ts\n                                              ^^^\n                                              source.ts meta.class.ts entity.other.inherited-class.ts\n                                                 ^\n                                                 source.ts meta.class.ts punctuation.separator.comma.ts\n                                                  ^\n                                                  source.ts meta.class.ts\n                                                   ^^^\n                                                   source.ts meta.class.ts entity.other.inherited-class.ts\n                                                      ^\n                                                      source.ts meta.class.ts punctuation.separator.comma.ts\n                                                       ^\n                                                       source.ts meta.class.ts\n                                                        ^^^^^\n                                                        source.ts meta.class.ts entity.other.inherited-class.ts\n                                                             ^\n                                                             source.ts meta.class.ts punctuation.definition.block.ts\n>\t\t\n ^^^\n source.ts meta.class.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>\n ^\n source.ts\n>class className extends class1 implements class2 {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n                ^\n                source.ts meta.class.ts\n                 ^^^^^^^\n                 source.ts meta.class.ts storage.modifier.ts\n                        ^\n                        source.ts meta.class.ts\n                         ^^^^^^\n                         source.ts meta.class.ts entity.other.inherited-class.ts\n                               ^\n                               source.ts meta.class.ts\n                                ^^^^^^^^^^\n                                source.ts meta.class.ts storage.modifier.ts\n                                          ^\n                                          source.ts meta.class.ts\n                                           ^^^^^^\n                                           source.ts meta.class.ts entity.other.inherited-class.ts\n                                                 ^\n                                                 source.ts meta.class.ts\n                                                  ^\n                                                  source.ts meta.class.ts punctuation.definition.block.ts\n>    \n ^^^^^\n source.ts meta.class.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>/*\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n>\tChecking comments \n ^^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.ts\n>*/\n ^^\n source.ts comment.block.ts punctuation.definition.comment.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue90.baseline.txt",
    "content": "original file\n-----------------------------------\n var a = 0;\n var b = 1;\n var c = a ^ b;\n\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n> var a = 0;\n ^\n source.ts\n  ^^^\n  source.ts meta.var.expr.ts storage.type.ts\n     ^\n     source.ts meta.var.expr.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n        ^\n        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts constant.numeric.decimal.ts\n           ^\n           source.ts punctuation.terminator.statement.ts\n> var b = 1;\n ^\n source.ts\n  ^^^\n  source.ts meta.var.expr.ts storage.type.ts\n     ^\n     source.ts meta.var.expr.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n        ^\n        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts constant.numeric.decimal.ts\n           ^\n           source.ts punctuation.terminator.statement.ts\n> var c = a ^ b;\n ^\n source.ts\n  ^^^\n  source.ts meta.var.expr.ts storage.type.ts\n     ^\n     source.ts meta.var.expr.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n        ^\n        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.bitwise.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts variable.other.readwrite.ts\n               ^\n               source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/Issue921.baseline.txt",
    "content": "original file\n-----------------------------------\nchildren0 instanceof Child === true;\nchildren0 instanceof Child.prototype.constructor === true;\nchildren0 instanceof(Child.prototype.constructor) === true;\nchildren0 instanceof dict.CONST.ctor === true;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>children0 instanceof Child === true;\n ^^^^^^^^^\n source.ts variable.other.readwrite.ts\n          ^\n          source.ts\n           ^^^^^^^^^^\n           source.ts keyword.operator.expression.instanceof.ts\n                     ^\n                     source.ts\n                      ^^^^^\n                      source.ts entity.name.type.ts\n                           ^\n                           source.ts\n                            ^^^\n                            source.ts keyword.operator.comparison.ts\n                               ^\n                               source.ts\n                                ^^^^\n                                source.ts constant.language.boolean.true.ts\n                                    ^\n                                    source.ts punctuation.terminator.statement.ts\n>children0 instanceof Child.prototype.constructor === true;\n ^^^^^^^^^\n source.ts variable.other.readwrite.ts\n          ^\n          source.ts\n           ^^^^^^^^^^\n           source.ts keyword.operator.expression.instanceof.ts\n                     ^\n                     source.ts\n                      ^^^^^\n                      source.ts entity.name.type.module.ts\n                           ^\n                           source.ts punctuation.accessor.ts\n                            ^^^^^^^^^\n                            source.ts entity.name.type.module.ts\n                                     ^\n                                     source.ts punctuation.accessor.ts\n                                      ^^^^^^^^^^^\n                                      source.ts entity.name.type.ts\n                                                 ^\n                                                 source.ts\n                                                  ^^^\n                                                  source.ts keyword.operator.comparison.ts\n                                                     ^\n                                                     source.ts\n                                                      ^^^^\n                                                      source.ts constant.language.boolean.true.ts\n                                                          ^\n                                                          source.ts punctuation.terminator.statement.ts\n>children0 instanceof(Child.prototype.constructor) === true;\n ^^^^^^^^^\n source.ts variable.other.readwrite.ts\n          ^\n          source.ts\n           ^^^^^^^^^^\n           source.ts keyword.operator.expression.instanceof.ts\n                     ^\n                     source.ts meta.type.paren.cover.ts meta.brace.round.ts\n                      ^^^^^\n                      source.ts meta.type.paren.cover.ts entity.name.type.module.ts\n                           ^\n                           source.ts meta.type.paren.cover.ts punctuation.accessor.ts\n                            ^^^^^^^^^\n                            source.ts meta.type.paren.cover.ts entity.name.type.module.ts\n                                     ^\n                                     source.ts meta.type.paren.cover.ts punctuation.accessor.ts\n                                      ^^^^^^^^^^^\n                                      source.ts meta.type.paren.cover.ts entity.name.type.ts\n                                                 ^\n                                                 source.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                  ^\n                                                  source.ts\n                                                   ^^^\n                                                   source.ts keyword.operator.comparison.ts\n                                                      ^\n                                                      source.ts\n                                                       ^^^^\n                                                       source.ts constant.language.boolean.true.ts\n                                                           ^\n                                                           source.ts punctuation.terminator.statement.ts\n>children0 instanceof dict.CONST.ctor === true;\n ^^^^^^^^^\n source.ts variable.other.readwrite.ts\n          ^\n          source.ts\n           ^^^^^^^^^^\n           source.ts keyword.operator.expression.instanceof.ts\n                     ^\n                     source.ts\n                      ^^^^\n                      source.ts entity.name.type.module.ts\n                          ^\n                          source.ts punctuation.accessor.ts\n                           ^^^^^\n                           source.ts entity.name.type.module.ts\n                                ^\n                                source.ts punctuation.accessor.ts\n                                 ^^^^\n                                 source.ts entity.name.type.ts\n                                     ^\n                                     source.ts\n                                      ^^^\n                                      source.ts keyword.operator.comparison.ts\n                                         ^\n                                         source.ts\n                                          ^^^^\n                                          source.ts constant.language.boolean.true.ts\n                                              ^\n                                              source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue923.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - type parameters of arrow\n\nconst x = <a extends b> ( args:a ):a => {\n  return args;\n}\n\nconst x = <a>\n( args:a ):a => {\n  return args;\n}\n\nconst x = <a extends b>\n( args:a ):a => {\n  return args;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - type parameters of arrow\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>const x = <a extends b> ( args:a ):a => {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts entity.name.type.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts\n              ^^^^^^^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts storage.modifier.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts entity.name.type.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts\n                           ^^^^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts entity.name.type.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n                                      ^^\n                                      source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.arrow.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>  return args;\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n          ^^^^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>const x = <a>\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n            ^\n            source.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.ts\n             ^\n             source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n>( args:a ):a => {\n ^\n source.ts meta.var.expr.ts meta.brace.round.ts\n  ^\n  source.ts meta.var.expr.ts\n   ^^^^\n   source.ts meta.var.expr.ts variable.parameter.ts\n       ^\n       source.ts meta.var.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.type.annotation.ts entity.name.type.ts\n         ^\n         source.ts meta.var.expr.ts meta.type.annotation.ts\n          ^\n          source.ts meta.var.expr.ts meta.brace.round.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts entity.name.type.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n              ^^\n              source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>  return args;\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n          ^^^^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>const x = <a extends b>\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n            ^\n            source.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.ts\n             ^\n             source.ts meta.var.expr.ts meta.type.parameters.ts\n              ^^^^^^^\n              source.ts meta.var.expr.ts meta.type.parameters.ts storage.modifier.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.type.parameters.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n>( args:a ):a => {\n ^\n source.ts meta.var.expr.ts meta.brace.round.ts\n  ^\n  source.ts meta.var.expr.ts\n   ^^^^\n   source.ts meta.var.expr.ts variable.parameter.ts\n       ^\n       source.ts meta.var.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.type.annotation.ts entity.name.type.ts\n         ^\n         source.ts meta.var.expr.ts meta.type.annotation.ts\n          ^\n          source.ts meta.var.expr.ts meta.brace.round.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts entity.name.type.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n              ^^\n              source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>  return args;\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n          ^^^^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue924.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\nrender(<Section title=\"Voice & Video\" />)\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>render(<Section title=\"Voice & Video\" />)\n ^^^^^^\n source.tsx meta.function-call.tsx entity.name.function.tsx\n       ^\n       source.tsx meta.brace.round.tsx\n        ^\n        source.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n         ^^^^^^^\n         source.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n                ^\n                source.tsx meta.tag.tsx meta.tag.attributes.tsx\n                 ^^^^^\n                 source.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                      ^\n                      source.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                       ^\n                       source.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.begin.tsx\n                        ^^^^^^^^^^^^^\n                        source.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx\n                                     ^\n                                     source.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.end.tsx\n                                      ^\n                                      source.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                       ^^\n                                       source.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                         ^\n                                         source.tsx meta.brace.round.tsx"
  },
  {
    "path": "tests/baselines/Issue96.baseline.txt",
    "content": "original file\n-----------------------------------\nvar letter;\nlet variable;\n\nvariable;\nletter;\n\nvar constenum = 10;\nconstenum += 10;\nconst enum E { }\n\nvar constable = \"I am rrrrrroyal!\";\nconstable += \" Royal, I say!\";\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var letter;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts punctuation.terminator.statement.ts\n>let variable;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n             ^\n             source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>variable;\n ^^^^^^^^\n source.ts variable.other.readwrite.ts\n         ^\n         source.ts punctuation.terminator.statement.ts\n>letter;\n ^^^^^^\n source.ts variable.other.readwrite.ts\n       ^\n       source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>var constenum = 10;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^^\n                 source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>constenum += 10;\n ^^^^^^^^^\n source.ts variable.other.readwrite.ts\n          ^\n          source.ts\n           ^^\n           source.ts keyword.operator.assignment.compound.ts\n             ^\n             source.ts\n              ^^\n              source.ts constant.numeric.decimal.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>const enum E { }\n ^^^^^\n source.ts meta.enum.declaration.ts storage.modifier.ts\n      ^\n      source.ts meta.enum.declaration.ts\n       ^^^^\n       source.ts meta.enum.declaration.ts storage.type.enum.ts\n           ^\n           source.ts meta.enum.declaration.ts\n            ^\n            source.ts meta.enum.declaration.ts entity.name.type.enum.ts\n             ^\n             source.ts meta.enum.declaration.ts\n              ^\n              source.ts meta.enum.declaration.ts punctuation.definition.block.ts\n               ^\n               source.ts meta.enum.declaration.ts\n                ^\n                source.ts meta.enum.declaration.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>var constable = \"I am rrrrrroyal!\";\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                  ^^^^^^^^^^^^^^^^\n                  source.ts meta.var.expr.ts string.quoted.double.ts\n                                  ^\n                                  source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                   ^\n                                   source.ts punctuation.terminator.statement.ts\n>constable += \" Royal, I say!\";\n ^^^^^^^^^\n source.ts variable.other.readwrite.ts\n          ^\n          source.ts\n           ^^\n           source.ts keyword.operator.assignment.compound.ts\n             ^\n             source.ts\n              ^\n              source.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n               ^^^^^^^^^^^^^^\n               source.ts string.quoted.double.ts\n                             ^\n                             source.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issue964.baseline.txt",
    "content": "original file\n-----------------------------------\n({\n    foo():{}{\n        let bar;//This line is gray, because tokenization thinks it is inside an object literal scope.\n        //The issue goes away if a space is present between the return type and the method block.\n    },\n    foo: ():{}=>{\n        let bar;//This works fine.\n    }\n});\nlet bar;\nfunction baz():{}{\n    let bar;//This also works fine.\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>({\n ^\n source.ts meta.brace.round.ts\n  ^\n  source.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    foo():{}{\n ^^^^\n source.ts meta.objectliteral.ts meta.method.declaration.ts\n     ^^^\n     source.ts meta.objectliteral.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n          ^\n          source.ts meta.objectliteral.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.objectliteral.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n            ^\n            source.ts meta.objectliteral.ts meta.method.declaration.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n             ^\n             source.ts meta.objectliteral.ts meta.block.ts punctuation.definition.block.ts\n>        let bar;//This line is gray, because tokenization thinks it is inside an object literal scope.\n ^^^^^^^^\n source.ts meta.objectliteral.ts meta.block.ts\n         ^^^\n         source.ts meta.objectliteral.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.objectliteral.ts meta.block.ts meta.var.expr.ts\n             ^^^\n             source.ts meta.objectliteral.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.objectliteral.ts meta.block.ts punctuation.terminator.statement.ts\n                 ^^\n                 source.ts meta.objectliteral.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                   source.ts meta.objectliteral.ts meta.block.ts comment.line.double-slash.ts\n>        //The issue goes away if a space is present between the return type and the method block.\n ^^^^^^^^\n source.ts meta.objectliteral.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n         ^^\n         source.ts meta.objectliteral.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n           source.ts meta.objectliteral.ts meta.block.ts comment.line.double-slash.ts\n>    },\n ^^^^\n source.ts meta.objectliteral.ts meta.block.ts\n     ^\n     source.ts meta.objectliteral.ts meta.block.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>    foo: ():{}=>{\n ^^^^\n source.ts meta.objectliteral.ts\n     ^^^\n     source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts entity.name.function.ts\n        ^\n        source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n         ^\n         source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n          ^\n          source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n           ^\n           source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n            ^\n            source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n             ^\n             source.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n               ^^\n               source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts storage.type.function.arrow.ts\n                 ^\n                 source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>        let bar;//This works fine.\n ^^^^^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts\n         ^^^\n         source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n             ^^^\n             source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n                 ^^\n                 source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                   ^^^^^^^^^^^^^^^^\n                   source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts comment.line.double-slash.ts\n>    }\n ^^^^\n source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts\n     ^\n     source.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>});\n ^\n source.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.brace.round.ts\n   ^\n   source.ts punctuation.terminator.statement.ts\n>let bar;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts punctuation.terminator.statement.ts\n>function baz():{}{\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                 ^\n                 source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.block.ts punctuation.definition.block.ts\n>    let bar;//This also works fine.\n ^^^^\n source.ts meta.block.ts\n     ^^^\n     source.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.block.ts meta.var.expr.ts\n         ^^^\n         source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.block.ts punctuation.terminator.statement.ts\n             ^^\n             source.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n               ^^^^^^^^^^^^^^^^^^^^^\n               source.ts meta.block.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issue975.baseline.txt",
    "content": "original file\n-----------------------------------\nlet abc: string\nabc.prop\n\nlet abc, def: string\nabc.prop\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let abc: string\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n          ^^^^^^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n>abc.prop\n ^^^\n source.ts variable.other.object.ts\n    ^\n    source.ts punctuation.accessor.ts\n     ^^^^\n     source.ts variable.other.property.ts\n>\n ^\n source.ts\n>let abc, def: string\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.var.expr.ts punctuation.separator.comma.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^^^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n               ^^^^^^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n>abc.prop\n ^^^\n source.ts variable.other.object.ts\n    ^\n    source.ts punctuation.accessor.ts\n     ^^^^\n     source.ts variable.other.property.ts"
  },
  {
    "path": "tests/baselines/Issues573.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Foo {\n    static a(): void {\n        let foo = true ? new String : \"\";\n    }\n\n    static b(): void {\n        // wrong\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Foo {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^\n          source.ts meta.class.ts\n           ^\n           source.ts meta.class.ts punctuation.definition.block.ts\n>    static a(): void {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                 ^^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        let foo = true ? new String : \"\";\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                   ^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts constant.language.boolean.true.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.ternary.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                          ^^^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts\n                              ^^^^^^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts support.class.builtin.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.ternary.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>    static b(): void {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                 ^^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        // wrong\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.whitespace.comment.leading.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n           ^^^^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts comment.line.double-slash.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/Issues597.baseline.txt",
    "content": "original file\n-----------------------------------\nconst a = {\n  x: (y: string) => {}\n};\n\nconst b = {\n  x: (\n    y: string\n  ) => {}\n};\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const a = {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>  x: (y: string) => {}\n ^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n   ^\n   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts entity.name.function.ts\n    ^\n    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n          ^^^^^^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n                  ^^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts storage.type.function.arrow.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>};\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>const b = {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>  x: (\n ^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n   ^\n   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts entity.name.function.ts\n    ^\n    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n>    y: string\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.parameter.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.type.annotation.ts support.type.primitive.ts\n>  ) => {}\n ^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n   ^\n   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.brace.round.ts\n    ^\n    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n     ^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts storage.type.function.arrow.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>};\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/Issues648.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\n<Test\n    a=''\n    b_c='111'\n    d=''\n/>\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n><Test\n ^\n source.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n  ^^^^\n  source.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n>    a=''\n ^^^^\n source.tsx meta.tag.tsx meta.tag.attributes.tsx\n     ^\n     source.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n      ^\n      source.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n       ^\n       source.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n        ^\n        source.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n>    b_c='111'\n ^^^^\n source.tsx meta.tag.tsx meta.tag.attributes.tsx\n     ^^^\n     source.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n        ^\n        source.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n         ^\n         source.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n          ^^^\n          source.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx\n             ^\n             source.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n>    d=''\n ^^^^\n source.tsx meta.tag.tsx meta.tag.attributes.tsx\n     ^\n     source.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n      ^\n      source.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n       ^\n       source.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n        ^\n        source.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n>/>\n ^^\n source.tsx meta.tag.tsx punctuation.definition.tag.end.tsx"
  },
  {
    "path": "tests/baselines/Issues649.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\n<Test_Component\n    a=''\n    b_c='111'\n    d=''\n/>\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n><Test_Component\n ^\n source.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n  ^^^^^^^^^^^^^^\n  source.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n>    a=''\n ^^^^\n source.tsx meta.tag.tsx meta.tag.attributes.tsx\n     ^\n     source.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n      ^\n      source.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n       ^\n       source.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n        ^\n        source.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n>    b_c='111'\n ^^^^\n source.tsx meta.tag.tsx meta.tag.attributes.tsx\n     ^^^\n     source.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n        ^\n        source.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n         ^\n         source.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n          ^^^\n          source.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx\n             ^\n             source.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n>    d=''\n ^^^^\n source.tsx meta.tag.tsx meta.tag.attributes.tsx\n     ^\n     source.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n      ^\n      source.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n       ^\n       source.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n        ^\n        source.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n>/>\n ^^\n source.tsx meta.tag.tsx punctuation.definition.tag.end.tsx"
  },
  {
    "path": "tests/baselines/ParameterProperties.baseline.txt",
    "content": "original file\n-----------------------------------\nclass A {\n\tconstructor(private a: string, protected b: string, public c: string) {\n\t}\n\tfoo() {\n\t\treturn this.a + this.b + this.c;\n\t}\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class A {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>\tconstructor(private a: string, protected b: string, public c: string) {\n ^\n source.ts meta.class.ts meta.method.declaration.ts\n  ^^^^^^^^^^^\n  source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^^^^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts storage.modifier.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                         ^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                 ^^^^^^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts storage.modifier.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                              ^^^^^^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                      ^^^^^^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts storage.modifier.ts\n                                                            ^\n                                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts\n                                                             ^\n                                                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                                              ^\n                                                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                               ^\n                                                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                                ^^^^^^\n                                                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                      ^\n                                                                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                       ^\n                                                                       source.ts meta.class.ts meta.method.declaration.ts\n                                                                        ^\n                                                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\t}\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\tfoo() {\n ^\n source.ts meta.class.ts meta.method.declaration.ts\n  ^^^\n  source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\t\treturn this.a + this.b + this.c;\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n          ^^^^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.arithmetic.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                   ^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.arithmetic.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                            ^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\t}\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n  ^\n  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/SyntacticallyIncorrectStrings.baseline.txt",
    "content": "original file\n-----------------------------------\n// Test for https://github.com/Microsoft/TypeScript-Sublime-Plugin/pull/307\n\nclass SomeClass {\n    \"some string\"\n}\n\nvar y \"some string 2\"\n\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// Test for https://github.com/Microsoft/TypeScript-Sublime-Plugin/pull/307\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>class SomeClass {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n                ^\n                source.ts meta.class.ts\n                 ^\n                 source.ts meta.class.ts punctuation.definition.block.ts\n>    \"some string\"\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n      ^^^^^^^^^^^\n      source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>var y \"some string 2\"\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n        ^^^^^^^^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts string.quoted.double.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>\n ^\n source.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/TsxSamples.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\nclass MyComponent extends React.Component<Props, State>{\n    render() {\n        return <div onClick={this.stop}>\n            This is a test: {this.state.count}\n        </div>\n    }\n}\n\n// JSX in Depth\n// http://facebook.github.io/react/docs/jsx-in-depth.html\nvar App =\n    <Form>\n        <FormRow>\n            <FormLabel data=\"1\" />\n            <FormInput data=\"2\" />\n        </FormRow>\n    </Form>\n\nvar App2 = (\n    <Form>\n        <FormRow>\n            <FormLabel data='1' />\n            <FormInput data='2' />\n        </FormRow>\n      </Form>\n)\n\nvar content = (\n    <Nav>\n        {/* child comment, put {} around */}\n        <Person name={window.isLoggedIn ? window.name : ''}\n        />\n    </Nav>\n);\n\n// JSX Spread Attributes\n// http://facebook.github.io/react/docs/jsx-spread.html\nvar props = {};\nprops.foo = x;\nprops.bar = y;\nvar component = <Component {...props} />;\n\nvar props2 = { foo: 'default' }\nvar component2 = <Component {...props} foo={'override'} />\n\n// JSX Gotchas\n// http://facebook.github.io/react/docs/jsx-gotchas.html\nvar a = <div>{'First \\u00b7 Second'}</div>\nvar b = <div>{'First ' + String.fromCharCode(183) + ' Second'}</div>\nvar c = <div>{['First ', <span>&middot;</span>, ' Second']}</div>\nvar d = <div dangerouslySetInnerHTML={{__html: 'First &middot; Second'}} />\nvar e = <div data-custom-attribute=\"foo\" />\n\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>class MyComponent extends React.Component<Props, State>{\n ^^^^^\n source.tsx meta.class.tsx storage.type.class.tsx\n      ^\n      source.tsx meta.class.tsx\n       ^^^^^^^^^^^\n       source.tsx meta.class.tsx entity.name.type.class.tsx\n                  ^\n                  source.tsx meta.class.tsx\n                   ^^^^^^^\n                   source.tsx meta.class.tsx storage.modifier.tsx\n                          ^\n                          source.tsx meta.class.tsx\n                           ^^^^^\n                           source.tsx meta.class.tsx entity.name.type.module.tsx\n                                ^\n                                source.tsx meta.class.tsx punctuation.accessor.tsx\n                                 ^^^^^^^^^\n                                 source.tsx meta.class.tsx entity.other.inherited-class.tsx\n                                          ^\n                                          source.tsx meta.class.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n                                           ^^^^^\n                                           source.tsx meta.class.tsx meta.type.parameters.tsx entity.name.type.tsx\n                                                ^\n                                                source.tsx meta.class.tsx meta.type.parameters.tsx punctuation.separator.comma.tsx\n                                                 ^\n                                                 source.tsx meta.class.tsx meta.type.parameters.tsx\n                                                  ^^^^^\n                                                  source.tsx meta.class.tsx meta.type.parameters.tsx entity.name.type.tsx\n                                                       ^\n                                                       source.tsx meta.class.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n                                                        ^\n                                                        source.tsx meta.class.tsx punctuation.definition.block.tsx\n>    render() {\n ^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx\n     ^^^^^^\n     source.tsx meta.class.tsx meta.method.declaration.tsx meta.definition.method.tsx entity.name.function.tsx\n           ^\n           source.tsx meta.class.tsx meta.method.declaration.tsx meta.parameters.tsx punctuation.definition.parameters.begin.tsx\n            ^\n            source.tsx meta.class.tsx meta.method.declaration.tsx meta.parameters.tsx punctuation.definition.parameters.end.tsx\n             ^\n             source.tsx meta.class.tsx meta.method.declaration.tsx\n              ^\n              source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.definition.block.tsx\n>        return <div onClick={this.stop}>\n ^^^^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n         ^^^^^^\n         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx keyword.control.flow.tsx\n               ^\n               source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n                ^\n                source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                 ^^^\n                 source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx entity.name.tag.tsx\n                    ^\n                    source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx\n                     ^^^^^^^\n                     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                            ^\n                            source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                             ^\n                             source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n                              ^^^^\n                              source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.language.this.tsx\n                                  ^\n                                  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                                   ^^^^\n                                   source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.property.tsx\n                                       ^\n                                       source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n                                        ^\n                                        source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>            This is a test: {this.state.count}\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx\n                             ^\n                             source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx punctuation.section.embedded.begin.tsx\n                              ^^^^\n                              source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx variable.language.this.tsx\n                                  ^\n                                  source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                                   ^^^^^\n                                   source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx variable.other.object.property.tsx\n                                        ^\n                                        source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                                         ^^^^^\n                                         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx meta.embedded.expression.tsx variable.other.property.tsx\n                                              ^\n                                              source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx punctuation.section.embedded.end.tsx\n>        </div>\n ^^^^^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx meta.jsx.children.tsx\n         ^^\n         source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n           ^^^\n           source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx entity.name.tag.tsx\n              ^\n              source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>    }\n ^^^^\n source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx\n     ^\n     source.tsx meta.class.tsx meta.method.declaration.tsx meta.block.tsx punctuation.definition.block.tsx\n>}\n ^\n source.tsx meta.class.tsx punctuation.definition.block.tsx\n>\n ^\n source.tsx\n>// JSX in Depth\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>// http://facebook.github.io/react/docs/jsx-in-depth.html\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>var App =\n ^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n    ^\n    source.tsx meta.var.expr.tsx\n     ^^^\n     source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.readwrite.tsx\n        ^\n        source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n         ^\n         source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n>    <Form>\n ^^^^\n source.tsx meta.var.expr.tsx\n     ^\n     source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n      ^^^^\n      source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n          ^\n          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>        <FormRow>\n ^^^^^^^^\n source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n          ^^^^^^^\n          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>            <FormLabel data=\"1\" />\n ^^^^^^^^^^^^\n source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n              ^^^^^^^^^\n              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n                       ^\n                       source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n                        ^^^^\n                        source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                            ^\n                            source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                             ^\n                             source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.begin.tsx\n                              ^\n                              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx\n                               ^\n                               source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.end.tsx\n                                ^\n                                source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                 ^^\n                                 source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>            <FormInput data=\"2\" />\n ^^^^^^^^^^^^\n source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n              ^^^^^^^^^\n              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n                       ^\n                       source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n                        ^^^^\n                        source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                            ^\n                            source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                             ^\n                             source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.begin.tsx\n                              ^\n                              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx\n                               ^\n                               source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.end.tsx\n                                ^\n                                source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                 ^^\n                                 source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>        </FormRow>\n ^^^^^^^^\n source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n         ^^\n         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n           ^^^^^^^\n           source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n                  ^\n                  source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>    </Form>\n ^^^^\n source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n     ^^\n     source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n       ^^^^\n       source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n           ^\n           source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>\n ^\n source.tsx\n>var App2 = (\n ^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n    ^\n    source.tsx meta.var.expr.tsx\n     ^^^^\n     source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx entity.name.function.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n          ^\n          source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n           ^\n           source.tsx meta.var.expr.tsx\n            ^\n            source.tsx meta.var.expr.tsx meta.brace.round.tsx\n>    <Form>\n ^^^^\n source.tsx meta.var.expr.tsx\n     ^\n     source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n      ^^^^\n      source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n          ^\n          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>        <FormRow>\n ^^^^^^^^\n source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n          ^^^^^^^\n          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>            <FormLabel data='1' />\n ^^^^^^^^^^^^\n source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n              ^^^^^^^^^\n              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n                       ^\n                       source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n                        ^^^^\n                        source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                            ^\n                            source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                             ^\n                             source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                              ^\n                              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx\n                               ^\n                               source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                ^\n                                source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                 ^^\n                                 source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>            <FormInput data='2' />\n ^^^^^^^^^^^^\n source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n              ^^^^^^^^^\n              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n                       ^\n                       source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n                        ^^^^\n                        source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                            ^\n                            source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                             ^\n                             source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                              ^\n                              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx\n                               ^\n                               source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                ^\n                                source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                 ^^\n                                 source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>        </FormRow>\n ^^^^^^^^\n source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n         ^^\n         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n           ^^^^^^^\n           source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n                  ^\n                  source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>      </Form>\n ^^^^^^\n source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n       ^^\n       source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n         ^^^^\n         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>)\n ^\n source.tsx meta.var.expr.tsx meta.brace.round.tsx\n>\n ^\n source.tsx\n>var content = (\n ^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n    ^\n    source.tsx meta.var.expr.tsx\n     ^^^^^^^\n     source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx entity.name.function.tsx\n            ^\n            source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n             ^\n             source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n              ^\n              source.tsx meta.var.expr.tsx\n               ^\n               source.tsx meta.var.expr.tsx meta.brace.round.tsx\n>    <Nav>\n ^^^^\n source.tsx meta.var.expr.tsx\n     ^\n     source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n      ^^^\n      source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>        {/* child comment, put {} around */}\n ^^^^^^^^\n source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx punctuation.section.embedded.begin.tsx\n          ^^\n          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx comment.block.tsx punctuation.definition.comment.tsx\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n            source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx comment.block.tsx\n                                          ^^\n                                          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx comment.block.tsx punctuation.definition.comment.tsx\n                                            ^\n                                            source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx punctuation.section.embedded.end.tsx\n>        <Person name={window.isLoggedIn ? window.name : ''}\n ^^^^^^^^\n source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n          ^^^^^^\n          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n                ^\n                source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n                 ^^^^\n                 source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                     ^\n                     source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                      ^\n                      source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n                       ^^^^^^\n                       source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx support.variable.dom.tsx\n                             ^\n                             source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                              ^^^^^^^^^^\n                              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.property.tsx\n                                        ^\n                                        source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                         ^\n                                         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.ternary.tsx\n                                          ^\n                                          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                           ^^^^^^\n                                           source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx support.variable.dom.tsx\n                                                 ^\n                                                 source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx punctuation.accessor.tsx\n                                                  ^^^^\n                                                  source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx support.variable.property.dom.tsx\n                                                      ^\n                                                      source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                                       ^\n                                                       source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.ternary.tsx\n                                                        ^\n                                                        source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx\n                                                         ^\n                                                         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                                                          ^\n                                                          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                                           ^\n                                                           source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n>        />\n ^^^^^^^^\n source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx meta.tag.attributes.tsx\n         ^^\n         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>    </Nav>\n ^^^^\n source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n     ^^\n     source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n       ^^^\n       source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n          ^\n          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>);\n ^\n source.tsx meta.var.expr.tsx meta.brace.round.tsx\n  ^\n  source.tsx punctuation.terminator.statement.tsx\n>\n ^\n source.tsx\n>// JSX Spread Attributes\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>// http://facebook.github.io/react/docs/jsx-spread.html\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>var props = {};\n ^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n    ^\n    source.tsx meta.var.expr.tsx\n     ^^^^^\n     source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.readwrite.tsx\n          ^\n          source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n           ^\n           source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n            ^\n            source.tsx meta.var.expr.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.objectliteral.tsx punctuation.definition.block.tsx\n              ^\n              source.tsx meta.var.expr.tsx meta.objectliteral.tsx punctuation.definition.block.tsx\n               ^\n               source.tsx punctuation.terminator.statement.tsx\n>props.foo = x;\n ^^^^^\n source.tsx variable.other.object.tsx\n      ^\n      source.tsx punctuation.accessor.tsx\n       ^^^\n       source.tsx variable.other.property.tsx\n          ^\n          source.tsx\n           ^\n           source.tsx keyword.operator.assignment.tsx\n            ^\n            source.tsx\n             ^\n             source.tsx variable.other.readwrite.tsx\n              ^\n              source.tsx punctuation.terminator.statement.tsx\n>props.bar = y;\n ^^^^^\n source.tsx variable.other.object.tsx\n      ^\n      source.tsx punctuation.accessor.tsx\n       ^^^\n       source.tsx variable.other.property.tsx\n          ^\n          source.tsx\n           ^\n           source.tsx keyword.operator.assignment.tsx\n            ^\n            source.tsx\n             ^\n             source.tsx variable.other.readwrite.tsx\n              ^\n              source.tsx punctuation.terminator.statement.tsx\n>var component = <Component {...props} />;\n ^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n    ^\n    source.tsx meta.var.expr.tsx\n     ^^^^^^^^^\n     source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.readwrite.tsx\n              ^\n              source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n               ^\n               source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n                ^\n                source.tsx meta.var.expr.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                  ^^^^^^^^^\n                  source.tsx meta.var.expr.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n                           ^\n                           source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n                            ^\n                            source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n                             ^^^\n                             source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.spread.tsx\n                                ^^^^^\n                                source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.readwrite.tsx\n                                     ^\n                                     source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n                                      ^\n                                      source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                       ^^\n                                       source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                         ^\n                                         source.tsx punctuation.terminator.statement.tsx\n>\n ^\n source.tsx\n>var props2 = { foo: 'default' }\n ^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n    ^\n    source.tsx meta.var.expr.tsx\n     ^^^^^^\n     source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.readwrite.tsx\n           ^\n           source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n            ^\n            source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n             ^\n             source.tsx meta.var.expr.tsx\n              ^\n              source.tsx meta.var.expr.tsx meta.objectliteral.tsx punctuation.definition.block.tsx\n               ^\n               source.tsx meta.var.expr.tsx meta.objectliteral.tsx\n                ^^^\n                source.tsx meta.var.expr.tsx meta.objectliteral.tsx meta.object.member.tsx meta.object-literal.key.tsx\n                   ^\n                   source.tsx meta.var.expr.tsx meta.objectliteral.tsx meta.object.member.tsx meta.object-literal.key.tsx punctuation.separator.key-value.tsx\n                    ^\n                    source.tsx meta.var.expr.tsx meta.objectliteral.tsx meta.object.member.tsx\n                     ^\n                     source.tsx meta.var.expr.tsx meta.objectliteral.tsx meta.object.member.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                      ^^^^^^^\n                      source.tsx meta.var.expr.tsx meta.objectliteral.tsx meta.object.member.tsx string.quoted.single.tsx\n                             ^\n                             source.tsx meta.var.expr.tsx meta.objectliteral.tsx meta.object.member.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                              ^\n                              source.tsx meta.var.expr.tsx meta.objectliteral.tsx meta.object.member.tsx\n                               ^\n                               source.tsx meta.var.expr.tsx meta.objectliteral.tsx punctuation.definition.block.tsx\n>var component2 = <Component {...props} foo={'override'} />\n ^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n    ^\n    source.tsx meta.var.expr.tsx\n     ^^^^^^^^^^\n     source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.readwrite.tsx\n               ^\n               source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n                ^\n                source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx\n                  ^\n                  source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                   ^^^^^^^^^\n                   source.tsx meta.var.expr.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n                            ^\n                            source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n                             ^\n                             source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n                              ^^^\n                              source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx keyword.operator.spread.tsx\n                                 ^^^^^\n                                 source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx variable.other.readwrite.tsx\n                                      ^\n                                      source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n                                       ^\n                                       source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                        ^^^\n                                        source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                                           ^\n                                           source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                                            ^\n                                            source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n                                             ^\n                                             source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                                              ^^^^^^^^\n                                              source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.single.tsx\n                                                      ^\n                                                      source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                                       ^\n                                                       source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n                                                        ^\n                                                        source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                                         ^^\n                                                         source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>\n ^\n source.tsx\n>// JSX Gotchas\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>// http://facebook.github.io/react/docs/jsx-gotchas.html\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>var a = <div>{'First \\u00b7 Second'}</div>\n ^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n    ^\n    source.tsx meta.var.expr.tsx\n     ^\n     source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.readwrite.tsx\n      ^\n      source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n       ^\n       source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n        ^\n        source.tsx meta.var.expr.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n          ^^^\n          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n              ^\n              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx punctuation.section.embedded.begin.tsx\n               ^\n               source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                ^^^^^^\n                source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.quoted.single.tsx\n                      ^^^^^^\n                      source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.quoted.single.tsx constant.character.escape.tsx\n                            ^^^^^^^\n                            source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.quoted.single.tsx\n                                   ^\n                                   source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                    ^\n                                    source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx punctuation.section.embedded.end.tsx\n                                     ^^\n                                     source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                       ^^^\n                                       source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                          ^\n                                          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>var b = <div>{'First ' + String.fromCharCode(183) + ' Second'}</div>\n ^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n    ^\n    source.tsx meta.var.expr.tsx\n     ^\n     source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.readwrite.tsx\n      ^\n      source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n       ^\n       source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n        ^\n        source.tsx meta.var.expr.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n          ^^^\n          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n              ^\n              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx punctuation.section.embedded.begin.tsx\n               ^\n               source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                ^^^^^^\n                source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.quoted.single.tsx\n                      ^\n                      source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                       ^\n                       source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx\n                        ^\n                        source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx keyword.operator.arithmetic.tsx\n                         ^\n                         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx\n                          ^^^^^^\n                          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx support.class.builtin.tsx\n                                ^\n                                source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx punctuation.accessor.tsx\n                                 ^^^^^^^^^^^^\n                                 source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.function-call.tsx support.function.tsx\n                                             ^\n                                             source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.brace.round.tsx\n                                              ^^^\n                                              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx constant.numeric.decimal.tsx\n                                                 ^\n                                                 source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.brace.round.tsx\n                                                  ^\n                                                  source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx\n                                                   ^\n                                                   source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx keyword.operator.arithmetic.tsx\n                                                    ^\n                                                    source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx\n                                                     ^\n                                                     source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                                                      ^^^^^^^\n                                                      source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.quoted.single.tsx\n                                                             ^\n                                                             source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                                              ^\n                                                              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx punctuation.section.embedded.end.tsx\n                                                               ^^\n                                                               source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                                 ^^^\n                                                                 source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                    ^\n                                                                    source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>var c = <div>{['First ', <span>&middot;</span>, ' Second']}</div>\n ^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n    ^\n    source.tsx meta.var.expr.tsx\n     ^\n     source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.readwrite.tsx\n      ^\n      source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n       ^\n       source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n        ^\n        source.tsx meta.var.expr.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n          ^^^\n          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n              ^\n              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx punctuation.section.embedded.begin.tsx\n               ^\n               source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.brace.square.tsx\n                ^\n                source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                 ^^^^^^\n                 source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx string.quoted.single.tsx\n                       ^\n                       source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                        ^\n                        source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx punctuation.separator.comma.tsx\n                         ^\n                         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx\n                          ^\n                          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                           ^^^^\n                           source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                               ^\n                               source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                ^\n                                source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx constant.character.entity.tsx punctuation.definition.entity.tsx\n                                 ^^^^^^\n                                 source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx constant.character.entity.tsx\n                                       ^\n                                       source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx constant.character.entity.tsx punctuation.definition.entity.tsx\n                                        ^^\n                                        source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                          ^^^^\n                                          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                              ^\n                                              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                               ^\n                                               source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx punctuation.separator.comma.tsx\n                                                ^\n                                                source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx\n                                                 ^\n                                                 source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                                                  ^^^^^^^\n                                                  source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx string.quoted.single.tsx\n                                                         ^\n                                                         source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                                          ^\n                                                          source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx meta.array.literal.tsx meta.brace.square.tsx\n                                                           ^\n                                                           source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx punctuation.section.embedded.end.tsx\n                                                            ^^\n                                                            source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                                              ^^^\n                                                              source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                                                 ^\n                                                                 source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>var d = <div dangerouslySetInnerHTML={{__html: 'First &middot; Second'}} />\n ^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n    ^\n    source.tsx meta.var.expr.tsx\n     ^\n     source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.readwrite.tsx\n      ^\n      source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n       ^\n       source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n        ^\n        source.tsx meta.var.expr.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n          ^^^\n          source.tsx meta.var.expr.tsx meta.tag.tsx entity.name.tag.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n              ^^^^^^^^^^^^^^^^^^^^^^^\n              source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                                     ^\n                                     source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                                      ^\n                                      source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n                                       ^\n                                       source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx punctuation.definition.block.tsx\n                                        ^^^^^^\n                                        source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx meta.object-literal.key.tsx\n                                              ^\n                                              source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx meta.object-literal.key.tsx punctuation.separator.key-value.tsx\n                                               ^\n                                               source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx\n                                                ^\n                                                source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                                                 ^^^^^^^^^^^^^^^^^^^^^\n                                                 source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx string.quoted.single.tsx\n                                                                      ^\n                                                                      source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx meta.object.member.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                                                       ^\n                                                                       source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx meta.objectliteral.tsx punctuation.definition.block.tsx\n                                                                        ^\n                                                                        source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n                                                                         ^\n                                                                         source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                                                          ^^\n                                                                          source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>var e = <div data-custom-attribute=\"foo\" />\n ^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n    ^\n    source.tsx meta.var.expr.tsx\n     ^\n     source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.readwrite.tsx\n      ^\n      source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n       ^\n       source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n        ^\n        source.tsx meta.var.expr.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n          ^^^\n          source.tsx meta.var.expr.tsx meta.tag.tsx entity.name.tag.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n              ^^^^^^^^^^^^^^^^^^^^^\n              source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                                   ^\n                                   source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                                    ^\n                                    source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.begin.tsx\n                                     ^^^\n                                     source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx\n                                        ^\n                                        source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.end.tsx\n                                         ^\n                                         source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                          ^^\n                                          source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n>\n ^\n source.tsx"
  },
  {
    "path": "tests/baselines/arbitraryModuleNamespaceIdentifiers.baseline.txt",
    "content": "original file\n-----------------------------------\nimport { \"a...\" as a } from \"./foo\";\nimport { type \"b...\" as b } from \"./foo\";\n\nexport { a as \"a...\" };\nexport { \"b...\" } from \"./foo\";\nexport { \"c...\" as c } from \"./foo\";\nexport { \"d...\" as \"d...\" } from \"./foo\";\n\nexport { type a as \"a...\" };\nexport { type \"b...\" } from \"./foo\";\nexport { type \"c...\" as c } from \"./foo\";\nexport { type \"d...\" as \"d...\" } from \"./foo\";\n\nexport * as \"a...\" from \"./foo\";\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>import { \"a...\" as a } from \"./foo\";\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.import.ts meta.block.ts\n          ^^^^^^\n          source.ts meta.import.ts meta.block.ts string.quoted.alias.ts\n                ^\n                source.ts meta.import.ts meta.block.ts\n                 ^^\n                 source.ts meta.import.ts meta.block.ts keyword.control.as.ts\n                   ^\n                   source.ts meta.import.ts meta.block.ts\n                    ^\n                    source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                     ^\n                     source.ts meta.import.ts meta.block.ts\n                      ^\n                      source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.import.ts\n                        ^^^^\n                        source.ts meta.import.ts keyword.control.from.ts\n                            ^\n                            source.ts meta.import.ts\n                             ^\n                             source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                              ^^^^^\n                              source.ts meta.import.ts string.quoted.double.ts\n                                   ^\n                                   source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                    ^\n                                    source.ts punctuation.terminator.statement.ts\n>import { type \"b...\" as b } from \"./foo\";\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.import.ts meta.block.ts\n          ^^^^\n          source.ts meta.import.ts meta.block.ts keyword.control.type.ts\n              ^\n              source.ts meta.import.ts meta.block.ts\n               ^^^^^^\n               source.ts meta.import.ts meta.block.ts string.quoted.alias.ts\n                     ^\n                     source.ts meta.import.ts meta.block.ts\n                      ^^\n                      source.ts meta.import.ts meta.block.ts keyword.control.as.ts\n                        ^\n                        source.ts meta.import.ts meta.block.ts\n                         ^\n                         source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                          ^\n                          source.ts meta.import.ts meta.block.ts\n                           ^\n                           source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                            ^\n                            source.ts meta.import.ts\n                             ^^^^\n                             source.ts meta.import.ts keyword.control.from.ts\n                                 ^\n                                 source.ts meta.import.ts\n                                  ^\n                                  source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                   ^^^^^\n                                   source.ts meta.import.ts string.quoted.double.ts\n                                        ^\n                                        source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                         ^\n                                         source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>export { a as \"a...\" };\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^\n          source.ts meta.export.ts meta.block.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.export.ts meta.block.ts\n            ^^\n            source.ts meta.export.ts meta.block.ts keyword.control.as.ts\n              ^\n              source.ts meta.export.ts meta.block.ts\n               ^^^^^^\n               source.ts meta.export.ts meta.block.ts string.quoted.alias.ts\n                     ^\n                     source.ts meta.export.ts meta.block.ts\n                      ^\n                      source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts\n>export { \"b...\" } from \"./foo\";\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^^^^^^\n          source.ts meta.export.ts meta.block.ts string.quoted.alias.ts\n                ^\n                source.ts meta.export.ts meta.block.ts\n                 ^\n                 source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.export.ts\n                   ^^^^\n                   source.ts meta.export.ts keyword.control.from.ts\n                       ^\n                       source.ts meta.export.ts\n                        ^\n                        source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                         ^^^^^\n                         source.ts meta.export.ts string.quoted.double.ts\n                              ^\n                              source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                               ^\n                               source.ts punctuation.terminator.statement.ts\n>export { \"c...\" as c } from \"./foo\";\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^^^^^^\n          source.ts meta.export.ts meta.block.ts string.quoted.alias.ts\n                ^\n                source.ts meta.export.ts meta.block.ts\n                 ^^\n                 source.ts meta.export.ts meta.block.ts keyword.control.as.ts\n                   ^\n                   source.ts meta.export.ts meta.block.ts\n                    ^\n                    source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n                     ^\n                     source.ts meta.export.ts meta.block.ts\n                      ^\n                      source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.export.ts\n                        ^^^^\n                        source.ts meta.export.ts keyword.control.from.ts\n                            ^\n                            source.ts meta.export.ts\n                             ^\n                             source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                              ^^^^^\n                              source.ts meta.export.ts string.quoted.double.ts\n                                   ^\n                                   source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                    ^\n                                    source.ts punctuation.terminator.statement.ts\n>export { \"d...\" as \"d...\" } from \"./foo\";\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^^^^^^\n          source.ts meta.export.ts meta.block.ts string.quoted.alias.ts\n                ^\n                source.ts meta.export.ts meta.block.ts\n                 ^^\n                 source.ts meta.export.ts meta.block.ts keyword.control.as.ts\n                   ^\n                   source.ts meta.export.ts meta.block.ts\n                    ^^^^^^\n                    source.ts meta.export.ts meta.block.ts string.quoted.alias.ts\n                          ^\n                          source.ts meta.export.ts meta.block.ts\n                           ^\n                           source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                            ^\n                            source.ts meta.export.ts\n                             ^^^^\n                             source.ts meta.export.ts keyword.control.from.ts\n                                 ^\n                                 source.ts meta.export.ts\n                                  ^\n                                  source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                   ^^^^^\n                                   source.ts meta.export.ts string.quoted.double.ts\n                                        ^\n                                        source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                         ^\n                                         source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>export { type a as \"a...\" };\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^^^^\n          source.ts meta.export.ts meta.block.ts keyword.control.type.ts\n              ^\n              source.ts meta.export.ts meta.block.ts\n               ^\n               source.ts meta.export.ts meta.block.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.export.ts meta.block.ts\n                 ^^\n                 source.ts meta.export.ts meta.block.ts keyword.control.as.ts\n                   ^\n                   source.ts meta.export.ts meta.block.ts\n                    ^^^^^^\n                    source.ts meta.export.ts meta.block.ts string.quoted.alias.ts\n                          ^\n                          source.ts meta.export.ts meta.block.ts\n                           ^\n                           source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                            ^\n                            source.ts punctuation.terminator.statement.ts\n>export { type \"b...\" } from \"./foo\";\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^^^^\n          source.ts meta.export.ts meta.block.ts keyword.control.type.ts\n              ^\n              source.ts meta.export.ts meta.block.ts\n               ^^^^^^\n               source.ts meta.export.ts meta.block.ts string.quoted.alias.ts\n                     ^\n                     source.ts meta.export.ts meta.block.ts\n                      ^\n                      source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.export.ts\n                        ^^^^\n                        source.ts meta.export.ts keyword.control.from.ts\n                            ^\n                            source.ts meta.export.ts\n                             ^\n                             source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                              ^^^^^\n                              source.ts meta.export.ts string.quoted.double.ts\n                                   ^\n                                   source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                    ^\n                                    source.ts punctuation.terminator.statement.ts\n>export { type \"c...\" as c } from \"./foo\";\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^^^^\n          source.ts meta.export.ts meta.block.ts keyword.control.type.ts\n              ^\n              source.ts meta.export.ts meta.block.ts\n               ^^^^^^\n               source.ts meta.export.ts meta.block.ts string.quoted.alias.ts\n                     ^\n                     source.ts meta.export.ts meta.block.ts\n                      ^^\n                      source.ts meta.export.ts meta.block.ts keyword.control.as.ts\n                        ^\n                        source.ts meta.export.ts meta.block.ts\n                         ^\n                         source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n                          ^\n                          source.ts meta.export.ts meta.block.ts\n                           ^\n                           source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                            ^\n                            source.ts meta.export.ts\n                             ^^^^\n                             source.ts meta.export.ts keyword.control.from.ts\n                                 ^\n                                 source.ts meta.export.ts\n                                  ^\n                                  source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                   ^^^^^\n                                   source.ts meta.export.ts string.quoted.double.ts\n                                        ^\n                                        source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                         ^\n                                         source.ts punctuation.terminator.statement.ts\n>export { type \"d...\" as \"d...\" } from \"./foo\";\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^^^^\n          source.ts meta.export.ts meta.block.ts keyword.control.type.ts\n              ^\n              source.ts meta.export.ts meta.block.ts\n               ^^^^^^\n               source.ts meta.export.ts meta.block.ts string.quoted.alias.ts\n                     ^\n                     source.ts meta.export.ts meta.block.ts\n                      ^^\n                      source.ts meta.export.ts meta.block.ts keyword.control.as.ts\n                        ^\n                        source.ts meta.export.ts meta.block.ts\n                         ^^^^^^\n                         source.ts meta.export.ts meta.block.ts string.quoted.alias.ts\n                               ^\n                               source.ts meta.export.ts meta.block.ts\n                                ^\n                                source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                                 ^\n                                 source.ts meta.export.ts\n                                  ^^^^\n                                  source.ts meta.export.ts keyword.control.from.ts\n                                      ^\n                                      source.ts meta.export.ts\n                                       ^\n                                       source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                        ^^^^^\n                                        source.ts meta.export.ts string.quoted.double.ts\n                                             ^\n                                             source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                              ^\n                                              source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>export * as \"a...\" from \"./foo\";\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts constant.language.import-export-all.ts\n         ^\n         source.ts meta.export.ts\n          ^^\n          source.ts meta.export.ts keyword.control.as.ts\n            ^\n            source.ts meta.export.ts\n             ^^^^^^\n             source.ts meta.export.ts string.quoted.alias.ts\n                   ^\n                   source.ts meta.export.ts\n                    ^^^^\n                    source.ts meta.export.ts keyword.control.from.ts\n                        ^\n                        source.ts meta.export.ts\n                         ^\n                         source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                          ^^^^^\n                          source.ts meta.export.ts string.quoted.double.ts\n                               ^\n                               source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                ^\n                                source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/arrow.baseline.txt",
    "content": "original file\n-----------------------------------\nvar a = async p => {\n}\nclass C {\n}\nfunction foo() {\n    return <T extends C>(a: T) => {\n        return a;\n    };\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var a = async p => {\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts entity.name.function.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^\n         source.ts meta.var.expr.ts meta.arrow.ts storage.modifier.async.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts variable.parameter.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts\n                 ^^\n                 source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>class C {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>function foo() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.function.ts\n                ^\n                source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    return <T extends C>(a: T) => {\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.arrow.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.type.parameters.ts entity.name.type.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.type.parameters.ts\n               ^^^^^^^\n               source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.type.parameters.ts storage.modifier.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.type.parameters.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.type.parameters.ts entity.name.type.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                                ^^\n                                source.ts meta.function.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>        return a;\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>    };\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts\n     ^\n     source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/arrowInsideCall.baseline.txt",
    "content": "original file\n-----------------------------------\noptsList.sort((a, b) => compareValues<string>(a.name.toLowerCase(), b.name.toLowerCase()));\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>optsList.sort((a, b) => compareValues<string>(a.name.toLowerCase(), b.name.toLowerCase()));\n ^^^^^^^^\n source.ts meta.function-call.ts variable.other.object.ts\n         ^\n         source.ts meta.function-call.ts punctuation.accessor.ts\n          ^^^^\n          source.ts meta.function-call.ts support.function.ts\n              ^\n              source.ts meta.brace.round.ts\n               ^\n               source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                 ^\n                 source.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts\n                  ^\n                  source.ts meta.arrow.ts meta.parameters.ts\n                   ^\n                   source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                    ^\n                    source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                     ^\n                     source.ts meta.arrow.ts\n                      ^^\n                      source.ts meta.arrow.ts storage.type.function.arrow.ts\n                        ^\n                        source.ts meta.arrow.ts\n                         ^^^^^^^^^^^^^\n                         source.ts meta.function-call.ts entity.name.function.ts\n                                      ^\n                                      source.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                       ^^^^^^\n                                       source.ts meta.type.parameters.ts support.type.primitive.ts\n                                             ^\n                                             source.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                              ^\n                                              source.ts meta.brace.round.ts\n                                               ^\n                                               source.ts meta.function-call.ts variable.other.object.ts\n                                                ^\n                                                source.ts meta.function-call.ts punctuation.accessor.ts\n                                                 ^^^^\n                                                 source.ts meta.function-call.ts support.variable.property.dom.ts\n                                                     ^\n                                                     source.ts meta.function-call.ts punctuation.accessor.ts\n                                                      ^^^^^^^^^^^\n                                                      source.ts meta.function-call.ts support.function.ts\n                                                                 ^\n                                                                 source.ts meta.brace.round.ts\n                                                                  ^\n                                                                  source.ts meta.brace.round.ts\n                                                                   ^\n                                                                   source.ts punctuation.separator.comma.ts\n                                                                    ^\n                                                                    source.ts\n                                                                     ^\n                                                                     source.ts meta.function-call.ts variable.other.object.ts\n                                                                      ^\n                                                                      source.ts meta.function-call.ts punctuation.accessor.ts\n                                                                       ^^^^\n                                                                       source.ts meta.function-call.ts support.variable.property.dom.ts\n                                                                           ^\n                                                                           source.ts meta.function-call.ts punctuation.accessor.ts\n                                                                            ^^^^^^^^^^^\n                                                                            source.ts meta.function-call.ts support.function.ts\n                                                                                       ^\n                                                                                       source.ts meta.brace.round.ts\n                                                                                        ^\n                                                                                        source.ts meta.brace.round.ts\n                                                                                         ^\n                                                                                         source.ts meta.brace.round.ts\n                                                                                          ^\n                                                                                          source.ts meta.brace.round.ts\n                                                                                           ^\n                                                                                           source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/assertions.baseline.txt",
    "content": "original file\n-----------------------------------\ndeclare function isString(value: unknown): value is string;\ndeclare function isArrayOfStrings(value: unknown): value is string[];\n\nconst assert: (value: unknown) => asserts value = value => {}\n\ndeclare function assertIsString(value: unknown): asserts value is string;\ndeclare function assertIsArrayOfStrings(value: unknown): asserts value is string[];\ndeclare function assertDefined<T>(value: T): asserts value is NonNullable<T>;\n\nnamespace Debug {\n    export declare function assert(value: unknown, message?: string): asserts value;\n    export declare function assertDefined<T>(value: T): asserts value is NonNullable<T>;\n}\n\n class Test {\n    assert(value: unknown): asserts value {\n        if (value) return;\n        throw new Error();\n    }\n    isTest2(): this is Test2 {\n        return this instanceof Test2;\n    }\n    assertIsTest2(): asserts this is Test2 {\n        if (this instanceof Test2) return;\n        throw new Error();\n    }\n    assertThis(): asserts this {\n        if (!this) return;\n        throw new Error();\n    }\n    bar() {\n        this.assertThis();\n        this;\n    }\n    foo(x: unknown) {\n        this.assert(typeof x === \"string\");\n        x.length;\n        if (this.isTest2()) {\n            this.z;\n        }\n        this.assertIsTest2();\n        this.z;\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>declare function isString(value: unknown): value is string;\n ^^^^^^^\n source.ts meta.function.ts storage.modifier.ts\n        ^\n        source.ts meta.function.ts\n         ^^^^^^^^\n         source.ts meta.function.ts storage.type.function.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^^^^^^^^\n                  source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                           ^^^^^\n                           source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                  ^^^^^^^\n                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                          ^\n                                          source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                           ^\n                                           source.ts meta.function.ts meta.return.type.ts\n                                            ^^^^^\n                                            source.ts meta.function.ts meta.return.type.ts variable.parameter.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.return.type.ts\n                                                  ^^\n                                                  source.ts meta.function.ts meta.return.type.ts keyword.operator.expression.is.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.return.type.ts\n                                                     ^^^^^^\n                                                     source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n                                                           ^\n                                                           source.ts punctuation.terminator.statement.ts\n>declare function isArrayOfStrings(value: unknown): value is string[];\n ^^^^^^^\n source.ts meta.function.ts storage.modifier.ts\n        ^\n        source.ts meta.function.ts\n         ^^^^^^^^\n         source.ts meta.function.ts storage.type.function.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^^^^^^^^^^^^^^^^\n                  source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                  ^\n                                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                   ^^^^^\n                                   source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                          ^^^^^^^\n                                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.return.type.ts\n                                                    ^^^^^\n                                                    source.ts meta.function.ts meta.return.type.ts variable.parameter.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.return.type.ts\n                                                          ^^\n                                                          source.ts meta.function.ts meta.return.type.ts keyword.operator.expression.is.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.return.type.ts\n                                                             ^^^^^^\n                                                             source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                     ^\n                                                                     source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>const assert: (value: unknown) => asserts value = value => {}\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^^^^^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                       ^^^^^^^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                                ^^\n                                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.function.return.ts\n                                   ^^^^^^^\n                                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.function.return.ts keyword.operator.type.asserts.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.function.return.ts\n                                           ^^^^^\n                                           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.function.return.ts variable.parameter.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.function.return.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts\n                                                   ^^^^^\n                                                   source.ts meta.var.expr.ts meta.arrow.ts variable.parameter.ts\n                                                        ^\n                                                        source.ts meta.var.expr.ts meta.arrow.ts\n                                                         ^^\n                                                         source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                           ^\n                                                           source.ts meta.var.expr.ts meta.arrow.ts\n                                                            ^\n                                                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                                                             ^\n                                                             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>declare function assertIsString(value: unknown): asserts value is string;\n ^^^^^^^\n source.ts meta.function.ts storage.modifier.ts\n        ^\n        source.ts meta.function.ts\n         ^^^^^^^^\n         source.ts meta.function.ts storage.type.function.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^^^^^^^^^^^^^^\n                  source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                 ^^^^^\n                                 source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                        ^^^^^^^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                               ^\n                                               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                ^\n                                                source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.return.type.ts\n                                                  ^^^^^^^\n                                                  source.ts meta.function.ts meta.return.type.ts keyword.operator.type.asserts.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.return.type.ts\n                                                          ^^^^^\n                                                          source.ts meta.function.ts meta.return.type.ts variable.parameter.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.return.type.ts\n                                                                ^^\n                                                                source.ts meta.function.ts meta.return.type.ts keyword.operator.expression.is.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.return.type.ts\n                                                                   ^^^^^^\n                                                                   source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n                                                                         ^\n                                                                         source.ts punctuation.terminator.statement.ts\n>declare function assertIsArrayOfStrings(value: unknown): asserts value is string[];\n ^^^^^^^\n source.ts meta.function.ts storage.modifier.ts\n        ^\n        source.ts meta.function.ts\n         ^^^^^^^^\n         source.ts meta.function.ts storage.type.function.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^^^^^^^^^^^^^^^^^^^^^^\n                  source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                         ^^^^^\n                                         source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                              ^\n                                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                               ^\n                                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                ^^^^^^^\n                                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.return.type.ts\n                                                          ^^^^^^^\n                                                          source.ts meta.function.ts meta.return.type.ts keyword.operator.type.asserts.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.return.type.ts\n                                                                  ^^^^^\n                                                                  source.ts meta.function.ts meta.return.type.ts variable.parameter.ts\n                                                                       ^\n                                                                       source.ts meta.function.ts meta.return.type.ts\n                                                                        ^^\n                                                                        source.ts meta.function.ts meta.return.type.ts keyword.operator.expression.is.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.return.type.ts\n                                                                           ^^^^^^\n                                                                           source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n                                                                                 ^\n                                                                                 source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                  ^\n                                                                                  source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                   ^\n                                                                                   source.ts punctuation.terminator.statement.ts\n>declare function assertDefined<T>(value: T): asserts value is NonNullable<T>;\n ^^^^^^^\n source.ts meta.function.ts storage.modifier.ts\n        ^\n        source.ts meta.function.ts\n         ^^^^^^^^\n         source.ts meta.function.ts storage.type.function.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^^^^^^^^^^^^^\n                  source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                               ^\n                               source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                ^\n                                source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                                 ^\n                                 source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                  ^\n                                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                   ^^^^^\n                                   source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                          ^\n                                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                           ^\n                                           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                            ^\n                                            source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                             ^\n                                             source.ts meta.function.ts meta.return.type.ts\n                                              ^^^^^^^\n                                              source.ts meta.function.ts meta.return.type.ts keyword.operator.type.asserts.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.return.type.ts\n                                                      ^^^^^\n                                                      source.ts meta.function.ts meta.return.type.ts variable.parameter.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.return.type.ts\n                                                            ^^\n                                                            source.ts meta.function.ts meta.return.type.ts keyword.operator.expression.is.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.return.type.ts\n                                                               ^^^^^^^^^^^\n                                                               source.ts meta.function.ts meta.return.type.ts entity.name.type.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                           ^\n                                                                           source.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts entity.name.type.ts\n                                                                            ^\n                                                                            source.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                             ^\n                                                                             source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>namespace Debug {\n ^^^^^^^^^\n source.ts meta.namespace.declaration.ts storage.type.namespace.ts\n          ^\n          source.ts meta.namespace.declaration.ts\n           ^^^^^\n           source.ts meta.namespace.declaration.ts entity.name.type.module.ts\n                ^\n                source.ts meta.namespace.declaration.ts\n                 ^\n                 source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    export declare function assert(value: unknown, message?: string): asserts value;\n ^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts keyword.control.export.ts\n           ^\n           source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts\n            ^^^^^^^\n            source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts storage.modifier.ts\n                   ^\n                   source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts\n                    ^^^^^^^^\n                    source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts storage.type.function.ts\n                            ^\n                            source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts\n                             ^^^^^^\n                             source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                   ^\n                                   source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                    ^^^^^\n                                    source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                         ^\n                                         source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                          ^\n                                          source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                           ^^^^^^^\n                                           source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                  ^\n                                                  source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                   ^\n                                                   source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts\n                                                    ^^^^^^^\n                                                    source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                           ^\n                                                           source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts keyword.operator.optional.ts\n                                                            ^\n                                                            source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                             ^\n                                                             source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                              ^^^^^^\n                                                              source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                    ^\n                                                                    source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                     ^\n                                                                     source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                                      ^\n                                                                      source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts\n                                                                       ^^^^^^^\n                                                                       source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts keyword.operator.type.asserts.ts\n                                                                              ^\n                                                                              source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts\n                                                                               ^^^^^\n                                                                               source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts variable.parameter.ts\n                                                                                    ^\n                                                                                    source.ts meta.namespace.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    export declare function assertDefined<T>(value: T): asserts value is NonNullable<T>;\n ^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts keyword.control.export.ts\n           ^\n           source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts\n            ^^^^^^^\n            source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts storage.modifier.ts\n                   ^\n                   source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts\n                    ^^^^^^^^\n                    source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts storage.type.function.ts\n                            ^\n                            source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts\n                             ^^^^^^^^^^^^^\n                             source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                                          ^\n                                          source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                           ^\n                                           source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                                            ^\n                                            source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                             ^\n                                             source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                              ^^^^^\n                                              source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                   ^\n                                                   source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                    ^\n                                                    source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                     ^\n                                                     source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                      ^\n                                                      source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                       ^\n                                                       source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                        ^\n                                                        source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts\n                                                         ^^^^^^^\n                                                         source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts keyword.operator.type.asserts.ts\n                                                                ^\n                                                                source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts\n                                                                 ^^^^^\n                                                                 source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts variable.parameter.ts\n                                                                      ^\n                                                                      source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts\n                                                                       ^^\n                                                                       source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts keyword.operator.expression.is.ts\n                                                                         ^\n                                                                         source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts\n                                                                          ^^^^^^^^^^^\n                                                                          source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts entity.name.type.ts\n                                                                                     ^\n                                                                                     source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                                      ^\n                                                                                      source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts entity.name.type.ts\n                                                                                       ^\n                                                                                       source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                                        ^\n                                                                                        source.ts meta.namespace.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n> class Test {\n ^\n source.ts\n  ^^^^^\n  source.ts meta.class.ts storage.type.class.ts\n       ^\n       source.ts meta.class.ts\n        ^^^^\n        source.ts meta.class.ts entity.name.type.class.ts\n            ^\n            source.ts meta.class.ts\n             ^\n             source.ts meta.class.ts punctuation.definition.block.ts\n>    assert(value: unknown): asserts value {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                   ^^^^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                             ^^^^^^^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.asserts.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                     ^^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts variable.parameter.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        if (value) return;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                    ^^^^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>        throw new Error();\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.trycatch.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n               ^^^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts\n                   ^^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    isTest2(): this is Test2 {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                ^^^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts variable.parameter.ts variable.language.this.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                     ^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.expression.is.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                        ^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        return this instanceof Test2;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                ^^^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                     ^^^^^^^^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.expression.instanceof.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                ^^^^^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts entity.name.type.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    assertIsTest2(): asserts this is Test2 {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                      ^^^^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.asserts.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                              ^^^^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts variable.parameter.ts variable.language.this.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                   ^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.expression.is.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                      ^^^^^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        if (this instanceof Test2) return;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n             ^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                  ^^^^^^^^^^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.expression.instanceof.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                             ^^^^^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts entity.name.type.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                    ^^^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>        throw new Error();\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.trycatch.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n               ^^^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts\n                   ^^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    assertThis(): asserts this {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                   ^^^^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.asserts.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                           ^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts variable.parameter.ts variable.language.this.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        if (!this) return;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.logical.ts\n              ^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                    ^^^^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>        throw new Error();\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.trycatch.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n               ^^^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts keyword.operator.new.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts\n                   ^^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.error.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    bar() {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        this.assertThis();\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.language.this.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n              ^^^^^^^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>        this;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    foo(x: unknown) {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n            ^^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        this.assert(typeof x === \"string\");\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.language.this.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n              ^^^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                     ^^^^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.expression.typeof.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                              ^^^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.comparison.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                   ^^^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>        x.length;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.object.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n           ^^^^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts support.variable.property.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>        if (this.isTest2()) {\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n             ^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.language.this.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                  ^^^^^^^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>            this.z;\n ^^^^^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n             ^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts variable.language.this.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.accessor.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts support.variable.property.dom.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>        }\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>        this.assertIsTest2();\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.language.this.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n              ^^^^^^^^^^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>        this.z;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts support.variable.property.dom.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/autoAccessor.baseline.txt",
    "content": "original file\n-----------------------------------\nclass C {\n    accessor a: number;\n    accessor b = 1;\n    abstract accessor c: number;\n    static accessor d = 1;\n}\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class C {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>    accessor a: number;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^^\n     source.ts meta.class.ts storage.type.property.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.class.ts punctuation.terminator.statement.ts\n>    accessor b = 1;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^^\n     source.ts meta.class.ts storage.type.property.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.class.ts punctuation.terminator.statement.ts\n>    abstract accessor c: number;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n             ^\n             source.ts meta.class.ts\n              ^^^^^^^^\n              source.ts meta.class.ts storage.type.property.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                          ^^^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                ^\n                                source.ts meta.class.ts punctuation.terminator.statement.ts\n>    static accessor d = 1;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts\n            ^^^^^^^^\n            source.ts meta.class.ts storage.type.property.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                          ^\n                          source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/awaitColoring.baseline.txt",
    "content": "original file\n-----------------------------------\nawait 1;\nawaiting 1;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>await 1;\n ^^^^^\n source.ts keyword.control.flow.ts\n      ^\n      source.ts\n       ^\n       source.ts constant.numeric.decimal.ts\n        ^\n        source.ts punctuation.terminator.statement.ts\n>awaiting 1;\n ^^^^^^^^\n source.ts variable.other.readwrite.ts\n         ^\n         source.ts\n          ^\n          source.ts constant.numeric.decimal.ts\n           ^\n           source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/awaitUsedInExpression.baseline.txt",
    "content": "original file\n-----------------------------------\nconst body = await res.json();\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const body = await res.json();\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^^^\n              source.ts meta.var.expr.ts keyword.control.flow.ts\n                   ^\n                   source.ts meta.var.expr.ts\n                    ^^^\n                    source.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^\n                        source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.brace.round.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/awaitUsing.baseline.txt",
    "content": "original file\n-----------------------------------\n// await using as expression\nawait using;\nawait using = a;\nawait using[x];\nawait using[x] = a;\nawait using.x;\nawait using.x = a;\n[await using];\n[await using] = a;\n({x: await using});\n({x: await using} = a);\na = await using;\na = await using[x];\na = [await using];\na = {x: await using};\nasync function f(a = await using) {}\nasync () => await using;\nclass C extends (await using) {}\nclass C<using> {}\nclass C { [await using]; }\nclass C { static [await using]; }\nclass C { readonly [await using]; }\nclass C { declare [await using]; }\nclass C { abstract [await using]; }\nclass C { accessor [await using]; }\nclass C { static accessor [await using]; }\nclass C { readonly accessor [await using]; }\nclass C { [await using]() {} }\nclass C { static [await using]() {} }\nclass C { abstract [await using]() }\nclass C { get [await using]() {} }\nclass C { static get [await using]() {} }\nclass C { abstract get [await using](); }\nclass C { set [await using]() {} }\nclass C { static set [await using](v) {} }\nclass C { abstract set [await using](v); }\nenum E { a = await using };\nswitch (await using) {\n    case await using:\n}\nfor (await using;;);\nfor (await using[x];;);\n\nawait using\nx = a;\n\nawait\nusing\nx = a;\n\nawait using\n[x] = a;\n\nawait\nusing\n[x] = a;\n\n// await using as keyword\nawait using x = a;\nawait using x = a, y = b;\n\nawait using x\n= a;\n\nawait using x\n= a, y = b;\n\nawait using x = a\n    , y = b;\n\nawait using x = a,\n      y = b;\n\nfor (await using x of a);\nfor (await using x = a;;);\nfor (await using x = a, y = b;;);\n\nfor (await using x\n= a;;);\n\nfor (await using x\n= a, y = b;;);\n\nfor (await using x = a\n         , y = b;;);\n\nfor (await using x = a,\n           y = b;;);\n\nfunction f() {\n    await using x = a;\n}\n\n(() => {\n    await using x = a;\n})\n\nnamespace N {\n    await using x = a;\n}\n\nclass C {\n    constructor() {\n        await using x = a;\n    }\n    method() {\n        await using x = a;\n    }\n    get p() {\n        await using x = a;\n    }\n    set p(v) {\n        await using x = a;\n    }\n    static {\n        await using x = a;\n    }\n}\n\n// await using as expression, illegal syntax\nawait using {x};\nawait using {x: y};\n\n// await using as keyword, illegal syntax\nawait using x;\nawait using x, y;\nawait using x, [y];\nawait using x, {y};\nawait using x, {y: z};\nawait using x = a, y;\nawait using x = a, [y];\nawait using x = a, {y};\nawait using x = a, {y: z};\ndeclare await using x;\ndeclare await using x = a;\nexport await using x;\nexport await using x = a;\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// await using as expression\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>await using;\n ^^^^^\n source.ts keyword.control.flow.ts\n      ^\n      source.ts\n       ^^^^^\n       source.ts variable.other.readwrite.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>await using = a;\n ^^^^^\n source.ts keyword.control.flow.ts\n      ^\n      source.ts\n       ^^^^^\n       source.ts variable.other.readwrite.ts\n            ^\n            source.ts\n             ^\n             source.ts keyword.operator.assignment.ts\n              ^\n              source.ts\n               ^\n               source.ts variable.other.readwrite.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>await using[x];\n ^^^^^\n source.ts keyword.control.flow.ts\n      ^\n      source.ts\n       ^^^^^\n       source.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.array.literal.ts meta.brace.square.ts\n             ^\n             source.ts meta.array.literal.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.array.literal.ts meta.brace.square.ts\n               ^\n               source.ts punctuation.terminator.statement.ts\n>await using[x] = a;\n ^^^^^\n source.ts keyword.control.flow.ts\n      ^\n      source.ts\n       ^^^^^\n       source.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.array.literal.ts meta.brace.square.ts\n             ^\n             source.ts meta.array.literal.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.array.literal.ts meta.brace.square.ts\n               ^\n               source.ts\n                ^\n                source.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts\n                  ^\n                  source.ts variable.other.readwrite.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>await using.x;\n ^^^^^\n source.ts keyword.control.flow.ts\n      ^\n      source.ts\n       ^^^^^\n       source.ts variable.other.object.ts\n            ^\n            source.ts punctuation.accessor.ts\n             ^\n             source.ts support.variable.property.dom.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>await using.x = a;\n ^^^^^\n source.ts keyword.control.flow.ts\n      ^\n      source.ts\n       ^^^^^\n       source.ts variable.other.object.ts\n            ^\n            source.ts punctuation.accessor.ts\n             ^\n             source.ts support.variable.property.dom.ts\n              ^\n              source.ts\n               ^\n               source.ts keyword.operator.assignment.ts\n                ^\n                source.ts\n                 ^\n                 source.ts variable.other.readwrite.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n>[await using];\n ^\n source.ts meta.array.literal.ts meta.brace.square.ts\n  ^^^^^\n  source.ts meta.array.literal.ts keyword.control.flow.ts\n       ^\n       source.ts meta.array.literal.ts\n        ^^^^^\n        source.ts meta.array.literal.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.array.literal.ts meta.brace.square.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>[await using] = a;\n ^\n source.ts meta.array.literal.ts meta.brace.square.ts\n  ^^^^^\n  source.ts meta.array.literal.ts keyword.control.flow.ts\n       ^\n       source.ts meta.array.literal.ts\n        ^^^^^\n        source.ts meta.array.literal.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.array.literal.ts meta.brace.square.ts\n              ^\n              source.ts\n               ^\n               source.ts keyword.operator.assignment.ts\n                ^\n                source.ts\n                 ^\n                 source.ts variable.other.readwrite.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n>({x: await using});\n ^\n source.ts meta.brace.round.ts\n  ^\n  source.ts meta.objectliteral.ts punctuation.definition.block.ts\n   ^\n   source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n    ^\n    source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n     ^\n     source.ts meta.objectliteral.ts meta.object.member.ts\n      ^^^^^\n      source.ts meta.objectliteral.ts meta.object.member.ts keyword.control.flow.ts\n           ^\n           source.ts meta.objectliteral.ts meta.object.member.ts\n            ^^^^^\n            source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.objectliteral.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.brace.round.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>({x: await using} = a);\n ^\n source.ts meta.brace.round.ts\n  ^\n  source.ts meta.objectliteral.ts punctuation.definition.block.ts\n   ^\n   source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n    ^\n    source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n     ^\n     source.ts meta.objectliteral.ts meta.object.member.ts\n      ^^^^^\n      source.ts meta.objectliteral.ts meta.object.member.ts keyword.control.flow.ts\n           ^\n           source.ts meta.objectliteral.ts meta.object.member.ts\n            ^^^^^\n            source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.objectliteral.ts punctuation.definition.block.ts\n                  ^\n                  source.ts\n                   ^\n                   source.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts\n                     ^\n                     source.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.brace.round.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts\n>a = await using;\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts\n     ^^^^^\n     source.ts keyword.control.flow.ts\n          ^\n          source.ts\n           ^^^^^\n           source.ts variable.other.readwrite.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>a = await using[x];\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts\n     ^^^^^\n     source.ts keyword.control.flow.ts\n          ^\n          source.ts\n           ^^^^^\n           source.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.array.literal.ts meta.brace.square.ts\n                 ^\n                 source.ts meta.array.literal.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.array.literal.ts meta.brace.square.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>a = [await using];\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts meta.array.literal.ts\n     ^\n     source.ts meta.array.literal.ts meta.brace.square.ts\n      ^^^^^\n      source.ts meta.array.literal.ts keyword.control.flow.ts\n           ^\n           source.ts meta.array.literal.ts\n            ^^^^^\n            source.ts meta.array.literal.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.array.literal.ts meta.brace.square.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n>a = {x: await using};\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts meta.objectliteral.ts\n     ^\n     source.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n       ^\n       source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n        ^\n        source.ts meta.objectliteral.ts meta.object.member.ts\n         ^^^^^\n         source.ts meta.objectliteral.ts meta.object.member.ts keyword.control.flow.ts\n              ^\n              source.ts meta.objectliteral.ts meta.object.member.ts\n               ^^^^^\n               source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.objectliteral.ts punctuation.definition.block.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n>async function f(a = await using) {}\n ^^^^^\n source.ts meta.function.ts storage.modifier.async.ts\n      ^\n      source.ts meta.function.ts\n       ^^^^^^^^\n       source.ts meta.function.ts storage.type.function.ts\n               ^\n               source.ts meta.function.ts\n                ^\n                source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts\n                      ^^^^^\n                      source.ts meta.function.ts meta.parameters.ts keyword.control.flow.ts\n                           ^\n                           source.ts meta.function.ts meta.parameters.ts\n                            ^^^^^\n                            source.ts meta.function.ts meta.parameters.ts variable.other.readwrite.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                  ^\n                                  source.ts meta.function.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>async () => await using;\n ^^^^^\n source.ts meta.arrow.ts storage.modifier.async.ts\n      ^\n      source.ts meta.arrow.ts\n       ^\n       source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n        ^\n        source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n         ^\n         source.ts meta.arrow.ts\n          ^^\n          source.ts meta.arrow.ts storage.type.function.arrow.ts\n            ^\n            source.ts meta.arrow.ts\n             ^^^^^\n             source.ts keyword.control.flow.ts\n                  ^\n                  source.ts\n                   ^^^^^\n                   source.ts variable.other.readwrite.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts\n>class C extends (await using) {}\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^^^^^^^\n         source.ts meta.class.ts storage.modifier.ts\n                ^\n                source.ts meta.class.ts\n                 ^\n                 source.ts meta.class.ts meta.brace.round.ts\n                  ^^^^^\n                  source.ts meta.class.ts keyword.control.flow.ts\n                       ^\n                       source.ts meta.class.ts\n                        ^^^^^\n                        source.ts meta.class.ts variable.other.readwrite.ts\n                             ^\n                             source.ts meta.class.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.class.ts\n                               ^\n                               source.ts meta.class.ts punctuation.definition.block.ts\n                                ^\n                                source.ts meta.class.ts punctuation.definition.block.ts\n>class C<using> {}\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n         ^^^^^\n         source.ts meta.class.ts meta.type.parameters.ts entity.name.type.ts\n              ^\n              source.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n               ^\n               source.ts meta.class.ts\n                ^\n                source.ts meta.class.ts punctuation.definition.block.ts\n                 ^\n                 source.ts meta.class.ts punctuation.definition.block.ts\n>class C { [await using]; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n            ^^^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts keyword.control.flow.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                  ^^^^^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                        ^\n                        source.ts meta.class.ts punctuation.terminator.statement.ts\n                         ^\n                         source.ts meta.class.ts\n                          ^\n                          source.ts meta.class.ts punctuation.definition.block.ts\n>class C { static [await using]; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                   ^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts keyword.control.flow.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                         ^^^^^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                               ^\n                               source.ts meta.class.ts punctuation.terminator.statement.ts\n                                ^\n                                source.ts meta.class.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.definition.block.ts\n>class C { readonly [await using]; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts meta.field.declaration.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                     ^^^^^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts keyword.control.flow.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                           ^^^^^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.terminator.statement.ts\n                                  ^\n                                  source.ts meta.class.ts\n                                   ^\n                                   source.ts meta.class.ts punctuation.definition.block.ts\n>class C { declare [await using]; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                    ^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts keyword.control.flow.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                          ^^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.class.ts punctuation.terminator.statement.ts\n                                 ^\n                                 source.ts meta.class.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.definition.block.ts\n>class C { abstract [await using]; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                     ^^^^^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts keyword.control.flow.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                           ^^^^^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.terminator.statement.ts\n                                  ^\n                                  source.ts meta.class.ts\n                                   ^\n                                   source.ts meta.class.ts punctuation.definition.block.ts\n>class C { accessor [await using]; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts storage.type.property.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                     ^^^^^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts keyword.control.flow.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                           ^^^^^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.terminator.statement.ts\n                                  ^\n                                  source.ts meta.class.ts\n                                   ^\n                                   source.ts meta.class.ts punctuation.definition.block.ts\n>class C { static accessor [await using]; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                 ^\n                 source.ts meta.class.ts\n                  ^^^^^^^^\n                  source.ts meta.class.ts storage.type.property.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                            ^^^^^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts keyword.control.flow.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                                  ^^^^^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                                       ^\n                                       source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                                        ^\n                                        source.ts meta.class.ts punctuation.terminator.statement.ts\n                                         ^\n                                         source.ts meta.class.ts\n                                          ^\n                                          source.ts meta.class.ts punctuation.definition.block.ts\n>class C { readonly accessor [await using]; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts\n                    ^^^^^^^^\n                    source.ts meta.class.ts storage.type.property.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                              ^^^^^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts keyword.control.flow.ts\n                                   ^\n                                   source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                                    ^^^^^\n                                    source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                                         ^\n                                         source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                                          ^\n                                          source.ts meta.class.ts punctuation.terminator.statement.ts\n                                           ^\n                                           source.ts meta.class.ts\n                                            ^\n                                            source.ts meta.class.ts punctuation.definition.block.ts\n>class C { [await using]() {} }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n            ^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts keyword.control.flow.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts\n                  ^^^^^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                             ^\n                             source.ts meta.class.ts\n                              ^\n                              source.ts meta.class.ts punctuation.definition.block.ts\n>class C { static [await using]() {} }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                 ^\n                 source.ts meta.class.ts meta.array.literal.ts\n                  ^\n                  source.ts meta.class.ts meta.array.literal.ts meta.brace.square.ts\n                   ^^^^^\n                   source.ts meta.class.ts meta.array.literal.ts keyword.control.flow.ts\n                        ^\n                        source.ts meta.class.ts meta.array.literal.ts\n                         ^^^^^\n                         source.ts meta.class.ts meta.array.literal.ts variable.other.readwrite.ts\n                              ^\n                              source.ts meta.class.ts meta.array.literal.ts meta.brace.square.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                    ^\n                                    source.ts meta.class.ts\n                                     ^\n                                     source.ts meta.class.ts punctuation.definition.block.ts\n>class C { abstract [await using]() }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                     ^^^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts keyword.control.flow.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts\n                           ^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts\n                                    ^\n                                    source.ts meta.class.ts punctuation.definition.block.ts\n>class C { get [await using]() {} }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^\n           source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                ^^^^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts keyword.control.flow.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts\n                      ^^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                 ^\n                                 source.ts meta.class.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.definition.block.ts\n>class C { static get [await using]() {} }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                 ^\n                 source.ts meta.class.ts\n                  ^^^\n                  source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                       ^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts keyword.control.flow.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts\n                             ^^^^^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                        ^\n                                        source.ts meta.class.ts\n                                         ^\n                                         source.ts meta.class.ts punctuation.definition.block.ts\n>class C { abstract get [await using](); }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts\n                    ^^^\n                    source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                         ^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts keyword.control.flow.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts\n                               ^^^^^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                       ^\n                                       source.ts meta.class.ts punctuation.terminator.statement.ts\n                                        ^\n                                        source.ts meta.class.ts\n                                         ^\n                                         source.ts meta.class.ts punctuation.definition.block.ts\n>class C { set [await using]() {} }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^\n           source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                ^^^^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts keyword.control.flow.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts\n                      ^^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                 ^\n                                 source.ts meta.class.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.definition.block.ts\n>class C { static set [await using](v) {} }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                 ^\n                 source.ts meta.class.ts\n                  ^^^\n                  source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                       ^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts keyword.control.flow.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts\n                             ^^^^^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                         ^\n                                         source.ts meta.class.ts\n                                          ^\n                                          source.ts meta.class.ts punctuation.definition.block.ts\n>class C { abstract set [await using](v); }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts\n                    ^^^\n                    source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                         ^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts keyword.control.flow.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts\n                               ^^^^^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                        ^\n                                        source.ts meta.class.ts punctuation.terminator.statement.ts\n                                         ^\n                                         source.ts meta.class.ts\n                                          ^\n                                          source.ts meta.class.ts punctuation.definition.block.ts\n>enum E { a = await using };\n ^^^^\n source.ts meta.enum.declaration.ts storage.type.enum.ts\n     ^\n     source.ts meta.enum.declaration.ts\n      ^\n      source.ts meta.enum.declaration.ts entity.name.type.enum.ts\n       ^\n       source.ts meta.enum.declaration.ts\n        ^\n        source.ts meta.enum.declaration.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.enum.declaration.ts\n          ^\n          source.ts meta.enum.declaration.ts variable.other.enummember.ts\n           ^\n           source.ts meta.enum.declaration.ts\n            ^\n            source.ts meta.enum.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.enum.declaration.ts\n              ^^^^^\n              source.ts meta.enum.declaration.ts keyword.control.flow.ts\n                   ^\n                   source.ts meta.enum.declaration.ts\n                    ^^^^^\n                    source.ts meta.enum.declaration.ts variable.other.readwrite.ts\n                         ^\n                         source.ts meta.enum.declaration.ts\n                          ^\n                          source.ts meta.enum.declaration.ts punctuation.definition.block.ts\n                           ^\n                           source.ts punctuation.terminator.statement.ts\n>switch (await using) {\n ^^^^^^\n source.ts switch-statement.expr.ts switch-expression.expr.ts keyword.control.switch.ts\n       ^\n       source.ts switch-statement.expr.ts switch-expression.expr.ts\n        ^\n        source.ts switch-statement.expr.ts switch-expression.expr.ts meta.brace.round.ts\n         ^^^^^\n         source.ts switch-statement.expr.ts switch-expression.expr.ts keyword.control.flow.ts\n              ^\n              source.ts switch-statement.expr.ts switch-expression.expr.ts\n               ^^^^^\n               source.ts switch-statement.expr.ts switch-expression.expr.ts variable.other.readwrite.ts\n                    ^\n                    source.ts switch-statement.expr.ts switch-expression.expr.ts meta.brace.round.ts\n                     ^\n                     source.ts switch-statement.expr.ts\n                      ^\n                      source.ts switch-statement.expr.ts switch-block.expr.ts punctuation.definition.block.ts\n>    case await using:\n ^^^^\n source.ts switch-statement.expr.ts switch-block.expr.ts\n     ^^^^\n     source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n         ^\n         source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts\n          ^^^^^\n          source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.flow.ts\n               ^\n               source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts\n                ^^^^^\n                source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n                     ^\n                     source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>}\n ^\n source.ts switch-statement.expr.ts punctuation.definition.block.ts\n>for (await using;;);\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^\n      source.ts keyword.control.flow.ts\n           ^\n           source.ts\n            ^^^^^\n            source.ts variable.other.readwrite.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n                   ^\n                   source.ts meta.brace.round.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n>for (await using[x];;);\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^\n      source.ts keyword.control.flow.ts\n           ^\n           source.ts\n            ^^^^^\n            source.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.array.literal.ts meta.brace.square.ts\n                  ^\n                  source.ts meta.array.literal.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.array.literal.ts meta.brace.square.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n                      ^\n                      source.ts meta.brace.round.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>await using\n ^^^^^\n source.ts keyword.control.flow.ts\n      ^\n      source.ts\n       ^^^^^\n       source.ts variable.other.readwrite.ts\n>x = a;\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts\n     ^\n     source.ts variable.other.readwrite.ts\n      ^\n      source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>await\n ^^^^^\n source.ts keyword.control.flow.ts\n>using\n ^^^^^\n source.ts variable.other.readwrite.ts\n>x = a;\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts\n     ^\n     source.ts variable.other.readwrite.ts\n      ^\n      source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>await using\n ^^^^^\n source.ts keyword.control.flow.ts\n      ^\n      source.ts\n       ^^^^^\n       source.ts variable.other.readwrite.ts\n>[x] = a;\n ^\n source.ts meta.array.literal.ts meta.brace.square.ts\n  ^\n  source.ts meta.array.literal.ts variable.other.readwrite.ts\n   ^\n   source.ts meta.array.literal.ts meta.brace.square.ts\n    ^\n    source.ts\n     ^\n     source.ts keyword.operator.assignment.ts\n      ^\n      source.ts\n       ^\n       source.ts variable.other.readwrite.ts\n        ^\n        source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>await\n ^^^^^\n source.ts keyword.control.flow.ts\n>using\n ^^^^^\n source.ts variable.other.readwrite.ts\n>[x] = a;\n ^\n source.ts meta.array.literal.ts meta.brace.square.ts\n  ^\n  source.ts meta.array.literal.ts variable.other.readwrite.ts\n   ^\n   source.ts meta.array.literal.ts meta.brace.square.ts\n    ^\n    source.ts\n     ^\n     source.ts keyword.operator.assignment.ts\n      ^\n      source.ts\n       ^\n       source.ts variable.other.readwrite.ts\n        ^\n        source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>// await using as keyword\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>await using x = a;\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts variable.other.readwrite.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n>await using x = a, y = b;\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                   ^\n                   source.ts meta.var.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                      ^\n                      source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                       ^\n                       source.ts meta.var.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts variable.other.readwrite.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>await using x\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n>= a;\n ^\n source.ts keyword.operator.assignment.ts\n  ^\n  source.ts\n   ^\n   source.ts variable.other.readwrite.ts\n    ^\n    source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>await using x\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n>= a, y = b;\n ^\n source.ts keyword.operator.assignment.ts\n  ^\n  source.ts\n   ^\n   source.ts variable.other.readwrite.ts\n    ^\n    source.ts punctuation.separator.comma.ts\n     ^\n     source.ts\n      ^\n      source.ts variable.other.readwrite.ts\n       ^\n       source.ts\n        ^\n        source.ts keyword.operator.assignment.ts\n         ^\n         source.ts\n          ^\n          source.ts variable.other.readwrite.ts\n           ^\n           source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>await using x = a\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts variable.other.readwrite.ts\n>    , y = b;\n ^^^^\n source.ts\n     ^\n     source.ts punctuation.separator.comma.ts\n      ^\n      source.ts\n       ^\n       source.ts variable.other.readwrite.ts\n        ^\n        source.ts\n         ^\n         source.ts keyword.operator.assignment.ts\n          ^\n          source.ts\n           ^\n           source.ts variable.other.readwrite.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>await using x = a,\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts punctuation.separator.comma.ts\n>      y = b;\n ^^^^^^\n source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts variable.other.readwrite.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>for (await using x of a);\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^^^^^^^\n      source.ts meta.var.expr.ts storage.type.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^^\n                    source.ts keyword.operator.expression.of.ts\n                      ^\n                      source.ts\n                       ^\n                       source.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.brace.round.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n>for (await using x = a;;);\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^^^^^^^\n      source.ts meta.var.expr.ts storage.type.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.var.expr.ts variable.other.readwrite.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts\n                         ^\n                         source.ts meta.brace.round.ts\n                          ^\n                          source.ts punctuation.terminator.statement.ts\n>for (await using x = a, y = b;;);\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^^^^^^^\n      source.ts meta.var.expr.ts storage.type.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.var.expr.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                        ^\n                        source.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                           ^\n                           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                            ^\n                            source.ts meta.var.expr.ts\n                             ^\n                             source.ts meta.var.expr.ts variable.other.readwrite.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts\n                               ^\n                               source.ts punctuation.terminator.statement.ts\n                                ^\n                                source.ts meta.brace.round.ts\n                                 ^\n                                 source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>for (await using x\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^^^^^^^\n      source.ts meta.var.expr.ts storage.type.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n>= a;;);\n ^\n source.ts keyword.operator.assignment.ts\n  ^\n  source.ts\n   ^\n   source.ts variable.other.readwrite.ts\n    ^\n    source.ts punctuation.terminator.statement.ts\n     ^\n     source.ts punctuation.terminator.statement.ts\n      ^\n      source.ts meta.brace.round.ts\n       ^\n       source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>for (await using x\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^^^^^^^\n      source.ts meta.var.expr.ts storage.type.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n>= a, y = b;;);\n ^\n source.ts keyword.operator.assignment.ts\n  ^\n  source.ts\n   ^\n   source.ts variable.other.readwrite.ts\n    ^\n    source.ts punctuation.separator.comma.ts\n     ^\n     source.ts\n      ^\n      source.ts variable.other.readwrite.ts\n       ^\n       source.ts\n        ^\n        source.ts keyword.operator.assignment.ts\n         ^\n         source.ts\n          ^\n          source.ts variable.other.readwrite.ts\n           ^\n           source.ts punctuation.terminator.statement.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n             ^\n             source.ts meta.brace.round.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>for (await using x = a\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^^^^^^^\n      source.ts meta.var.expr.ts storage.type.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.var.expr.ts variable.other.readwrite.ts\n>         , y = b;;);\n ^^^^^^^^^\n source.ts\n          ^\n          source.ts punctuation.separator.comma.ts\n           ^\n           source.ts\n            ^\n            source.ts variable.other.readwrite.ts\n             ^\n             source.ts\n              ^\n              source.ts keyword.operator.assignment.ts\n               ^\n               source.ts\n                ^\n                source.ts variable.other.readwrite.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n                   ^\n                   source.ts meta.brace.round.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>for (await using x = a,\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^^^^^^^\n      source.ts meta.var.expr.ts storage.type.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.var.expr.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.var.expr.ts punctuation.separator.comma.ts\n>           y = b;;);\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^\n                source.ts meta.var.expr.ts variable.other.readwrite.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n                   ^\n                   source.ts meta.brace.round.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>function f() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.function.ts\n              ^\n              source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    await using x = a;\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^^^^^^\n     source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>(() => {\n ^\n source.ts meta.brace.round.ts\n  ^\n  source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n   ^\n   source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n    ^\n    source.ts meta.arrow.ts\n     ^^\n     source.ts meta.arrow.ts storage.type.function.arrow.ts\n       ^\n       source.ts meta.arrow.ts\n        ^\n        source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    await using x = a;\n ^^^^\n source.ts meta.arrow.ts meta.block.ts\n     ^^^^^^^^^^^\n     source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                ^\n                source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>})\n ^\n source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.brace.round.ts\n>\n ^\n source.ts\n>namespace N {\n ^^^^^^^^^\n source.ts meta.namespace.declaration.ts storage.type.namespace.ts\n          ^\n          source.ts meta.namespace.declaration.ts\n           ^\n           source.ts meta.namespace.declaration.ts entity.name.type.module.ts\n            ^\n            source.ts meta.namespace.declaration.ts\n             ^\n             source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    await using x = a;\n ^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts\n     ^^^^^^^^^^^\n     source.ts meta.namespace.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                ^\n                source.ts meta.namespace.declaration.ts meta.block.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.namespace.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.namespace.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.namespace.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.namespace.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.namespace.declaration.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.namespace.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>class C {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>    constructor() {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        await using x = a;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    method() {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        await using x = a;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    get p() {\n ^^^^\n source.ts meta.class.ts\n     ^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        await using x = a;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    set p(v) {\n ^^^^\n source.ts meta.class.ts\n     ^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        await using x = a;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    static {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts\n            ^\n            source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>        await using x = a;\n ^^^^^^^^\n source.ts meta.class.ts meta.block.ts\n         ^^^^^^^^^^^\n         source.ts meta.class.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                    ^\n                    source.ts meta.class.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                      ^\n                      source.ts meta.class.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.class.ts meta.block.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.class.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.class.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>// await using as expression, illegal syntax\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>await using {x};\n ^^^^^\n source.ts keyword.control.flow.ts\n      ^\n      source.ts\n       ^^^^^\n       source.ts variable.other.readwrite.ts\n            ^\n            source.ts\n             ^\n             source.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.block.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.block.ts punctuation.definition.block.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>await using {x: y};\n ^^^^^\n source.ts keyword.control.flow.ts\n      ^\n      source.ts\n       ^^^^^\n       source.ts variable.other.readwrite.ts\n            ^\n            source.ts\n             ^\n             source.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.block.ts entity.name.label.ts\n               ^\n               source.ts meta.block.ts punctuation.separator.label.ts\n                ^\n                source.ts meta.block.ts\n                 ^\n                 source.ts meta.block.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.block.ts punctuation.definition.block.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>// await using as keyword, illegal syntax\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>await using x;\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>await using x, y;\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts punctuation.separator.comma.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n>await using x, [y];\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts punctuation.separator.comma.ts\n               ^^\n               source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>await using x, {y};\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts punctuation.separator.comma.ts\n               ^^\n               source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>await using x, {y: z};\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts punctuation.separator.comma.ts\n               ^^\n               source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n                     ^\n                     source.ts\n                      ^\n                      source.ts punctuation.terminator.statement.ts\n>await using x = a, y;\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                   ^\n                   source.ts meta.var.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n>await using x = a, [y];\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                   ^^\n                   source.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts\n>await using x = a, {y};\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                   ^^\n                   source.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                      ^\n                      source.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts\n>await using x = a, {y: z};\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                   ^^\n                   source.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n                         ^\n                         source.ts\n                          ^\n                          source.ts punctuation.terminator.statement.ts\n>declare await using x;\n ^^^^^^^\n source.ts meta.var.expr.ts storage.modifier.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^^^^^^^\n         source.ts meta.var.expr.ts storage.type.ts\n                    ^\n                    source.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                      ^\n                      source.ts punctuation.terminator.statement.ts\n>declare await using x = a;\n ^^^^^^^\n source.ts meta.var.expr.ts storage.modifier.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^^^^^^^\n         source.ts meta.var.expr.ts storage.type.ts\n                    ^\n                    source.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.var.expr.ts\n                         ^\n                         source.ts meta.var.expr.ts variable.other.readwrite.ts\n                          ^\n                          source.ts punctuation.terminator.statement.ts\n>export await using x;\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^^^^^^^^^\n        source.ts meta.var.expr.ts storage.type.ts\n                   ^\n                   source.ts meta.var.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n>export await using x = a;\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^^^^^^^^^\n        source.ts meta.var.expr.ts storage.type.ts\n                   ^\n                   source.ts meta.var.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                      ^\n                      source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                       ^\n                       source.ts meta.var.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts variable.other.readwrite.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/awaited.baseline.txt",
    "content": "original file\n-----------------------------------\nlet v1: awaited number;\nlet v2: awaited Promise<number>;\nfunction f7<U>() {\n    let v0: awaited U;\n    let v1: awaited Promise<U>;\n\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let v1: awaited number;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n         ^^^^^^^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                 ^^^^^^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts\n>let v2: awaited Promise<number>;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n         ^^^^^^^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                 ^^^^^^^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                         ^^^^^^\n                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts support.type.primitive.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                ^\n                                source.ts punctuation.terminator.statement.ts\n>function f7<U>() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n            ^\n            source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n             ^\n             source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n              ^\n              source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    let v0: awaited U;\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^\n     source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n         ^^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n             ^^^^^^^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>    let v1: awaited Promise<U>;\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^\n     source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n         ^^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n             ^^^^^^^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                     ^^^^^^^\n                     source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts entity.name.type.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.function.ts meta.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/bigint.baseline.txt",
    "content": "original file\n-----------------------------------\n// All bases should allow \"n\" suffix\nconst bin = 0b101, binBig = 0b101n; // 5, 5n\nconst oct = 0o567, octBig = 0o567n; // 375, 375n\nconst hex = 0xC0B, hexBig = 0xC0Bn; // 3083, 3083n\nconst dec = 123,   decBig = 123n;\n\n// Test literals whose values overflow a 53-bit integer\n// These should be represented exactly in the emitted JS\nconst largeBin = 0b10101010101010101010101010101010101010101010101010101010101n; // 384307168202282325n\nconst largeOct = 0o123456712345671234567n; // 1505852261029722487n\nconst largeDec = 12345678091234567890n;\nconst largeHex = 0x1234567890abcdefn; // 1311768467294899695n\n\n// Test literals with separators\nconst separatedBin = 0b010_10_1n; // 21n\nconst separatedOct = 0o1234_567n; // 342391n\nconst separatedDec = 123_456_789n;\nconst separatedHex = 0x0_abcdefn; // 11259375n\n\n// Test parsing literals of different bit sizes\n// to ensure that parsePseudoBigInt() allocates enough space\nconst zero         = 0b0n;\nconst oneBit       = 0b1n;\nconst twoBit       = 0b11n; // 3n\nconst threeBit     = 0b111n; // 7n\nconst fourBit      = 0b1111n; // 15n\nconst fiveBit      = 0b11111n; // 31n\nconst sixBit       = 0b111111n; // 63n\nconst sevenBit     = 0b1111111n; // 127n\nconst eightBit     = 0b11111111n; // 255n\nconst nineBit      = 0b111111111n; // 511n\nconst tenBit       = 0b1111111111n; // 1023n\nconst elevenBit    = 0b11111111111n; // 2047n\nconst twelveBit    = 0b111111111111n; // 4095n\nconst thirteenBit  = 0b1111111111111n; // 8191n\nconst fourteenBit  = 0b11111111111111n; // 16383n\nconst fifteenBit   = 0b111111111111111n; // 32767n\nconst sixteenBit   = 0b1111111111111111n; // 65535n\nconst seventeenBit = 0b11111111111111111n; // 131071n\n\n// Test negative literals\nconst neg = -123n;\nconst negHex: -16n = -0x10n;\n\n// Test normalization of bigints -- all of these should succeed\nconst negZero: 0n = -0n;\nconst baseChange: 255n = 0xFFn;\nconst leadingZeros: 0xFFn = 0x000000FFn;\n\n// Plus not allowed on literals\nconst unaryPlus = +123n;\nconst unaryPlusHex = +0x123n;\n\n// Parsing errors\n// In separate blocks because they each declare an \"n\" variable\n{ const legacyOct = 0123n; }\n{ const scientific = 1e2n; }\n{ const decimal = 4.1n; }\n{ const leadingDecimal = .1n; }\nconst emptyBinary = 0bn; // should error but infer 0n\nconst emptyOct = 0on; // should error but infer 0n\nconst emptyHex = 0xn; // should error but infer 0n\nconst leadingSeparator = _123n;\nconst trailingSeparator = 123_n;\nconst doubleSeparator = 123_456__789n;\n\n// Using literals as types\nconst oneTwoOrThree = (x: 1n | 2n | 3n): bigint => x ** 2n;\noneTwoOrThree(0n); oneTwoOrThree(1n); oneTwoOrThree(2n); oneTwoOrThree(3n);\noneTwoOrThree(0);  oneTwoOrThree(1);  oneTwoOrThree(2);  oneTwoOrThree(3);\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// All bases should allow \"n\" suffix\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>const bin = 0b101, binBig = 0b101n; // 5, 5n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.var.expr.ts constant.numeric.binary.ts\n                  ^\n                  source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                   ^\n                   source.ts meta.var.expr.ts\n                    ^^^^^^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                           ^\n                           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                            ^\n                            source.ts meta.var.expr.ts\n                             ^^^^^\n                             source.ts meta.var.expr.ts constant.numeric.binary.ts\n                                  ^\n                                  source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                                   ^\n                                   source.ts punctuation.terminator.statement.ts\n                                    ^\n                                    source.ts\n                                     ^^\n                                     source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                       ^^^^^^\n                                       source.ts comment.line.double-slash.ts\n>const oct = 0o567, octBig = 0o567n; // 375, 375n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.var.expr.ts constant.numeric.octal.ts\n                  ^\n                  source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                   ^\n                   source.ts meta.var.expr.ts\n                    ^^^^^^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                           ^\n                           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                            ^\n                            source.ts meta.var.expr.ts\n                             ^^^^^\n                             source.ts meta.var.expr.ts constant.numeric.octal.ts\n                                  ^\n                                  source.ts meta.var.expr.ts constant.numeric.octal.ts storage.type.numeric.bigint.ts\n                                   ^\n                                   source.ts punctuation.terminator.statement.ts\n                                    ^\n                                    source.ts\n                                     ^^\n                                     source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                       ^^^^^^^^^^\n                                       source.ts comment.line.double-slash.ts\n>const hex = 0xC0B, hexBig = 0xC0Bn; // 3083, 3083n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.var.expr.ts constant.numeric.hex.ts\n                  ^\n                  source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                   ^\n                   source.ts meta.var.expr.ts\n                    ^^^^^^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                           ^\n                           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                            ^\n                            source.ts meta.var.expr.ts\n                             ^^^^^\n                             source.ts meta.var.expr.ts constant.numeric.hex.ts\n                                  ^\n                                  source.ts meta.var.expr.ts constant.numeric.hex.ts storage.type.numeric.bigint.ts\n                                   ^\n                                   source.ts punctuation.terminator.statement.ts\n                                    ^\n                                    source.ts\n                                     ^^\n                                     source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                       ^^^^^^^^^^^^\n                                       source.ts comment.line.double-slash.ts\n>const dec = 123,   decBig = 123n;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^^^\n             source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                ^\n                source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                 ^^^\n                 source.ts meta.var.expr.ts\n                    ^^^^^^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                           ^\n                           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                            ^\n                            source.ts meta.var.expr.ts\n                             ^^^\n                             source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                ^\n                                source.ts meta.var.expr.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                                 ^\n                                 source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>// Test literals whose values overflow a 53-bit integer\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>// These should be represented exactly in the emitted JS\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>const largeBin = 0b10101010101010101010101010101010101010101010101010101010101n; // 384307168202282325n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                  source.ts meta.var.expr.ts constant.numeric.binary.ts\n                                                                               ^\n                                                                               source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                                                                                ^\n                                                                                source.ts punctuation.terminator.statement.ts\n                                                                                 ^\n                                                                                 source.ts\n                                                                                  ^^\n                                                                                  source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                                                    ^^^^^^^^^^^^^^^^^^^^\n                                                                                    source.ts comment.line.double-slash.ts\n>const largeOct = 0o123456712345671234567n; // 1505852261029722487n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^^^^^^^^^^^^^^^^^^^^^^^\n                  source.ts meta.var.expr.ts constant.numeric.octal.ts\n                                         ^\n                                         source.ts meta.var.expr.ts constant.numeric.octal.ts storage.type.numeric.bigint.ts\n                                          ^\n                                          source.ts punctuation.terminator.statement.ts\n                                           ^\n                                           source.ts\n                                            ^^\n                                            source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                              ^^^^^^^^^^^^^^^^^^^^^\n                                              source.ts comment.line.double-slash.ts\n>const largeDec = 12345678091234567890n;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^^^^^^^^^^^^^^^^^^^^\n                  source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                      ^\n                                      source.ts meta.var.expr.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                                       ^\n                                       source.ts punctuation.terminator.statement.ts\n>const largeHex = 0x1234567890abcdefn; // 1311768467294899695n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^^^^^^^^^^^^^^^^^^\n                  source.ts meta.var.expr.ts constant.numeric.hex.ts\n                                    ^\n                                    source.ts meta.var.expr.ts constant.numeric.hex.ts storage.type.numeric.bigint.ts\n                                     ^\n                                     source.ts punctuation.terminator.statement.ts\n                                      ^\n                                      source.ts\n                                       ^^\n                                       source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                         ^^^^^^^^^^^^^^^^^^^^^\n                                         source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>// Test literals with separators\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>const separatedBin = 0b010_10_1n; // 21n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                                ^\n                                source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                                 ^\n                                 source.ts punctuation.terminator.statement.ts\n                                  ^\n                                  source.ts\n                                   ^^\n                                   source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                     ^^^^\n                                     source.ts comment.line.double-slash.ts\n>const separatedOct = 0o1234_567n; // 342391n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.octal.ts\n                                ^\n                                source.ts meta.var.expr.ts constant.numeric.octal.ts storage.type.numeric.bigint.ts\n                                 ^\n                                 source.ts punctuation.terminator.statement.ts\n                                  ^\n                                  source.ts\n                                   ^^\n                                   source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                     ^^^^^^^^\n                                     source.ts comment.line.double-slash.ts\n>const separatedDec = 123_456_789n;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.var.expr.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                                  ^\n                                  source.ts punctuation.terminator.statement.ts\n>const separatedHex = 0x0_abcdefn; // 11259375n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.hex.ts\n                                ^\n                                source.ts meta.var.expr.ts constant.numeric.hex.ts storage.type.numeric.bigint.ts\n                                 ^\n                                 source.ts punctuation.terminator.statement.ts\n                                  ^\n                                  source.ts\n                                   ^^\n                                   source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                     ^^^^^^^^^^\n                                     source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>// Test parsing literals of different bit sizes\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>// to ensure that parsePseudoBigInt() allocates enough space\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>const zero         = 0b0n;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n           ^^^^^^^^^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                         ^\n                         source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                          ^\n                          source.ts punctuation.terminator.statement.ts\n>const oneBit       = 0b1n;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n             ^^^^^^^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                         ^\n                         source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                          ^\n                          source.ts punctuation.terminator.statement.ts\n>const twoBit       = 0b11n; // 3n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n             ^^^^^^^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                          ^\n                          source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                           ^\n                           source.ts punctuation.terminator.statement.ts\n                            ^\n                            source.ts\n                             ^^\n                             source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                               ^^^\n                               source.ts comment.line.double-slash.ts\n>const threeBit     = 0b111n; // 7n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^^^^^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                           ^\n                           source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                            ^\n                            source.ts punctuation.terminator.statement.ts\n                             ^\n                             source.ts\n                              ^^\n                              source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                ^^^\n                                source.ts comment.line.double-slash.ts\n>const fourBit      = 0b1111n; // 15n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^^^^^^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                            ^\n                            source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                             ^\n                             source.ts punctuation.terminator.statement.ts\n                              ^\n                              source.ts\n                               ^^\n                               source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                 ^^^^\n                                 source.ts comment.line.double-slash.ts\n>const fiveBit      = 0b11111n; // 31n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^^^^^^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                             ^\n                             source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts\n                               ^\n                               source.ts\n                                ^^\n                                source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                  ^^^^\n                                  source.ts comment.line.double-slash.ts\n>const sixBit       = 0b111111n; // 63n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n             ^^^^^^^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                              ^\n                              source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                               ^\n                               source.ts punctuation.terminator.statement.ts\n                                ^\n                                source.ts\n                                 ^^\n                                 source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                   ^^^^\n                                   source.ts comment.line.double-slash.ts\n>const sevenBit     = 0b1111111n; // 127n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^^^^^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                               ^\n                               source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                                ^\n                                source.ts punctuation.terminator.statement.ts\n                                 ^\n                                 source.ts\n                                  ^^\n                                  source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                    ^^^^^\n                                    source.ts comment.line.double-slash.ts\n>const eightBit     = 0b11111111n; // 255n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^^^^^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                                ^\n                                source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                                 ^\n                                 source.ts punctuation.terminator.statement.ts\n                                  ^\n                                  source.ts\n                                   ^^\n                                   source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                     ^^^^^\n                                     source.ts comment.line.double-slash.ts\n>const nineBit      = 0b111111111n; // 511n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^^^^^^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                                 ^\n                                 source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                                  ^\n                                  source.ts punctuation.terminator.statement.ts\n                                   ^\n                                   source.ts\n                                    ^^\n                                    source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                      ^^^^^\n                                      source.ts comment.line.double-slash.ts\n>const tenBit       = 0b1111111111n; // 1023n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n             ^^^^^^^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^^^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                                  ^\n                                  source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                                   ^\n                                   source.ts punctuation.terminator.statement.ts\n                                    ^\n                                    source.ts\n                                     ^^\n                                     source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                       ^^^^^^\n                                       source.ts comment.line.double-slash.ts\n>const elevenBit    = 0b11111111111n; // 2047n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^^^^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^^^^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                                   ^\n                                   source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                                    ^\n                                    source.ts punctuation.terminator.statement.ts\n                                     ^\n                                     source.ts\n                                      ^^\n                                      source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                        ^^^^^^\n                                        source.ts comment.line.double-slash.ts\n>const twelveBit    = 0b111111111111n; // 4095n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^^^^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^^^^^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                                    ^\n                                    source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                                     ^\n                                     source.ts punctuation.terminator.statement.ts\n                                      ^\n                                      source.ts\n                                       ^^\n                                       source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                         ^^^^^^\n                                         source.ts comment.line.double-slash.ts\n>const thirteenBit  = 0b1111111111111n; // 8191n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^^^^^^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                                     ^\n                                     source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                                      ^\n                                      source.ts punctuation.terminator.statement.ts\n                                       ^\n                                       source.ts\n                                        ^^\n                                        source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                          ^^^^^^\n                                          source.ts comment.line.double-slash.ts\n>const fourteenBit  = 0b11111111111111n; // 16383n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^^^^^^^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                                      ^\n                                      source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                                       ^\n                                       source.ts punctuation.terminator.statement.ts\n                                        ^\n                                        source.ts\n                                         ^^\n                                         source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                           ^^^^^^^\n                                           source.ts comment.line.double-slash.ts\n>const fifteenBit   = 0b111111111111111n; // 32767n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                 ^^^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^^^^^^^^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                                       ^\n                                       source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                                        ^\n                                        source.ts punctuation.terminator.statement.ts\n                                         ^\n                                         source.ts\n                                          ^^\n                                          source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                            ^^^^^^^\n                                            source.ts comment.line.double-slash.ts\n>const sixteenBit   = 0b1111111111111111n; // 65535n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                 ^^^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^^^^^^^^^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                                        ^\n                                        source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                                         ^\n                                         source.ts punctuation.terminator.statement.ts\n                                          ^\n                                          source.ts\n                                           ^^\n                                           source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                             ^^^^^^^\n                                             source.ts comment.line.double-slash.ts\n>const seventeenBit = 0b11111111111111111n; // 131071n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^^^^^^^^^^^^^^\n                      source.ts meta.var.expr.ts constant.numeric.binary.ts\n                                         ^\n                                         source.ts meta.var.expr.ts constant.numeric.binary.ts storage.type.numeric.bigint.ts\n                                          ^\n                                          source.ts punctuation.terminator.statement.ts\n                                           ^\n                                           source.ts\n                                            ^^\n                                            source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                              ^^^^^^^^\n                                              source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>// Test negative literals\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>const neg = -123n;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n              ^^^\n              source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.var.expr.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n>const negHex: -16n = -0x10n;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                ^^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                       ^^^^\n                       source.ts meta.var.expr.ts constant.numeric.hex.ts\n                           ^\n                           source.ts meta.var.expr.ts constant.numeric.hex.ts storage.type.numeric.bigint.ts\n                            ^\n                            source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>// Test normalization of bigints -- all of these should succeed\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>const negZero: 0n = -0n;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                   ^\n                   source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                      ^\n                      source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                       ^\n                       source.ts meta.var.expr.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts\n>const baseChange: 255n = 0xFFn;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                   ^^^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts constant.numeric.decimal.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                        ^\n                        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts meta.var.expr.ts\n                          ^^^^\n                          source.ts meta.var.expr.ts constant.numeric.hex.ts\n                              ^\n                              source.ts meta.var.expr.ts constant.numeric.hex.ts storage.type.numeric.bigint.ts\n                               ^\n                               source.ts punctuation.terminator.statement.ts\n>const leadingZeros: 0xFFn = 0x000000FFn;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                     ^^^^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts constant.numeric.hex.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts constant.numeric.hex.ts storage.type.numeric.bigint.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                           ^\n                           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                            ^\n                            source.ts meta.var.expr.ts\n                             ^^^^^^^^^^\n                             source.ts meta.var.expr.ts constant.numeric.hex.ts\n                                       ^\n                                       source.ts meta.var.expr.ts constant.numeric.hex.ts storage.type.numeric.bigint.ts\n                                        ^\n                                        source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>// Plus not allowed on literals\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>const unaryPlus = +123n;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                    ^^^\n                    source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                       ^\n                       source.ts meta.var.expr.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts\n>const unaryPlusHex = +0x123n;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                       ^^^^^\n                       source.ts meta.var.expr.ts constant.numeric.hex.ts\n                            ^\n                            source.ts meta.var.expr.ts constant.numeric.hex.ts storage.type.numeric.bigint.ts\n                             ^\n                             source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>// Parsing errors\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>// In separate blocks because they each declare an \"n\" variable\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>{ const legacyOct = 0123n; }\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.block.ts\n   ^^^^^\n   source.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.block.ts meta.var.expr.ts\n         ^^^^^^^^^\n         source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.block.ts meta.var.expr.ts\n                     ^^^^\n                     source.ts meta.block.ts meta.var.expr.ts constant.numeric.octal.ts\n                         ^\n                         source.ts meta.block.ts meta.var.expr.ts constant.numeric.octal.ts storage.type.numeric.bigint.ts\n                          ^\n                          source.ts meta.block.ts punctuation.terminator.statement.ts\n                           ^\n                           source.ts meta.block.ts\n                            ^\n                            source.ts meta.block.ts punctuation.definition.block.ts\n>{ const scientific = 1e2n; }\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.block.ts\n   ^^^^^\n   source.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.block.ts meta.var.expr.ts\n         ^^^^^^^^^^\n         source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.block.ts meta.var.expr.ts\n                      ^^^\n                      source.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                         ^\n                         source.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                          ^\n                          source.ts meta.block.ts punctuation.terminator.statement.ts\n                           ^\n                           source.ts meta.block.ts\n                            ^\n                            source.ts meta.block.ts punctuation.definition.block.ts\n>{ const decimal = 4.1n; }\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.block.ts\n   ^^^^^\n   source.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.block.ts meta.var.expr.ts\n         ^^^^^^^\n         source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.block.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                    ^\n                    source.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n                     ^\n                     source.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                      ^\n                      source.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                       ^\n                       source.ts meta.block.ts punctuation.terminator.statement.ts\n                        ^\n                        source.ts meta.block.ts\n                         ^\n                         source.ts meta.block.ts punctuation.definition.block.ts\n>{ const leadingDecimal = .1n; }\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.block.ts\n   ^^^^^\n   source.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.block.ts meta.var.expr.ts\n         ^^^^^^^^^^^^^^\n         source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                       ^\n                       source.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                        ^\n                        source.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts meta.block.ts meta.var.expr.ts\n                          ^\n                          source.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n                           ^\n                           source.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                            ^\n                            source.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                             ^\n                             source.ts meta.block.ts punctuation.terminator.statement.ts\n                              ^\n                              source.ts meta.block.ts\n                               ^\n                               source.ts meta.block.ts punctuation.definition.block.ts\n>const emptyBinary = 0bn; // should error but infer 0n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^^\n                    source.ts meta.var.expr.ts\n                      ^^\n                      source.ts meta.var.expr.ts variable.other.readwrite.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts\n                         ^\n                         source.ts\n                          ^^\n                          source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                            ^^^^^^^^^^^^^^^^^^^^^^^^^^\n                            source.ts comment.line.double-slash.ts\n>const emptyOct = 0on; // should error but infer 0n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^^\n                 source.ts meta.var.expr.ts\n                   ^^\n                   source.ts meta.var.expr.ts variable.other.readwrite.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n                      ^\n                      source.ts\n                       ^^\n                       source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                         ^^^^^^^^^^^^^^^^^^^^^^^^^^\n                         source.ts comment.line.double-slash.ts\n>const emptyHex = 0xn; // should error but infer 0n\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^^\n                 source.ts meta.var.expr.ts\n                   ^^\n                   source.ts meta.var.expr.ts variable.other.readwrite.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n                      ^\n                      source.ts\n                       ^^\n                       source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                         ^^^^^^^^^^^^^^^^^^^^^^^^^^\n                         source.ts comment.line.double-slash.ts\n>const leadingSeparator = _123n;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts meta.var.expr.ts\n                          ^^^^^\n                          source.ts meta.var.expr.ts variable.other.readwrite.ts\n                               ^\n                               source.ts punctuation.terminator.statement.ts\n>const trailingSeparator = 123_n;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                         ^\n                         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                          ^\n                          source.ts meta.var.expr.ts\n                           ^^^^\n                           source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                               ^\n                               source.ts meta.var.expr.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                                ^\n                                source.ts punctuation.terminator.statement.ts\n>const doubleSeparator = 123_456__789n;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.var.expr.ts\n                         ^^^^^^^^^^^^\n                         source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                     ^\n                                     source.ts meta.var.expr.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                                      ^\n                                      source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>// Using literals as types\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>const oneTwoOrThree = (x: 1n | 2n | 3n): bigint => x ** 2n;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts constant.numeric.decimal.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts constant.numeric.decimal.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n                                          ^^^^^^\n                                          source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts support.type.primitive.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n                                                 ^^\n                                                 source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts meta.arrow.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts\n                                                      ^\n                                                      source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                                       ^\n                                                       source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n                                                        ^\n                                                        source.ts meta.var.expr.ts\n                                                         ^\n                                                         source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                                          ^\n                                                          source.ts meta.var.expr.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                                                           ^\n                                                           source.ts punctuation.terminator.statement.ts\n>oneTwoOrThree(0n); oneTwoOrThree(1n); oneTwoOrThree(2n); oneTwoOrThree(3n);\n ^^^^^^^^^^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n              ^\n              source.ts meta.brace.round.ts\n               ^\n               source.ts constant.numeric.decimal.ts\n                ^\n                source.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                 ^\n                 source.ts meta.brace.round.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n                   ^\n                   source.ts\n                    ^^^^^^^^^^^^^\n                    source.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.brace.round.ts\n                                  ^\n                                  source.ts constant.numeric.decimal.ts\n                                   ^\n                                   source.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                                    ^\n                                    source.ts meta.brace.round.ts\n                                     ^\n                                     source.ts punctuation.terminator.statement.ts\n                                      ^\n                                      source.ts\n                                       ^^^^^^^^^^^^^\n                                       source.ts meta.function-call.ts entity.name.function.ts\n                                                    ^\n                                                    source.ts meta.brace.round.ts\n                                                     ^\n                                                     source.ts constant.numeric.decimal.ts\n                                                      ^\n                                                      source.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                                                       ^\n                                                       source.ts meta.brace.round.ts\n                                                        ^\n                                                        source.ts punctuation.terminator.statement.ts\n                                                         ^\n                                                         source.ts\n                                                          ^^^^^^^^^^^^^\n                                                          source.ts meta.function-call.ts entity.name.function.ts\n                                                                       ^\n                                                                       source.ts meta.brace.round.ts\n                                                                        ^\n                                                                        source.ts constant.numeric.decimal.ts\n                                                                         ^\n                                                                         source.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                                                                          ^\n                                                                          source.ts meta.brace.round.ts\n                                                                           ^\n                                                                           source.ts punctuation.terminator.statement.ts\n>oneTwoOrThree(0);  oneTwoOrThree(1);  oneTwoOrThree(2);  oneTwoOrThree(3);\n ^^^^^^^^^^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n              ^\n              source.ts meta.brace.round.ts\n               ^\n               source.ts constant.numeric.decimal.ts\n                ^\n                source.ts meta.brace.round.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n                  ^^\n                  source.ts\n                    ^^^^^^^^^^^^^\n                    source.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.brace.round.ts\n                                  ^\n                                  source.ts constant.numeric.decimal.ts\n                                   ^\n                                   source.ts meta.brace.round.ts\n                                    ^\n                                    source.ts punctuation.terminator.statement.ts\n                                     ^^\n                                     source.ts\n                                       ^^^^^^^^^^^^^\n                                       source.ts meta.function-call.ts entity.name.function.ts\n                                                    ^\n                                                    source.ts meta.brace.round.ts\n                                                     ^\n                                                     source.ts constant.numeric.decimal.ts\n                                                      ^\n                                                      source.ts meta.brace.round.ts\n                                                       ^\n                                                       source.ts punctuation.terminator.statement.ts\n                                                        ^^\n                                                        source.ts\n                                                          ^^^^^^^^^^^^^\n                                                          source.ts meta.function-call.ts entity.name.function.ts\n                                                                       ^\n                                                                       source.ts meta.brace.round.ts\n                                                                        ^\n                                                                        source.ts constant.numeric.decimal.ts\n                                                                         ^\n                                                                         source.ts meta.brace.round.ts\n                                                                          ^\n                                                                          source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/binder.baseline.txt",
    "content": "original file\n-----------------------------------\n    function createBinder(): (file: SourceFile, options: CompilerOptions) => void {\n        let Symbol: { new (flags: SymbolFlags, name: string): Symbol };\n        let classifiableNames: Map<string>;\n\n        const unreachableFlow: FlowNode = { flags: FlowFlags.Unreachable };\n    }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>    function createBinder(): (file: SourceFile, options: CompilerOptions) => void {\n ^^^^\n source.ts\n     ^^^^^^^^\n     source.ts meta.function.ts storage.type.function.ts\n             ^\n             source.ts meta.function.ts\n              ^^^^^^^^^^^^\n              source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                           ^\n                           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                            ^\n                            source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                             ^\n                             source.ts meta.function.ts meta.return.type.ts\n                              ^\n                              source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                               ^^^^\n                               source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                   ^\n                                   source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                     ^^^^^^^^^^\n                                     source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                               ^\n                                               source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                ^\n                                                source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts\n                                                 ^^^^^^^\n                                                 source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                          ^^^^^^^^^^^^^^^\n                                                          source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                                         ^\n                                                                         source.ts meta.function.ts meta.return.type.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.return.type.ts\n                                                                           ^^\n                                                                           source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                                             ^\n                                                                             source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                                                                              ^^^^\n                                                                              source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts support.type.primitive.ts\n                                                                                  ^\n                                                                                  source.ts meta.function.ts meta.return.type.ts meta.type.function.return.ts\n                                                                                   ^\n                                                                                   source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>        let Symbol: { new (flags: SymbolFlags, name: string): Symbol };\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts\n         ^^^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts\n                       ^^^\n                       source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts keyword.operator.new.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                            ^^^^^\n                            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                   ^^^^^^^^^^^\n                                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                              ^\n                                              source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                               ^\n                                               source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts\n                                                ^^^^\n                                                source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                      ^^^^^^\n                                                      source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts\n                                                               ^^^^^^\n                                                               source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                                                       ^\n                                                                       source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>        let classifiableNames: Map<string>;\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts\n         ^^^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^^^^^^^^^^^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                                ^^^\n                                source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                    ^^^^^^\n                                    source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts support.type.primitive.ts\n                                          ^\n                                          source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                           ^\n                                           source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.function.ts meta.block.ts\n>        const unreachableFlow: FlowNode = { flags: FlowFlags.Unreachable };\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts\n         ^^^^^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n               ^^^^^^^^^^^^^^^\n               source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                                ^^^^^^^^\n                                source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                          ^\n                                          source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                                           ^\n                                           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                            ^\n                                            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts\n                                             ^^^^^\n                                             source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                                    ^^^^^^^^^\n                                                    source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.object.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts punctuation.accessor.ts\n                                                              ^^^^^^^^^^^\n                                                              source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.property.ts\n                                                                         ^\n                                                                         source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                           ^\n                                                                           source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^\n     source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/conditionalTypes.baseline.txt",
    "content": "original file\n-----------------------------------\ntype Diff1<T, U> = T extends U ? never : T\ntype TypeName<T> =\n    T extends string ? \"string\" :\n        T extends number ? \"number\" :\n            T extends boolean ? \"boolean\" :\n                T extends undefined ? \"undefined\" :\n                    T extends Function ? \"function\" :\n                        \"object\";\ntype Extracted<Struct>  = {\n\t[K in keyof Struct]: Struct[K] extends FooBar ? ExtractFooBar<Struct[K]> : Struct[K];\n\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type Diff1<T, U> = T extends U ? never : T\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n           ^\n           source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n            ^\n            source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n             ^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.type.declaration.ts\n                    ^\n                    source.ts meta.type.declaration.ts entity.name.type.ts\n                     ^\n                     source.ts meta.type.declaration.ts\n                      ^^^^^^^\n                      source.ts meta.type.declaration.ts storage.modifier.ts\n                             ^\n                             source.ts meta.type.declaration.ts\n                              ^\n                              source.ts meta.type.declaration.ts entity.name.type.ts\n                               ^\n                               source.ts meta.type.declaration.ts\n                                ^\n                                source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts\n                                  ^^^^^\n                                  source.ts meta.type.declaration.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts entity.name.type.ts\n>type TypeName<T> =\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n>    T extends string ? \"string\" :\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts entity.name.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^^^^^^^\n       source.ts meta.type.declaration.ts storage.modifier.ts\n              ^\n              source.ts meta.type.declaration.ts\n               ^^^^^^\n               source.ts meta.type.declaration.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.type.declaration.ts\n                      ^\n                      source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                       ^\n                       source.ts meta.type.declaration.ts\n                        ^\n                        source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                         ^^^^^^\n                         source.ts meta.type.declaration.ts string.quoted.double.ts\n                               ^\n                               source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                ^\n                                source.ts meta.type.declaration.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n>        T extends number ? \"number\" :\n ^^^^^^^^\n source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts entity.name.type.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^^^^^^^\n           source.ts meta.type.declaration.ts storage.modifier.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^^^^^^\n                   source.ts meta.type.declaration.ts support.type.primitive.ts\n                         ^\n                         source.ts meta.type.declaration.ts\n                          ^\n                          source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                           ^\n                           source.ts meta.type.declaration.ts\n                            ^\n                            source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                             ^^^^^^\n                             source.ts meta.type.declaration.ts string.quoted.double.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n>            T extends boolean ? \"boolean\" :\n ^^^^^^^^^^^^\n source.ts meta.type.declaration.ts\n             ^\n             source.ts meta.type.declaration.ts entity.name.type.ts\n              ^\n              source.ts meta.type.declaration.ts\n               ^^^^^^^\n               source.ts meta.type.declaration.ts storage.modifier.ts\n                      ^\n                      source.ts meta.type.declaration.ts\n                       ^^^^^^^\n                       source.ts meta.type.declaration.ts support.type.primitive.ts\n                              ^\n                              source.ts meta.type.declaration.ts\n                               ^\n                               source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                ^\n                                source.ts meta.type.declaration.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                  ^^^^^^^\n                                  source.ts meta.type.declaration.ts string.quoted.double.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n>                T extends undefined ? \"undefined\" :\n ^^^^^^^^^^^^^^^^\n source.ts meta.type.declaration.ts\n                 ^\n                 source.ts meta.type.declaration.ts entity.name.type.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^^^^^^^\n                   source.ts meta.type.declaration.ts storage.modifier.ts\n                          ^\n                          source.ts meta.type.declaration.ts\n                           ^^^^^^^^^\n                           source.ts meta.type.declaration.ts support.type.builtin.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                        ^^^^^^^^^\n                                        source.ts meta.type.declaration.ts string.quoted.double.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts\n                                                   ^\n                                                   source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n>                    T extends Function ? \"function\" :\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.type.declaration.ts\n                     ^\n                     source.ts meta.type.declaration.ts entity.name.type.ts\n                      ^\n                      source.ts meta.type.declaration.ts\n                       ^^^^^^^\n                       source.ts meta.type.declaration.ts storage.modifier.ts\n                              ^\n                              source.ts meta.type.declaration.ts\n                               ^^^^^^^^\n                               source.ts meta.type.declaration.ts entity.name.type.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                           ^^^^^^^^\n                                           source.ts meta.type.declaration.ts string.quoted.double.ts\n                                                   ^\n                                                   source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                    ^\n                                                    source.ts meta.type.declaration.ts\n                                                     ^\n                                                     source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n>                        \"object\";\n ^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.type.declaration.ts\n                         ^\n                         source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                          ^^^^^^\n                          source.ts meta.type.declaration.ts string.quoted.double.ts\n                                ^\n                                source.ts meta.type.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                 ^\n                                 source.ts punctuation.terminator.statement.ts\n>type Extracted<Struct>  = {\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                ^^^^^^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                       ^^\n                       source.ts meta.type.declaration.ts\n                         ^\n                         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                          ^\n                          source.ts meta.type.declaration.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>\t[K in keyof Struct]: Struct[K] extends FooBar ? ExtractFooBar<Struct[K]> : Struct[K];\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n  ^\n  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n   ^\n   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n    ^\n    source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n     ^^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n       ^\n       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n        ^^^^^\n        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.keyof.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n              ^^^^^^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                       ^^^^^^\n                       source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                 ^^^^^^^\n                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts storage.modifier.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                         ^^^^^^\n                                         source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.ternary.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                                  ^^^^^^^^^^^^^\n                                                  source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                                                               ^\n                                                               source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                ^^^^^^\n                                                                source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts entity.name.type.ts\n                                                                      ^\n                                                                      source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                       ^\n                                                                       source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.tuple.ts entity.name.type.ts\n                                                                        ^\n                                                                        source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                         ^\n                                                                         source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                          ^\n                                                                          source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                                                           ^\n                                                                           source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.ternary.ts\n                                                                            ^\n                                                                            source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                                                             ^^^^^^\n                                                                             source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                                                                                   ^\n                                                                                   source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                    ^\n                                                                                    source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                                                                                     ^\n                                                                                     source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                      ^\n                                                                                      source.ts meta.type.declaration.ts meta.object.type.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts\n>}\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/constType.baseline.txt",
    "content": "original file\n-----------------------------------\nlet r2 = { x: 20, y: 10 } as const;\nlet r2 = {...p} as const;\nlet p1 = { x: 10, y: 20 as const };\nlet p2 = { 10 as const, 'foo' as const };\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let r2 = { x: 20, y: 10 } as const;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n        ^\n        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n               ^^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                      ^^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                          ^\n                          source.ts meta.var.expr.ts\n                           ^^\n                           source.ts meta.var.expr.ts keyword.control.as.ts\n                             ^\n                             source.ts meta.var.expr.ts\n                              ^^^^^\n                              source.ts meta.var.expr.ts storage.modifier.ts\n                                   ^\n                                   source.ts punctuation.terminator.statement.ts\n>let r2 = {...p} as const;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n        ^\n        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n           ^^^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.spread.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^^\n                 source.ts meta.var.expr.ts keyword.control.as.ts\n                   ^\n                   source.ts meta.var.expr.ts\n                    ^^^^^\n                    source.ts meta.var.expr.ts storage.modifier.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n>let p1 = { x: 10, y: 20 as const };\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n        ^\n        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n               ^^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                      ^^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                         ^^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts keyword.control.as.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                            ^^^^^\n                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts storage.modifier.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                   ^\n                                   source.ts punctuation.terminator.statement.ts\n>let p2 = { 10 as const, 'foo' as const };\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n        ^\n        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts\n            ^^\n            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts constant.numeric.decimal.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts\n               ^^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts keyword.control.as.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                  ^^^^^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts storage.modifier.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                          ^^^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts\n                               ^^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts keyword.control.as.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                  ^^^^^\n                                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts storage.modifier.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.objectliteral.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                         ^\n                                         source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/constTypeAssert.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has type assertion\nlet r1 = <const>{ x: 10, y: 29, foo() { this.x = 20 } };\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has type assertion\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>let r1 = <const>{ x: 10, y: 29, foo() { this.x = 20 } };\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n        ^\n        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.var.expr.ts cast.expr.ts\n          ^\n          source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n           ^^^^^\n           source.ts meta.var.expr.ts cast.expr.ts storage.modifier.ts\n                ^\n                source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                      ^^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                             ^^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n                                 ^^^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n                                         ^^^^\n                                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts support.variable.property.dom.ts\n                                               ^\n                                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n                                                  ^^\n                                                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                                      ^\n                                                      source.ts meta.var.expr.ts meta.objectliteral.ts\n                                                       ^\n                                                       source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                        ^\n                                                        source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/constTypeParameter.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - this has type parameters that would be jsx in tsx files\ndeclare function f1<const T>(x: T): T;\ndeclare function f2<const T, U>(x: T | undefined): T;\ndeclare function f3<const T>(x: T): T[];\ndeclare function f4<const T>(obj: [T, T]): T;\ndeclare function f5<const T>(obj: { x: T, y: T }): T;\ndeclare function f6<const T extends readonly unknown[]>(...args: T): T;\nclass C1<const T> {\n    constructor(x: T) {}\n    foo<const U>(x: U) { return x; }\n}\nconst C2 = class <const T> {}\nconst fx1 = <const T>(x: T) => x;\nconst fx2 = <const T,>(x: T) => x;\ninterface I1<const T> { x: T }  // Error\ninterface I2 {\n    f<const T>(x: T): T;\n}\ntype T1<const T> = T;  // Error\ntype T2 = <const T>(x: T) => T;\ntype T3 = { <const T>(x: T): T };\ntype T4 = new <const T>(x: T) => T;\ntype T5 = { new <const T>(x: T): T };\nfunction set<T, const P extends readonly string[]>(obj: T, path: P, value: GetPath<T, P>) {}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - this has type parameters that would be jsx in tsx files\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>declare function f1<const T>(x: T): T;\n ^^^^^^^\n source.ts meta.function.ts storage.modifier.ts\n        ^\n        source.ts meta.function.ts\n         ^^^^^^^^\n         source.ts meta.function.ts storage.type.function.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^^\n                  source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                    ^\n                    source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                     ^^^^^\n                     source.ts meta.function.ts meta.type.parameters.ts storage.modifier.ts\n                          ^\n                          source.ts meta.function.ts meta.type.parameters.ts\n                           ^\n                           source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                            ^\n                            source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                              ^\n                              source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                  ^\n                                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                   ^\n                                   source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.function.ts meta.return.type.ts\n                                     ^\n                                     source.ts meta.function.ts meta.return.type.ts entity.name.type.ts\n                                      ^\n                                      source.ts punctuation.terminator.statement.ts\n>declare function f2<const T, U>(x: T | undefined): T;\n ^^^^^^^\n source.ts meta.function.ts storage.modifier.ts\n        ^\n        source.ts meta.function.ts\n         ^^^^^^^^\n         source.ts meta.function.ts storage.type.function.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^^\n                  source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                    ^\n                    source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                     ^^^^^\n                     source.ts meta.function.ts meta.type.parameters.ts storage.modifier.ts\n                          ^\n                          source.ts meta.function.ts meta.type.parameters.ts\n                           ^\n                           source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                            ^\n                            source.ts meta.function.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                             ^\n                             source.ts meta.function.ts meta.type.parameters.ts\n                              ^\n                              source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                               ^\n                               source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                  ^\n                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                   ^\n                                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                    ^\n                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                        ^^^^^^^^^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.builtin.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.return.type.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.return.type.ts entity.name.type.ts\n                                                     ^\n                                                     source.ts punctuation.terminator.statement.ts\n>declare function f3<const T>(x: T): T[];\n ^^^^^^^\n source.ts meta.function.ts storage.modifier.ts\n        ^\n        source.ts meta.function.ts\n         ^^^^^^^^\n         source.ts meta.function.ts storage.type.function.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^^\n                  source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                    ^\n                    source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                     ^^^^^\n                     source.ts meta.function.ts meta.type.parameters.ts storage.modifier.ts\n                          ^\n                          source.ts meta.function.ts meta.type.parameters.ts\n                           ^\n                           source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                            ^\n                            source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                              ^\n                              source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                  ^\n                                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                   ^\n                                   source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.function.ts meta.return.type.ts\n                                     ^\n                                     source.ts meta.function.ts meta.return.type.ts entity.name.type.ts\n                                      ^\n                                      source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                       ^\n                                       source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                        ^\n                                        source.ts punctuation.terminator.statement.ts\n>declare function f4<const T>(obj: [T, T]): T;\n ^^^^^^^\n source.ts meta.function.ts storage.modifier.ts\n        ^\n        source.ts meta.function.ts\n         ^^^^^^^^\n         source.ts meta.function.ts storage.type.function.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^^\n                  source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                    ^\n                    source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                     ^^^^^\n                     source.ts meta.function.ts meta.type.parameters.ts storage.modifier.ts\n                          ^\n                          source.ts meta.function.ts meta.type.parameters.ts\n                           ^\n                           source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                            ^\n                            source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                              ^^^\n                              source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                  ^\n                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                   ^\n                                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                    ^\n                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                          ^\n                                          source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                           ^\n                                           source.ts meta.function.ts meta.return.type.ts\n                                            ^\n                                            source.ts meta.function.ts meta.return.type.ts entity.name.type.ts\n                                             ^\n                                             source.ts punctuation.terminator.statement.ts\n>declare function f5<const T>(obj: { x: T, y: T }): T;\n ^^^^^^^\n source.ts meta.function.ts storage.modifier.ts\n        ^\n        source.ts meta.function.ts\n         ^^^^^^^^\n         source.ts meta.function.ts storage.type.function.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^^\n                  source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                    ^\n                    source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                     ^^^^^\n                     source.ts meta.function.ts meta.type.parameters.ts storage.modifier.ts\n                          ^\n                          source.ts meta.function.ts meta.type.parameters.ts\n                           ^\n                           source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                            ^\n                            source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                              ^^^\n                              source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                  ^\n                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                   ^\n                                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                    ^\n                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.separator.comma.ts\n                                          ^\n                                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                                           ^\n                                           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                            ^\n                                            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                             ^\n                                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                              ^\n                                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                               ^\n                                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                ^\n                                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.return.type.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.return.type.ts entity.name.type.ts\n                                                     ^\n                                                     source.ts punctuation.terminator.statement.ts\n>declare function f6<const T extends readonly unknown[]>(...args: T): T;\n ^^^^^^^\n source.ts meta.function.ts storage.modifier.ts\n        ^\n        source.ts meta.function.ts\n         ^^^^^^^^\n         source.ts meta.function.ts storage.type.function.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^^\n                  source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                    ^\n                    source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                     ^^^^^\n                     source.ts meta.function.ts meta.type.parameters.ts storage.modifier.ts\n                          ^\n                          source.ts meta.function.ts meta.type.parameters.ts\n                           ^\n                           source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                            ^\n                            source.ts meta.function.ts meta.type.parameters.ts\n                             ^^^^^^^\n                             source.ts meta.function.ts meta.type.parameters.ts storage.modifier.ts\n                                    ^\n                                    source.ts meta.function.ts meta.type.parameters.ts\n                                     ^^^^^^^^\n                                     source.ts meta.function.ts meta.type.parameters.ts storage.modifier.ts\n                                             ^\n                                             source.ts meta.function.ts meta.type.parameters.ts\n                                              ^^^^^^^\n                                              source.ts meta.function.ts meta.type.parameters.ts support.type.primitive.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                         ^^^\n                                                         source.ts meta.function.ts meta.parameters.ts keyword.operator.rest.ts\n                                                            ^^^^\n                                                            source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.return.type.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.return.type.ts entity.name.type.ts\n                                                                       ^\n                                                                       source.ts punctuation.terminator.statement.ts\n>class C1<const T> {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^\n       source.ts meta.class.ts entity.name.type.class.ts\n         ^\n         source.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n          ^^^^^\n          source.ts meta.class.ts meta.type.parameters.ts storage.modifier.ts\n               ^\n               source.ts meta.class.ts meta.type.parameters.ts\n                ^\n                source.ts meta.class.ts meta.type.parameters.ts entity.name.type.ts\n                 ^\n                 source.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                  ^\n                  source.ts meta.class.ts\n                   ^\n                   source.ts meta.class.ts punctuation.definition.block.ts\n>    constructor(x: T) {}\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    foo<const U>(x: U) { return x; }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n         ^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.type.parameters.ts storage.modifier.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.type.parameters.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                          ^^^^^^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>const C2 = class <const T> {}\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^^^^^\n            source.ts meta.var.expr.ts meta.class.ts storage.type.class.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.class.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                   ^^^^^\n                   source.ts meta.var.expr.ts meta.class.ts meta.type.parameters.ts storage.modifier.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.class.ts meta.type.parameters.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.class.ts meta.type.parameters.ts entity.name.type.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.class.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.class.ts punctuation.definition.block.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.class.ts punctuation.definition.block.ts\n>const fx1 = <const T>(x: T) => x;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n              ^^^^^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts storage.modifier.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts entity.name.type.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts\n                             ^^\n                             source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.arrow.ts\n                                ^\n                                source.ts meta.var.expr.ts variable.other.readwrite.ts\n                                 ^\n                                 source.ts punctuation.terminator.statement.ts\n>const fx2 = <const T,>(x: T) => x;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n              ^^^^^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts storage.modifier.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts entity.name.type.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.arrow.ts\n                              ^^\n                              source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.arrow.ts\n                                 ^\n                                 source.ts meta.var.expr.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts punctuation.terminator.statement.ts\n>interface I1<const T> { x: T }  // Error\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n             ^\n             source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n              ^^^^^\n              source.ts meta.interface.ts meta.type.parameters.ts storage.modifier.ts\n                   ^\n                   source.ts meta.interface.ts meta.type.parameters.ts\n                    ^\n                    source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                     ^\n                     source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                      ^\n                      source.ts meta.interface.ts\n                       ^\n                       source.ts meta.interface.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.interface.ts meta.field.declaration.ts\n                         ^\n                         source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                          ^\n                          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                           ^\n                           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                            ^\n                            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                             ^\n                             source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                              ^\n                              source.ts meta.interface.ts punctuation.definition.block.ts\n                               ^^\n                               source.ts\n                                 ^^\n                                 source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                   ^^^^^^\n                                   source.ts comment.line.double-slash.ts\n>interface I2 {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n             ^\n             source.ts meta.interface.ts\n              ^\n              source.ts meta.interface.ts punctuation.definition.block.ts\n>    f<const T>(x: T): T;\n ^^^^\n source.ts meta.interface.ts meta.method.declaration.ts\n     ^\n     source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n      ^\n      source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n       ^^^^^\n       source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts storage.modifier.ts\n            ^\n            source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts\n             ^\n             source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts entity.name.type.ts\n              ^\n              source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n               ^\n               source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                 ^\n                 source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                  ^\n                  source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                   ^\n                   source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                    ^\n                    source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                     ^\n                     source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n                       ^\n                       source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n                        ^\n                        source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>type T1<const T> = T;  // Error\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n         ^^^^^\n         source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.type.declaration.ts\n                    ^\n                    source.ts meta.type.declaration.ts entity.name.type.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n                      ^^\n                      source.ts\n                        ^^\n                        source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                          ^^^^^^\n                          source.ts comment.line.double-slash.ts\n>type T2 = <const T>(x: T) => T;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n            ^^^^^\n            source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                          ^\n                          source.ts meta.type.declaration.ts\n                           ^^\n                           source.ts meta.type.declaration.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.function.return.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.function.return.ts entity.name.type.ts\n                               ^\n                               source.ts punctuation.terminator.statement.ts\n>type T3 = { <const T>(x: T): T };\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n              ^^^^^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.type.parameters.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                                 ^\n                                 source.ts punctuation.terminator.statement.ts\n>type T4 = new <const T>(x: T) => T;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^^^\n           source.ts meta.type.declaration.ts meta.type.constructor.ts keyword.control.new.ts\n              ^\n              source.ts meta.type.declaration.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                ^^^^^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                              ^\n                              source.ts meta.type.declaration.ts\n                               ^^\n                               source.ts meta.type.declaration.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.function.return.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.function.return.ts entity.name.type.ts\n                                   ^\n                                   source.ts punctuation.terminator.statement.ts\n>type T5 = { new <const T>(x: T): T };\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts\n             ^^^\n             source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts keyword.operator.new.ts\n                ^\n                source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                  ^^^^^\n                  source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.type.parameters.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                                     ^\n                                     source.ts punctuation.terminator.statement.ts\n>function set<T, const P extends readonly string[]>(obj: T, path: P, value: GetPath<T, P>) {}\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n               ^\n               source.ts meta.function.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                ^\n                source.ts meta.function.ts meta.type.parameters.ts\n                 ^^^^^\n                 source.ts meta.function.ts meta.type.parameters.ts storage.modifier.ts\n                      ^\n                      source.ts meta.function.ts meta.type.parameters.ts\n                       ^\n                       source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                        ^\n                        source.ts meta.function.ts meta.type.parameters.ts\n                         ^^^^^^^\n                         source.ts meta.function.ts meta.type.parameters.ts storage.modifier.ts\n                                ^\n                                source.ts meta.function.ts meta.type.parameters.ts\n                                 ^^^^^^^^\n                                 source.ts meta.function.ts meta.type.parameters.ts storage.modifier.ts\n                                         ^\n                                         source.ts meta.function.ts meta.type.parameters.ts\n                                          ^^^^^^\n                                          source.ts meta.function.ts meta.type.parameters.ts support.type.primitive.ts\n                                                ^\n                                                source.ts meta.function.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                    ^^^\n                                                    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.parameters.ts\n                                                            ^^^^\n                                                            source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.parameters.ts\n                                                                     ^^^^^\n                                                                     source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                           ^\n                                                                           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                                            ^^^^^^^\n                                                                            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                                                   ^\n                                                                                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                                    ^\n                                                                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts entity.name.type.ts\n                                                                                     ^\n                                                                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                                                                      ^\n                                                                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts\n                                                                                       ^\n                                                                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts entity.name.type.ts\n                                                                                        ^\n                                                                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                                         ^\n                                                                                         source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                                          ^\n                                                                                          source.ts meta.function.ts\n                                                                                           ^\n                                                                                           source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                                                            ^\n                                                                                            source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/constants.baseline.txt",
    "content": "original file\n-----------------------------------\nvar x = true;\nvar y = false;\nvar a = undefined;\nvar b = NaN;\nvar c = +Infinity;\nvar d = -Infinity;\nvar e = Infinity;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var x = true;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^\n         source.ts meta.var.expr.ts constant.language.boolean.true.ts\n             ^\n             source.ts punctuation.terminator.statement.ts\n>var y = false;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^\n         source.ts meta.var.expr.ts constant.language.boolean.false.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>var a = undefined;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^^^^^\n         source.ts meta.var.expr.ts constant.language.undefined.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n>var b = NaN;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^\n         source.ts meta.var.expr.ts constant.language.nan.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>var c = +Infinity;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n          ^^^^^^^^\n          source.ts meta.var.expr.ts constant.language.infinity.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n>var d = -Infinity;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.arithmetic.ts\n          ^^^^^^^^\n          source.ts meta.var.expr.ts constant.language.infinity.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n>var e = Infinity;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^^^^\n         source.ts meta.var.expr.ts constant.language.infinity.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/constructorType.baseline.txt",
    "content": "original file\n-----------------------------------\ntype constructorType<T> = new <T>(a: T) => T;\ntype abstractConstructorType<T> = abstract new <T>(a: T) => T;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type constructorType<T> = new <T>(a: T) => T;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                        ^\n                        source.ts meta.type.declaration.ts\n                         ^\n                         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                          ^\n                          source.ts meta.type.declaration.ts\n                           ^^^\n                           source.ts meta.type.declaration.ts meta.type.constructor.ts keyword.control.new.ts\n                              ^\n                              source.ts meta.type.declaration.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts\n                                         ^^\n                                         source.ts meta.type.declaration.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts meta.type.function.return.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts meta.type.function.return.ts entity.name.type.ts\n                                             ^\n                                             source.ts punctuation.terminator.statement.ts\n>type abstractConstructorType<T> = abstract new <T>(a: T) => T;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^^^^^^^^^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                ^\n                                source.ts meta.type.declaration.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts\n                                   ^^^^^^^^\n                                   source.ts meta.type.declaration.ts meta.type.constructor.ts storage.modifier.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts\n                                            ^^^\n                                            source.ts meta.type.declaration.ts meta.type.constructor.ts keyword.control.new.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                   ^\n                                                   source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                    ^\n                                                    source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                                     ^\n                                                     source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                      ^\n                                                      source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                       ^\n                                                       source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                        ^\n                                                        source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                         ^\n                                                         source.ts meta.type.declaration.ts\n                                                          ^^\n                                                          source.ts meta.type.declaration.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                            ^\n                                                            source.ts meta.type.declaration.ts meta.type.function.return.ts\n                                                             ^\n                                                             source.ts meta.type.declaration.ts meta.type.function.return.ts entity.name.type.ts\n                                                              ^\n                                                              source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/destructuringWithDefaults.baseline.txt",
    "content": "original file\n-----------------------------------\ninterface IOptions {\n    check: boolean;\n    files: string;\n    primary: string;\n}\nvar {\n    check: isReportMode = false,\n    files = '**/locals/*.json',\n    primary: primaryLanguage = 'en'\n}: IOptions = null;\nfunction sync({\n    check: isReportMode = false,\n    files = '**/locals/*.json',\n    primary: primaryLanguage = 'en'\n}: IOptions) {\n}\n\nvar [\n    check2 = false,\n    files2 = '**/locals/*.json',\n    primary2 = 'en'\n] = [];\nfunction sync2([\n    check2 = false,\n    files2 = '**/locals/*.json',\n    primary2 = 'en'\n]) {\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>interface IOptions {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^^^^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n                   ^\n                   source.ts meta.interface.ts\n                    ^\n                    source.ts meta.interface.ts punctuation.definition.block.ts\n>    check: boolean;\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n            ^^^^^^^\n            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                   ^\n                   source.ts meta.interface.ts punctuation.terminator.statement.ts\n>    files: string;\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n            ^^^^^^\n            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.interface.ts punctuation.terminator.statement.ts\n>    primary: string;\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n             ^\n             source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n              ^^^^^^\n              source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                    ^\n                    source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>var {\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n>    check: isReportMode = false,\n ^^^^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts variable.object.property.ts\n          ^\n          source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.destructuring.ts\n           ^\n           source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n            ^^^^^^^^^^^^\n            source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts keyword.operator.assignment.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                           ^^^^^\n                           source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts constant.language.boolean.false.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n>    files = '**/locals/*.json',\n ^^^^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n           ^\n           source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n             ^\n             source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n              ^^^^^^^^^^^^^^^^\n              source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts string.quoted.single.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n>    primary: primaryLanguage = 'en'\n ^^^^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n     ^^^^^^^\n     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts variable.object.property.ts\n            ^\n            source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.destructuring.ts\n             ^\n             source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n              ^^^^^^^^^^^^^^^\n              source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts keyword.operator.assignment.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                 ^^\n                                 source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts string.quoted.single.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>}: IOptions = null;\n ^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n  ^\n  source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n   ^\n   source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts\n    ^^^^^^^^\n    source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts entity.name.type.ts\n            ^\n            source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^^^^\n               source.ts meta.var.expr.ts constant.language.null.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>function sync({\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n>    check: isReportMode = false,\n ^^^^\n source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n     ^^^^^\n     source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n          ^\n          source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n            ^^^^^^^^^^^^\n            source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts keyword.operator.assignment.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                           ^^^^^\n                           source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts constant.language.boolean.false.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n>    files = '**/locals/*.json',\n ^^^^\n source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n     ^^^^^\n     source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n          ^\n          source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n              ^^^^^^^^^^^^^^^^\n              source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts string.quoted.single.ts\n                              ^\n                              source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n>    primary: primaryLanguage = 'en'\n ^^^^\n source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n     ^^^^^^^\n     source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n              ^^^^^^^^^^^^^^^\n              source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                              ^\n                              source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts keyword.operator.assignment.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                 ^^\n                                 source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts string.quoted.single.ts\n                                   ^\n                                   source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>}: IOptions) {\n ^\n source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n  ^\n  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n   ^\n   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n    ^^^^^^^^\n    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.function.ts\n              ^\n              source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>var [\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n>    check2 = false,\n ^^^^\n source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n            ^\n            source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n              ^^^^^\n              source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts constant.language.boolean.false.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.separator.comma.ts\n>    files2 = '**/locals/*.json',\n ^^^^\n source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n            ^\n            source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n              ^\n              source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n               ^^^^^^^^^^^^^^^^\n               source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts string.quoted.single.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.separator.comma.ts\n>    primary2 = 'en'\n ^^^^\n source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n     ^^^^^^^^\n     source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n              ^\n              source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n                ^\n                source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                 ^^\n                 source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts string.quoted.single.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>] = [];\n ^\n source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n  ^\n  source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n   ^\n   source.ts meta.var.expr.ts keyword.operator.assignment.ts\n    ^\n    source.ts meta.var.expr.ts meta.array.literal.ts\n     ^\n     source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n      ^\n      source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n       ^\n       source.ts punctuation.terminator.statement.ts\n>function sync2([\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n>    check2 = false,\n ^^^^\n source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts variable.parameter.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n              ^^^^^\n              source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts constant.language.boolean.false.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.separator.comma.ts\n>    files2 = '**/locals/*.json',\n ^^^^\n source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts variable.parameter.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n               ^^^^^^^^^^^^^^^^\n               source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts string.quoted.single.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.separator.comma.ts\n>    primary2 = 'en'\n ^^^^\n source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n     ^^^^^^^^\n     source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts variable.parameter.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                 ^^\n                 source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts string.quoted.single.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>]) {\n ^\n source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n  ^\n  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n   ^\n   source.ts meta.function.ts\n    ^\n    source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/directives.baseline.txt",
    "content": "original file\n-----------------------------------\n///<reference path=\"somePath.ts\"/>\n///<reference lib=\"es2015\"/>\n///<amd-dependency path=\"somePath.ts\"/>\n///<amd-module name=\"modulename\"/>\n///<amd-dependency path=\"someOtherPath.ts\" name=\"someOtherModule\"/>\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>///<reference path=\"somePath.ts\"/>\n ^^^\n source.ts comment.line.triple-slash.directive.ts punctuation.definition.comment.ts\n    ^\n    source.ts comment.line.triple-slash.directive.ts meta.tag.ts punctuation.definition.tag.directive.ts\n     ^^^^^^^^^\n     source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.name.tag.directive.ts\n              ^\n              source.ts comment.line.triple-slash.directive.ts meta.tag.ts\n               ^^^^\n               source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.other.attribute-name.directive.ts\n                   ^\n                   source.ts comment.line.triple-slash.directive.ts meta.tag.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                     ^^^^^^^^^^^\n                     source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts\n                                ^\n                                source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                 ^^\n                                 source.ts comment.line.triple-slash.directive.ts meta.tag.ts punctuation.definition.tag.directive.ts\n>///<reference lib=\"es2015\"/>\n ^^^\n source.ts comment.line.triple-slash.directive.ts punctuation.definition.comment.ts\n    ^\n    source.ts comment.line.triple-slash.directive.ts meta.tag.ts punctuation.definition.tag.directive.ts\n     ^^^^^^^^^\n     source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.name.tag.directive.ts\n              ^\n              source.ts comment.line.triple-slash.directive.ts meta.tag.ts\n               ^^^\n               source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.other.attribute-name.directive.ts\n                  ^\n                  source.ts comment.line.triple-slash.directive.ts meta.tag.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                    ^^^^^^\n                    source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts\n                          ^\n                          source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                           ^^\n                           source.ts comment.line.triple-slash.directive.ts meta.tag.ts punctuation.definition.tag.directive.ts\n>///<amd-dependency path=\"somePath.ts\"/>\n ^^^\n source.ts comment.line.triple-slash.directive.ts punctuation.definition.comment.ts\n    ^\n    source.ts comment.line.triple-slash.directive.ts meta.tag.ts punctuation.definition.tag.directive.ts\n     ^^^^^^^^^^^^^^\n     source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.name.tag.directive.ts\n                   ^\n                   source.ts comment.line.triple-slash.directive.ts meta.tag.ts\n                    ^^^^\n                    source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.other.attribute-name.directive.ts\n                        ^\n                        source.ts comment.line.triple-slash.directive.ts meta.tag.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                          ^^^^^^^^^^^\n                          source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts\n                                     ^\n                                     source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                      ^^\n                                      source.ts comment.line.triple-slash.directive.ts meta.tag.ts punctuation.definition.tag.directive.ts\n>///<amd-module name=\"modulename\"/>\n ^^^\n source.ts comment.line.triple-slash.directive.ts punctuation.definition.comment.ts\n    ^\n    source.ts comment.line.triple-slash.directive.ts meta.tag.ts punctuation.definition.tag.directive.ts\n     ^^^^^^^^^^\n     source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.name.tag.directive.ts\n               ^\n               source.ts comment.line.triple-slash.directive.ts meta.tag.ts\n                ^^^^\n                source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.other.attribute-name.directive.ts\n                    ^\n                    source.ts comment.line.triple-slash.directive.ts meta.tag.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                      ^^^^^^^^^^\n                      source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts\n                                ^\n                                source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                 ^^\n                                 source.ts comment.line.triple-slash.directive.ts meta.tag.ts punctuation.definition.tag.directive.ts\n>///<amd-dependency path=\"someOtherPath.ts\" name=\"someOtherModule\"/>\n ^^^\n source.ts comment.line.triple-slash.directive.ts punctuation.definition.comment.ts\n    ^\n    source.ts comment.line.triple-slash.directive.ts meta.tag.ts punctuation.definition.tag.directive.ts\n     ^^^^^^^^^^^^^^\n     source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.name.tag.directive.ts\n                   ^\n                   source.ts comment.line.triple-slash.directive.ts meta.tag.ts\n                    ^^^^\n                    source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.other.attribute-name.directive.ts\n                        ^\n                        source.ts comment.line.triple-slash.directive.ts meta.tag.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                          ^^^^^^^^^^^^^^^^\n                          source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts\n                                          ^\n                                          source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                           ^\n                                           source.ts comment.line.triple-slash.directive.ts meta.tag.ts\n                                            ^^^^\n                                            source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.other.attribute-name.directive.ts\n                                                ^\n                                                source.ts comment.line.triple-slash.directive.ts meta.tag.ts keyword.operator.assignment.ts\n                                                 ^\n                                                 source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                  ^^^^^^^^^^^^^^^\n                                                  source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts\n                                                                 ^\n                                                                 source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                  ^^\n                                                                  source.ts comment.line.triple-slash.directive.ts meta.tag.ts punctuation.definition.tag.directive.ts"
  },
  {
    "path": "tests/baselines/docComments.baseline.txt",
    "content": "original file\n-----------------------------------\n/**\n * This function takes two parameters\n * @param {string} param1 Some string param.\n * @param {number} param2  Some number param.\n * some other contents\n */\nfunction foo(param1: string, param2: number) {\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/**\n ^^^\n source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n> * This function takes two parameters\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.documentation.ts\n> * @param {string} param1 Some string param.\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n          ^\n          source.ts comment.block.documentation.ts\n           ^\n           source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n            ^^^^^^\n            source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                  ^\n                  source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                   ^\n                   source.ts comment.block.documentation.ts\n                    ^^^^^^\n                    source.ts comment.block.documentation.ts variable.other.jsdoc\n                          ^^^^^^^^^^^^^^^^^^^^\n                          source.ts comment.block.documentation.ts\n> * @param {number} param2  Some number param.\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n          ^\n          source.ts comment.block.documentation.ts\n           ^\n           source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n            ^^^^^^\n            source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                  ^\n                  source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                   ^\n                   source.ts comment.block.documentation.ts\n                    ^^^^^^\n                    source.ts comment.block.documentation.ts variable.other.jsdoc\n                          ^^^^^^^^^^^^^^^^^^^^^\n                          source.ts comment.block.documentation.ts\n> * some other contents\n ^^^^^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.documentation.ts\n> */\n ^\n source.ts comment.block.documentation.ts\n  ^^\n  source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>function foo(param1: string, param2: number) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^^^^^^\n              source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                      ^^^^^^\n                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts\n                              ^^^^^^\n                              source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                    ^\n                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                      ^^^^^^\n                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                            ^\n                                            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                             ^\n                                             source.ts meta.function.ts\n                                              ^\n                                              source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/enumMemberWithIntializer.baseline.txt",
    "content": "original file\n-----------------------------------\nexport enum Foo {\n        A = 1 << 1,\n        B = 1 << 2,\n    }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export enum Foo {\n ^^^^^^\n source.ts meta.enum.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.enum.declaration.ts\n        ^^^^\n        source.ts meta.enum.declaration.ts storage.type.enum.ts\n            ^\n            source.ts meta.enum.declaration.ts\n             ^^^\n             source.ts meta.enum.declaration.ts entity.name.type.enum.ts\n                ^\n                source.ts meta.enum.declaration.ts\n                 ^\n                 source.ts meta.enum.declaration.ts punctuation.definition.block.ts\n>        A = 1 << 1,\n ^^^^^^^^\n source.ts meta.enum.declaration.ts\n         ^\n         source.ts meta.enum.declaration.ts variable.other.enummember.ts\n          ^\n          source.ts meta.enum.declaration.ts\n           ^\n           source.ts meta.enum.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.enum.declaration.ts\n             ^\n             source.ts meta.enum.declaration.ts constant.numeric.decimal.ts\n              ^\n              source.ts meta.enum.declaration.ts\n               ^^\n               source.ts meta.enum.declaration.ts keyword.operator.bitwise.shift.ts\n                 ^\n                 source.ts meta.enum.declaration.ts\n                  ^\n                  source.ts meta.enum.declaration.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>        B = 1 << 2,\n ^^^^^^^^\n source.ts meta.enum.declaration.ts\n         ^\n         source.ts meta.enum.declaration.ts variable.other.enummember.ts\n          ^\n          source.ts meta.enum.declaration.ts\n           ^\n           source.ts meta.enum.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.enum.declaration.ts\n             ^\n             source.ts meta.enum.declaration.ts constant.numeric.decimal.ts\n              ^\n              source.ts meta.enum.declaration.ts\n               ^^\n               source.ts meta.enum.declaration.ts keyword.operator.bitwise.shift.ts\n                 ^\n                 source.ts meta.enum.declaration.ts\n                  ^\n                  source.ts meta.enum.declaration.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>    }\n ^^^^\n source.ts meta.enum.declaration.ts\n     ^\n     source.ts meta.enum.declaration.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/enumMemberWithQuotedMemberName.baseline.txt",
    "content": "original file\n-----------------------------------\nenum E1 {\n   \"foo\",\n   'foo2'\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>enum E1 {\n ^^^^\n source.ts meta.enum.declaration.ts storage.type.enum.ts\n     ^\n     source.ts meta.enum.declaration.ts\n      ^^\n      source.ts meta.enum.declaration.ts entity.name.type.enum.ts\n        ^\n        source.ts meta.enum.declaration.ts\n         ^\n         source.ts meta.enum.declaration.ts punctuation.definition.block.ts\n>   \"foo\",\n ^^^\n source.ts meta.enum.declaration.ts\n    ^\n    source.ts meta.enum.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n     ^^^\n     source.ts meta.enum.declaration.ts string.quoted.double.ts\n        ^\n        source.ts meta.enum.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n         ^\n         source.ts meta.enum.declaration.ts punctuation.separator.comma.ts\n>   'foo2'\n ^^^\n source.ts meta.enum.declaration.ts\n    ^\n    source.ts meta.enum.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n     ^^^^\n     source.ts meta.enum.declaration.ts string.quoted.single.ts\n         ^\n         source.ts meta.enum.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>}\n ^\n source.ts meta.enum.declaration.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/exportDeclarations.baseline.txt",
    "content": "original file\n-----------------------------------\nexport { a as b, x };\nexport * from \"AnotherModule\";\nexport { k as m, l } from \"AnotherModule\";\nexport type { T };\nexport type { U } from \"AnotherModule\";\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export { a as b, x };\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^\n          source.ts meta.export.ts meta.block.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.export.ts meta.block.ts\n            ^^\n            source.ts meta.export.ts meta.block.ts keyword.control.as.ts\n              ^\n              source.ts meta.export.ts meta.block.ts\n               ^\n               source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n                ^\n                source.ts meta.export.ts meta.block.ts punctuation.separator.comma.ts\n                 ^\n                 source.ts meta.export.ts meta.block.ts\n                  ^\n                  source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n                   ^\n                   source.ts meta.export.ts meta.block.ts\n                    ^\n                    source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n>export * from \"AnotherModule\";\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts constant.language.import-export-all.ts\n         ^\n         source.ts meta.export.ts\n          ^^^^\n          source.ts meta.export.ts keyword.control.from.ts\n              ^\n              source.ts meta.export.ts\n               ^\n               source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                ^^^^^^^^^^^^^\n                source.ts meta.export.ts string.quoted.double.ts\n                             ^\n                             source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts\n>export { k as m, l } from \"AnotherModule\";\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^\n          source.ts meta.export.ts meta.block.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.export.ts meta.block.ts\n            ^^\n            source.ts meta.export.ts meta.block.ts keyword.control.as.ts\n              ^\n              source.ts meta.export.ts meta.block.ts\n               ^\n               source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n                ^\n                source.ts meta.export.ts meta.block.ts punctuation.separator.comma.ts\n                 ^\n                 source.ts meta.export.ts meta.block.ts\n                  ^\n                  source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n                   ^\n                   source.ts meta.export.ts meta.block.ts\n                    ^\n                    source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.export.ts\n                      ^^^^\n                      source.ts meta.export.ts keyword.control.from.ts\n                          ^\n                          source.ts meta.export.ts\n                           ^\n                           source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                            ^^^^^^^^^^^^^\n                            source.ts meta.export.ts string.quoted.double.ts\n                                         ^\n                                         source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                          ^\n                                          source.ts punctuation.terminator.statement.ts\n>export type { T };\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^^^^\n        source.ts meta.export.ts keyword.control.type.ts\n            ^\n            source.ts meta.export.ts\n             ^\n             source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.export.ts meta.block.ts\n               ^\n               source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n                ^\n                source.ts meta.export.ts meta.block.ts\n                 ^\n                 source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n>export type { U } from \"AnotherModule\";\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^^^^\n        source.ts meta.export.ts keyword.control.type.ts\n            ^\n            source.ts meta.export.ts\n             ^\n             source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.export.ts meta.block.ts\n               ^\n               source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n                ^\n                source.ts meta.export.ts meta.block.ts\n                 ^\n                 source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.export.ts\n                   ^^^^\n                   source.ts meta.export.ts keyword.control.from.ts\n                       ^\n                       source.ts meta.export.ts\n                        ^\n                        source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                         ^^^^^^^^^^^^^\n                         source.ts meta.export.ts string.quoted.double.ts\n                                      ^\n                                      source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                       ^\n                                       source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/forof.baseline.txt",
    "content": "original file\n-----------------------------------\nfor (const x of y) {}\nfor await (const x of y) {}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>for (const x of y) {}\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^\n      source.ts meta.var.expr.ts storage.type.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^^\n              source.ts keyword.operator.expression.of.ts\n                ^\n                source.ts\n                 ^\n                 source.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.brace.round.ts\n                   ^\n                   source.ts\n                    ^\n                    source.ts meta.block.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.block.ts punctuation.definition.block.ts\n>for await (const x of y) {}\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^^^^^\n     source.ts keyword.control.loop.ts\n          ^\n          source.ts\n           ^\n           source.ts meta.brace.round.ts\n            ^^^^^\n            source.ts meta.var.expr.ts storage.type.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^^\n                    source.ts keyword.operator.expression.of.ts\n                      ^\n                      source.ts\n                       ^\n                       source.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.brace.round.ts\n                         ^\n                         source.ts\n                          ^\n                          source.ts meta.block.ts punctuation.definition.block.ts\n                           ^\n                           source.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/generator.baseline.txt",
    "content": "original file\n-----------------------------------\nmodule M {\n    function* f(s: string): Iterable<any>\n    function* f(s: number): Iterable<any>\n    function* f(s: any): Iterable<any> { }\n}\n\nconst a = 10, b = 10;\nclass c {\n    *method() {\n    }\n    *[a*b]() {\n    }\n    *'some*string'() {\n    }\n    * overload(s: string): string\n    * overload(n: number): number\n    * overload<T extends (string | number)>(sn: T): T {\n        return sn;\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>module M {\n ^^^^^^\n source.ts meta.namespace.declaration.ts storage.type.namespace.ts\n       ^\n       source.ts meta.namespace.declaration.ts\n        ^\n        source.ts meta.namespace.declaration.ts entity.name.type.module.ts\n         ^\n         source.ts meta.namespace.declaration.ts\n          ^\n          source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    function* f(s: string): Iterable<any>\n ^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts\n     ^^^^^^^^\n     source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts storage.type.function.ts\n             ^\n             source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts keyword.generator.asterisk.ts\n              ^\n              source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts\n               ^\n               source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                ^\n                source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                  ^\n                  source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                    ^^^^^^\n                    source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                           ^\n                           source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                            ^\n                            source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts\n                             ^^^^^^^^\n                             source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts entity.name.type.ts\n                                     ^\n                                     source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                      ^^^\n                                      source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts support.type.primitive.ts\n                                         ^\n                                         source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n>    function* f(s: number): Iterable<any>\n ^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts\n     ^^^^^^^^\n     source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts storage.type.function.ts\n             ^\n             source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts keyword.generator.asterisk.ts\n              ^\n              source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts\n               ^\n               source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                ^\n                source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                  ^\n                  source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                    ^^^^^^\n                    source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                           ^\n                           source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                            ^\n                            source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts\n                             ^^^^^^^^\n                             source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts entity.name.type.ts\n                                     ^\n                                     source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                      ^^^\n                                      source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts support.type.primitive.ts\n                                         ^\n                                         source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n>    function* f(s: any): Iterable<any> { }\n ^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts\n     ^^^^^^^^\n     source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts storage.type.function.ts\n             ^\n             source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts keyword.generator.asterisk.ts\n              ^\n              source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts\n               ^\n               source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                ^\n                source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                  ^\n                  source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                    ^^^\n                    source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                        ^\n                        source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                         ^\n                         source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts\n                          ^^^^^^^^\n                          source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts entity.name.type.ts\n                                  ^\n                                  source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                   ^^^\n                                   source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts support.type.primitive.ts\n                                      ^\n                                      source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                       ^\n                                       source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.return.type.ts\n                                        ^\n                                        source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                         ^\n                                         source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.block.ts\n                                          ^\n                                          source.ts meta.namespace.declaration.ts meta.block.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>const a = 10, b = 10;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^^\n           source.ts meta.var.expr.ts constant.numeric.decimal.ts\n             ^\n             source.ts meta.var.expr.ts punctuation.separator.comma.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^^\n                   source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n>class c {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>    *method() {\n ^^^^\n source.ts meta.class.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts keyword.generator.asterisk.ts\n      ^^^^^^\n      source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    *[a*b]() {\n ^^^^\n source.ts meta.class.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts keyword.generator.asterisk.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts keyword.operator.arithmetic.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    *'some*string'() {\n ^^^^\n source.ts meta.class.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts keyword.generator.asterisk.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n       ^^^^^^^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts string.quoted.single.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    * overload(s: string): string\n ^^^^\n source.ts meta.class.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts keyword.generator.asterisk.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts\n       ^^^^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                            ^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n>    * overload(n: number): number\n ^^^^\n source.ts meta.class.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts keyword.generator.asterisk.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts\n       ^^^^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                            ^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n>    * overload<T extends (string | number)>(sn: T): T {\n ^^^^\n source.ts meta.class.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts keyword.generator.asterisk.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts\n       ^^^^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.type.parameters.ts\n                  ^^^^^^^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.type.parameters.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.paren.cover.ts meta.brace.round.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.paren.cover.ts support.type.primitive.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.paren.cover.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.paren.cover.ts keyword.operator.type.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.paren.cover.ts\n                                    ^^^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.paren.cover.ts support.type.primitive.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.type.parameters.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                             ^^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                 ^\n                                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                  ^\n                                                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                    ^\n                                                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                     ^\n                                                     source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n                                                      ^\n                                                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                                                       ^\n                                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        return sn;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                ^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/genericTaggedTemplate.baseline.txt",
    "content": "original file\n-----------------------------------\nlet a = tag<string | number> `${100} ${\"hello\"}`;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let a = tag<string | number> `${100} ${\"hello\"}`;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^\n         source.ts meta.var.expr.ts entity.name.function.tagged-template.ts\n            ^\n            source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n             ^^^^^^\n             source.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.type.parameters.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.type.parameters.ts keyword.operator.type.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.type.parameters.ts\n                      ^^^^^^\n                      source.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                             ^\n                             source.ts meta.var.expr.ts\n                              ^\n                              source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts\n                               ^^\n                               source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                 ^^^\n                                 source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts constant.numeric.decimal.ts\n                                    ^\n                                    source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                     ^\n                                     source.ts meta.var.expr.ts string.template.ts\n                                      ^^\n                                      source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                        ^\n                                        source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                         ^^^^^\n                                         source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.double.ts\n                                              ^\n                                              source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                               ^\n                                               source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                ^\n                                                source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                 ^\n                                                 source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/importAssert.baseline.txt",
    "content": "original file\n-----------------------------------\nimport './0' assert { type: \"json\" }\nimport { a, b } from './0' assert { \"type\": \"json\" }\nimport * as foo from './0' assert { type: \"json\" }\nimport { a, b } from './0' assert {}\nimport { a as c, b as d } from './0' assert { a: \"a\", b: \"b\", c: \"c\" }\nexport {} from './0' assert { type: \"json\" }\nexport { a, b } from './0' assert { type: \"json\" }\nexport * from './0' assert { type: \"json\" }\nexport * as ns from './0' assert { type: \"json\" }\nexport { a, b } from './0' assert {}\nexport { a as c, b as d } from './0' assert { a: \"a\", b: \"b\", c: \"c\" }\nexport type {} from './0' assert { type: \"json\" }\nexport type { I } from './0' assert { type: \"json\" }\nimport type { I } from './0'  assert { type: \"json\" }\nimport type * as foo from './0' assert { type: \"json\" }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>import './0' assert { type: \"json\" }\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n         ^^^\n         source.ts meta.import.ts string.quoted.single.ts\n            ^\n            source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.end.ts\n             ^\n             source.ts meta.import.ts\n              ^^^^^^\n              source.ts meta.import.ts keyword.control.assert.ts\n                    ^\n                    source.ts meta.import.ts\n                     ^\n                     source.ts meta.import.ts punctuation.definition.block.ts\n                      ^\n                      source.ts meta.import.ts\n                       ^^^^\n                       source.ts meta.import.ts meta.object-literal.key.ts\n                           ^\n                           source.ts meta.import.ts punctuation.separator.key-value.ts\n                            ^\n                            source.ts meta.import.ts\n                             ^\n                             source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                              ^^^^\n                              source.ts meta.import.ts string.quoted.double.ts\n                                  ^\n                                  source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                   ^\n                                   source.ts meta.import.ts\n                                    ^\n                                    source.ts meta.import.ts punctuation.definition.block.ts\n>import { a, b } from './0' assert { \"type\": \"json\" }\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.import.ts meta.block.ts\n          ^\n          source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n           ^\n           source.ts meta.import.ts meta.block.ts punctuation.separator.comma.ts\n            ^\n            source.ts meta.import.ts meta.block.ts\n             ^\n             source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n              ^\n              source.ts meta.import.ts meta.block.ts\n               ^\n               source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                ^\n                source.ts meta.import.ts\n                 ^^^^\n                 source.ts meta.import.ts keyword.control.from.ts\n                     ^\n                     source.ts meta.import.ts\n                      ^\n                      source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                       ^^^\n                       source.ts meta.import.ts string.quoted.single.ts\n                          ^\n                          source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                           ^\n                           source.ts meta.import.ts\n                            ^^^^^^\n                            source.ts meta.import.ts keyword.control.assert.ts\n                                  ^\n                                  source.ts meta.import.ts\n                                   ^\n                                   source.ts meta.import.ts punctuation.definition.block.ts\n                                    ^\n                                    source.ts meta.import.ts\n                                     ^\n                                     source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                      ^^^^\n                                      source.ts meta.import.ts string.quoted.double.ts\n                                          ^\n                                          source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                           ^\n                                           source.ts meta.import.ts punctuation.separator.key-value.ts\n                                            ^\n                                            source.ts meta.import.ts\n                                             ^\n                                             source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                              ^^^^\n                                              source.ts meta.import.ts string.quoted.double.ts\n                                                  ^\n                                                  source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                   ^\n                                                   source.ts meta.import.ts\n                                                    ^\n                                                    source.ts meta.import.ts punctuation.definition.block.ts\n>import * as foo from './0' assert { type: \"json\" }\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts constant.language.import-export-all.ts\n         ^\n         source.ts meta.import.ts\n          ^^\n          source.ts meta.import.ts keyword.control.as.ts\n            ^\n            source.ts meta.import.ts\n             ^^^\n             source.ts meta.import.ts variable.other.readwrite.alias.ts\n                ^\n                source.ts meta.import.ts\n                 ^^^^\n                 source.ts meta.import.ts keyword.control.from.ts\n                     ^\n                     source.ts meta.import.ts\n                      ^\n                      source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                       ^^^\n                       source.ts meta.import.ts string.quoted.single.ts\n                          ^\n                          source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                           ^\n                           source.ts meta.import.ts\n                            ^^^^^^\n                            source.ts meta.import.ts keyword.control.assert.ts\n                                  ^\n                                  source.ts meta.import.ts\n                                   ^\n                                   source.ts meta.import.ts punctuation.definition.block.ts\n                                    ^\n                                    source.ts meta.import.ts\n                                     ^^^^\n                                     source.ts meta.import.ts meta.object-literal.key.ts\n                                         ^\n                                         source.ts meta.import.ts punctuation.separator.key-value.ts\n                                          ^\n                                          source.ts meta.import.ts\n                                           ^\n                                           source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                            ^^^^\n                                            source.ts meta.import.ts string.quoted.double.ts\n                                                ^\n                                                source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                 ^\n                                                 source.ts meta.import.ts\n                                                  ^\n                                                  source.ts meta.import.ts punctuation.definition.block.ts\n>import { a, b } from './0' assert {}\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.import.ts meta.block.ts\n          ^\n          source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n           ^\n           source.ts meta.import.ts meta.block.ts punctuation.separator.comma.ts\n            ^\n            source.ts meta.import.ts meta.block.ts\n             ^\n             source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n              ^\n              source.ts meta.import.ts meta.block.ts\n               ^\n               source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                ^\n                source.ts meta.import.ts\n                 ^^^^\n                 source.ts meta.import.ts keyword.control.from.ts\n                     ^\n                     source.ts meta.import.ts\n                      ^\n                      source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                       ^^^\n                       source.ts meta.import.ts string.quoted.single.ts\n                          ^\n                          source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                           ^\n                           source.ts meta.import.ts\n                            ^^^^^^\n                            source.ts meta.import.ts keyword.control.assert.ts\n                                  ^\n                                  source.ts meta.import.ts\n                                   ^\n                                   source.ts meta.import.ts punctuation.definition.block.ts\n                                    ^\n                                    source.ts meta.import.ts punctuation.definition.block.ts\n>import { a as c, b as d } from './0' assert { a: \"a\", b: \"b\", c: \"c\" }\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.import.ts meta.block.ts\n          ^\n          source.ts meta.import.ts meta.block.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.import.ts meta.block.ts\n            ^^\n            source.ts meta.import.ts meta.block.ts keyword.control.as.ts\n              ^\n              source.ts meta.import.ts meta.block.ts\n               ^\n               source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                ^\n                source.ts meta.import.ts meta.block.ts punctuation.separator.comma.ts\n                 ^\n                 source.ts meta.import.ts meta.block.ts\n                  ^\n                  source.ts meta.import.ts meta.block.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.import.ts meta.block.ts\n                    ^^\n                    source.ts meta.import.ts meta.block.ts keyword.control.as.ts\n                      ^\n                      source.ts meta.import.ts meta.block.ts\n                       ^\n                       source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                        ^\n                        source.ts meta.import.ts meta.block.ts\n                         ^\n                         source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                          ^\n                          source.ts meta.import.ts\n                           ^^^^\n                           source.ts meta.import.ts keyword.control.from.ts\n                               ^\n                               source.ts meta.import.ts\n                                ^\n                                source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                 ^^^\n                                 source.ts meta.import.ts string.quoted.single.ts\n                                    ^\n                                    source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                     ^\n                                     source.ts meta.import.ts\n                                      ^^^^^^\n                                      source.ts meta.import.ts keyword.control.assert.ts\n                                            ^\n                                            source.ts meta.import.ts\n                                             ^\n                                             source.ts meta.import.ts punctuation.definition.block.ts\n                                              ^\n                                              source.ts meta.import.ts\n                                               ^\n                                               source.ts meta.import.ts meta.object-literal.key.ts\n                                                ^\n                                                source.ts meta.import.ts punctuation.separator.key-value.ts\n                                                 ^\n                                                 source.ts meta.import.ts\n                                                  ^\n                                                  source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                   ^\n                                                   source.ts meta.import.ts string.quoted.double.ts\n                                                    ^\n                                                    source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                     ^^\n                                                     source.ts meta.import.ts\n                                                       ^\n                                                       source.ts meta.import.ts meta.object-literal.key.ts\n                                                        ^\n                                                        source.ts meta.import.ts punctuation.separator.key-value.ts\n                                                         ^\n                                                         source.ts meta.import.ts\n                                                          ^\n                                                          source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                           ^\n                                                           source.ts meta.import.ts string.quoted.double.ts\n                                                            ^\n                                                            source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                             ^^\n                                                             source.ts meta.import.ts\n                                                               ^\n                                                               source.ts meta.import.ts meta.object-literal.key.ts\n                                                                ^\n                                                                source.ts meta.import.ts punctuation.separator.key-value.ts\n                                                                 ^\n                                                                 source.ts meta.import.ts\n                                                                  ^\n                                                                  source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                   ^\n                                                                   source.ts meta.import.ts string.quoted.double.ts\n                                                                    ^\n                                                                    source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                     ^\n                                                                     source.ts meta.import.ts\n                                                                      ^\n                                                                      source.ts meta.import.ts punctuation.definition.block.ts\n>export {} from './0' assert { type: \"json\" }\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.export.ts\n           ^^^^\n           source.ts meta.export.ts keyword.control.from.ts\n               ^\n               source.ts meta.export.ts\n                ^\n                source.ts meta.export.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                 ^^^\n                 source.ts meta.export.ts string.quoted.single.ts\n                    ^\n                    source.ts meta.export.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                     ^\n                     source.ts meta.export.ts\n                      ^^^^^^\n                      source.ts meta.export.ts keyword.control.assert.ts\n                            ^\n                            source.ts meta.export.ts\n                             ^\n                             source.ts meta.export.ts punctuation.definition.block.ts\n                              ^\n                              source.ts meta.export.ts\n                               ^^^^\n                               source.ts meta.export.ts meta.object-literal.key.ts\n                                   ^\n                                   source.ts meta.export.ts punctuation.separator.key-value.ts\n                                    ^\n                                    source.ts meta.export.ts\n                                     ^\n                                     source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                      ^^^^\n                                      source.ts meta.export.ts string.quoted.double.ts\n                                          ^\n                                          source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                           ^\n                                           source.ts meta.export.ts\n                                            ^\n                                            source.ts meta.export.ts punctuation.definition.block.ts\n>export { a, b } from './0' assert { type: \"json\" }\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^\n          source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n           ^\n           source.ts meta.export.ts meta.block.ts punctuation.separator.comma.ts\n            ^\n            source.ts meta.export.ts meta.block.ts\n             ^\n             source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n              ^\n              source.ts meta.export.ts meta.block.ts\n               ^\n               source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                ^\n                source.ts meta.export.ts\n                 ^^^^\n                 source.ts meta.export.ts keyword.control.from.ts\n                     ^\n                     source.ts meta.export.ts\n                      ^\n                      source.ts meta.export.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                       ^^^\n                       source.ts meta.export.ts string.quoted.single.ts\n                          ^\n                          source.ts meta.export.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                           ^\n                           source.ts meta.export.ts\n                            ^^^^^^\n                            source.ts meta.export.ts keyword.control.assert.ts\n                                  ^\n                                  source.ts meta.export.ts\n                                   ^\n                                   source.ts meta.export.ts punctuation.definition.block.ts\n                                    ^\n                                    source.ts meta.export.ts\n                                     ^^^^\n                                     source.ts meta.export.ts meta.object-literal.key.ts\n                                         ^\n                                         source.ts meta.export.ts punctuation.separator.key-value.ts\n                                          ^\n                                          source.ts meta.export.ts\n                                           ^\n                                           source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                            ^^^^\n                                            source.ts meta.export.ts string.quoted.double.ts\n                                                ^\n                                                source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                 ^\n                                                 source.ts meta.export.ts\n                                                  ^\n                                                  source.ts meta.export.ts punctuation.definition.block.ts\n>export * from './0' assert { type: \"json\" }\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts constant.language.import-export-all.ts\n         ^\n         source.ts meta.export.ts\n          ^^^^\n          source.ts meta.export.ts keyword.control.from.ts\n              ^\n              source.ts meta.export.ts\n               ^\n               source.ts meta.export.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                ^^^\n                source.ts meta.export.ts string.quoted.single.ts\n                   ^\n                   source.ts meta.export.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                    ^\n                    source.ts meta.export.ts\n                     ^^^^^^\n                     source.ts meta.export.ts keyword.control.assert.ts\n                           ^\n                           source.ts meta.export.ts\n                            ^\n                            source.ts meta.export.ts punctuation.definition.block.ts\n                             ^\n                             source.ts meta.export.ts\n                              ^^^^\n                              source.ts meta.export.ts meta.object-literal.key.ts\n                                  ^\n                                  source.ts meta.export.ts punctuation.separator.key-value.ts\n                                   ^\n                                   source.ts meta.export.ts\n                                    ^\n                                    source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                     ^^^^\n                                     source.ts meta.export.ts string.quoted.double.ts\n                                         ^\n                                         source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                          ^\n                                          source.ts meta.export.ts\n                                           ^\n                                           source.ts meta.export.ts punctuation.definition.block.ts\n>export * as ns from './0' assert { type: \"json\" }\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts constant.language.import-export-all.ts\n         ^\n         source.ts meta.export.ts\n          ^^\n          source.ts meta.export.ts keyword.control.as.ts\n            ^\n            source.ts meta.export.ts\n             ^^\n             source.ts meta.export.ts variable.other.readwrite.alias.ts\n               ^\n               source.ts meta.export.ts\n                ^^^^\n                source.ts meta.export.ts keyword.control.from.ts\n                    ^\n                    source.ts meta.export.ts\n                     ^\n                     source.ts meta.export.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                      ^^^\n                      source.ts meta.export.ts string.quoted.single.ts\n                         ^\n                         source.ts meta.export.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                          ^\n                          source.ts meta.export.ts\n                           ^^^^^^\n                           source.ts meta.export.ts keyword.control.assert.ts\n                                 ^\n                                 source.ts meta.export.ts\n                                  ^\n                                  source.ts meta.export.ts punctuation.definition.block.ts\n                                   ^\n                                   source.ts meta.export.ts\n                                    ^^^^\n                                    source.ts meta.export.ts meta.object-literal.key.ts\n                                        ^\n                                        source.ts meta.export.ts punctuation.separator.key-value.ts\n                                         ^\n                                         source.ts meta.export.ts\n                                          ^\n                                          source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                           ^^^^\n                                           source.ts meta.export.ts string.quoted.double.ts\n                                               ^\n                                               source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                ^\n                                                source.ts meta.export.ts\n                                                 ^\n                                                 source.ts meta.export.ts punctuation.definition.block.ts\n>export { a, b } from './0' assert {}\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^\n          source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n           ^\n           source.ts meta.export.ts meta.block.ts punctuation.separator.comma.ts\n            ^\n            source.ts meta.export.ts meta.block.ts\n             ^\n             source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n              ^\n              source.ts meta.export.ts meta.block.ts\n               ^\n               source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                ^\n                source.ts meta.export.ts\n                 ^^^^\n                 source.ts meta.export.ts keyword.control.from.ts\n                     ^\n                     source.ts meta.export.ts\n                      ^\n                      source.ts meta.export.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                       ^^^\n                       source.ts meta.export.ts string.quoted.single.ts\n                          ^\n                          source.ts meta.export.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                           ^\n                           source.ts meta.export.ts\n                            ^^^^^^\n                            source.ts meta.export.ts keyword.control.assert.ts\n                                  ^\n                                  source.ts meta.export.ts\n                                   ^\n                                   source.ts meta.export.ts punctuation.definition.block.ts\n                                    ^\n                                    source.ts meta.export.ts punctuation.definition.block.ts\n>export { a as c, b as d } from './0' assert { a: \"a\", b: \"b\", c: \"c\" }\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^\n          source.ts meta.export.ts meta.block.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.export.ts meta.block.ts\n            ^^\n            source.ts meta.export.ts meta.block.ts keyword.control.as.ts\n              ^\n              source.ts meta.export.ts meta.block.ts\n               ^\n               source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n                ^\n                source.ts meta.export.ts meta.block.ts punctuation.separator.comma.ts\n                 ^\n                 source.ts meta.export.ts meta.block.ts\n                  ^\n                  source.ts meta.export.ts meta.block.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.export.ts meta.block.ts\n                    ^^\n                    source.ts meta.export.ts meta.block.ts keyword.control.as.ts\n                      ^\n                      source.ts meta.export.ts meta.block.ts\n                       ^\n                       source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n                        ^\n                        source.ts meta.export.ts meta.block.ts\n                         ^\n                         source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                          ^\n                          source.ts meta.export.ts\n                           ^^^^\n                           source.ts meta.export.ts keyword.control.from.ts\n                               ^\n                               source.ts meta.export.ts\n                                ^\n                                source.ts meta.export.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                 ^^^\n                                 source.ts meta.export.ts string.quoted.single.ts\n                                    ^\n                                    source.ts meta.export.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                     ^\n                                     source.ts meta.export.ts\n                                      ^^^^^^\n                                      source.ts meta.export.ts keyword.control.assert.ts\n                                            ^\n                                            source.ts meta.export.ts\n                                             ^\n                                             source.ts meta.export.ts punctuation.definition.block.ts\n                                              ^\n                                              source.ts meta.export.ts\n                                               ^\n                                               source.ts meta.export.ts meta.object-literal.key.ts\n                                                ^\n                                                source.ts meta.export.ts punctuation.separator.key-value.ts\n                                                 ^\n                                                 source.ts meta.export.ts\n                                                  ^\n                                                  source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                   ^\n                                                   source.ts meta.export.ts string.quoted.double.ts\n                                                    ^\n                                                    source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                     ^^\n                                                     source.ts meta.export.ts\n                                                       ^\n                                                       source.ts meta.export.ts meta.object-literal.key.ts\n                                                        ^\n                                                        source.ts meta.export.ts punctuation.separator.key-value.ts\n                                                         ^\n                                                         source.ts meta.export.ts\n                                                          ^\n                                                          source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                           ^\n                                                           source.ts meta.export.ts string.quoted.double.ts\n                                                            ^\n                                                            source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                             ^^\n                                                             source.ts meta.export.ts\n                                                               ^\n                                                               source.ts meta.export.ts meta.object-literal.key.ts\n                                                                ^\n                                                                source.ts meta.export.ts punctuation.separator.key-value.ts\n                                                                 ^\n                                                                 source.ts meta.export.ts\n                                                                  ^\n                                                                  source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                   ^\n                                                                   source.ts meta.export.ts string.quoted.double.ts\n                                                                    ^\n                                                                    source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                     ^\n                                                                     source.ts meta.export.ts\n                                                                      ^\n                                                                      source.ts meta.export.ts punctuation.definition.block.ts\n>export type {} from './0' assert { type: \"json\" }\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^^^^\n        source.ts meta.export.ts keyword.control.type.ts\n            ^\n            source.ts meta.export.ts\n             ^\n             source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n               ^\n               source.ts meta.export.ts\n                ^^^^\n                source.ts meta.export.ts keyword.control.from.ts\n                    ^\n                    source.ts meta.export.ts\n                     ^\n                     source.ts meta.export.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                      ^^^\n                      source.ts meta.export.ts string.quoted.single.ts\n                         ^\n                         source.ts meta.export.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                          ^\n                          source.ts meta.export.ts\n                           ^^^^^^\n                           source.ts meta.export.ts keyword.control.assert.ts\n                                 ^\n                                 source.ts meta.export.ts\n                                  ^\n                                  source.ts meta.export.ts punctuation.definition.block.ts\n                                   ^\n                                   source.ts meta.export.ts\n                                    ^^^^\n                                    source.ts meta.export.ts meta.object-literal.key.ts\n                                        ^\n                                        source.ts meta.export.ts punctuation.separator.key-value.ts\n                                         ^\n                                         source.ts meta.export.ts\n                                          ^\n                                          source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                           ^^^^\n                                           source.ts meta.export.ts string.quoted.double.ts\n                                               ^\n                                               source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                ^\n                                                source.ts meta.export.ts\n                                                 ^\n                                                 source.ts meta.export.ts punctuation.definition.block.ts\n>export type { I } from './0' assert { type: \"json\" }\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^^^^\n        source.ts meta.export.ts keyword.control.type.ts\n            ^\n            source.ts meta.export.ts\n             ^\n             source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.export.ts meta.block.ts\n               ^\n               source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n                ^\n                source.ts meta.export.ts meta.block.ts\n                 ^\n                 source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.export.ts\n                   ^^^^\n                   source.ts meta.export.ts keyword.control.from.ts\n                       ^\n                       source.ts meta.export.ts\n                        ^\n                        source.ts meta.export.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                         ^^^\n                         source.ts meta.export.ts string.quoted.single.ts\n                            ^\n                            source.ts meta.export.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                             ^\n                             source.ts meta.export.ts\n                              ^^^^^^\n                              source.ts meta.export.ts keyword.control.assert.ts\n                                    ^\n                                    source.ts meta.export.ts\n                                     ^\n                                     source.ts meta.export.ts punctuation.definition.block.ts\n                                      ^\n                                      source.ts meta.export.ts\n                                       ^^^^\n                                       source.ts meta.export.ts meta.object-literal.key.ts\n                                           ^\n                                           source.ts meta.export.ts punctuation.separator.key-value.ts\n                                            ^\n                                            source.ts meta.export.ts\n                                             ^\n                                             source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                              ^^^^\n                                              source.ts meta.export.ts string.quoted.double.ts\n                                                  ^\n                                                  source.ts meta.export.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                   ^\n                                                   source.ts meta.export.ts\n                                                    ^\n                                                    source.ts meta.export.ts punctuation.definition.block.ts\n>import type { I } from './0'  assert { type: \"json\" }\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^^^^\n        source.ts meta.import.ts keyword.control.type.ts\n            ^\n            source.ts meta.import.ts\n             ^\n             source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.import.ts meta.block.ts\n               ^\n               source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                ^\n                source.ts meta.import.ts meta.block.ts\n                 ^\n                 source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.import.ts\n                   ^^^^\n                   source.ts meta.import.ts keyword.control.from.ts\n                       ^\n                       source.ts meta.import.ts\n                        ^\n                        source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                         ^^^\n                         source.ts meta.import.ts string.quoted.single.ts\n                            ^\n                            source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                             ^^\n                             source.ts meta.import.ts\n                               ^^^^^^\n                               source.ts meta.import.ts keyword.control.assert.ts\n                                     ^\n                                     source.ts meta.import.ts\n                                      ^\n                                      source.ts meta.import.ts punctuation.definition.block.ts\n                                       ^\n                                       source.ts meta.import.ts\n                                        ^^^^\n                                        source.ts meta.import.ts meta.object-literal.key.ts\n                                            ^\n                                            source.ts meta.import.ts punctuation.separator.key-value.ts\n                                             ^\n                                             source.ts meta.import.ts\n                                              ^\n                                              source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                               ^^^^\n                                               source.ts meta.import.ts string.quoted.double.ts\n                                                   ^\n                                                   source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                    ^\n                                                    source.ts meta.import.ts\n                                                     ^\n                                                     source.ts meta.import.ts punctuation.definition.block.ts\n>import type * as foo from './0' assert { type: \"json\" }\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^^^^\n        source.ts meta.import.ts keyword.control.type.ts\n            ^\n            source.ts meta.import.ts\n             ^\n             source.ts meta.import.ts constant.language.import-export-all.ts\n              ^\n              source.ts meta.import.ts\n               ^^\n               source.ts meta.import.ts keyword.control.as.ts\n                 ^\n                 source.ts meta.import.ts\n                  ^^^\n                  source.ts meta.import.ts variable.other.readwrite.alias.ts\n                     ^\n                     source.ts meta.import.ts\n                      ^^^^\n                      source.ts meta.import.ts keyword.control.from.ts\n                          ^\n                          source.ts meta.import.ts\n                           ^\n                           source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                            ^^^\n                            source.ts meta.import.ts string.quoted.single.ts\n                               ^\n                               source.ts meta.import.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                ^\n                                source.ts meta.import.ts\n                                 ^^^^^^\n                                 source.ts meta.import.ts keyword.control.assert.ts\n                                       ^\n                                       source.ts meta.import.ts\n                                        ^\n                                        source.ts meta.import.ts punctuation.definition.block.ts\n                                         ^\n                                         source.ts meta.import.ts\n                                          ^^^^\n                                          source.ts meta.import.ts meta.object-literal.key.ts\n                                              ^\n                                              source.ts meta.import.ts punctuation.separator.key-value.ts\n                                               ^\n                                               source.ts meta.import.ts\n                                                ^\n                                                source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                 ^^^^\n                                                 source.ts meta.import.ts string.quoted.double.ts\n                                                     ^\n                                                     source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                      ^\n                                                      source.ts meta.import.ts\n                                                       ^\n                                                       source.ts meta.import.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/importTypeOnly.baseline.txt",
    "content": "original file\n-----------------------------------\nimport type T from \"mod\";\nimport type { U, V } from \"mod\";\nimport type * as types from \"mod\";\nimport type from \"mod\";\nimport type = require(\"mod\");\nimport type T = require(\"mod\");\nimport { type X } from \"mod\";\nimport { X, type Y} from \"mod\";\nimport type { type X } from \"mod\"; // grammar error\nimport { type as foo } from \"mod\"; // not type-only\nimport { type type } from \"mod\";\nimport { type as as as } from \"mod\";\nimport { type type as as } from \"mod\";\nimport { type type as type } from \"mod\";\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>import type T from \"mod\";\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^^^^\n        source.ts meta.import.ts keyword.control.type.ts\n            ^\n            source.ts meta.import.ts\n             ^\n             source.ts meta.import.ts variable.other.readwrite.alias.ts\n              ^\n              source.ts meta.import.ts\n               ^^^^\n               source.ts meta.import.ts keyword.control.from.ts\n                   ^\n                   source.ts meta.import.ts\n                    ^\n                    source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                     ^^^\n                     source.ts meta.import.ts string.quoted.double.ts\n                        ^\n                        source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n>import type { U, V } from \"mod\";\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^^^^\n        source.ts meta.import.ts keyword.control.type.ts\n            ^\n            source.ts meta.import.ts\n             ^\n             source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.import.ts meta.block.ts\n               ^\n               source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                ^\n                source.ts meta.import.ts meta.block.ts punctuation.separator.comma.ts\n                 ^\n                 source.ts meta.import.ts meta.block.ts\n                  ^\n                  source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                   ^\n                   source.ts meta.import.ts meta.block.ts\n                    ^\n                    source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.import.ts\n                      ^^^^\n                      source.ts meta.import.ts keyword.control.from.ts\n                          ^\n                          source.ts meta.import.ts\n                           ^\n                           source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                            ^^^\n                            source.ts meta.import.ts string.quoted.double.ts\n                               ^\n                               source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                ^\n                                source.ts punctuation.terminator.statement.ts\n>import type * as types from \"mod\";\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^^^^\n        source.ts meta.import.ts keyword.control.type.ts\n            ^\n            source.ts meta.import.ts\n             ^\n             source.ts meta.import.ts constant.language.import-export-all.ts\n              ^\n              source.ts meta.import.ts\n               ^^\n               source.ts meta.import.ts keyword.control.as.ts\n                 ^\n                 source.ts meta.import.ts\n                  ^^^^^\n                  source.ts meta.import.ts variable.other.readwrite.alias.ts\n                       ^\n                       source.ts meta.import.ts\n                        ^^^^\n                        source.ts meta.import.ts keyword.control.from.ts\n                            ^\n                            source.ts meta.import.ts\n                             ^\n                             source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                              ^^^\n                              source.ts meta.import.ts string.quoted.double.ts\n                                 ^\n                                 source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                  ^\n                                  source.ts punctuation.terminator.statement.ts\n>import type from \"mod\";\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^^^^\n        source.ts meta.import.ts keyword.control.type.ts\n            ^\n            source.ts meta.import.ts\n             ^^^^\n             source.ts meta.import.ts variable.other.readwrite.alias.ts\n                 ^\n                 source.ts meta.import.ts\n                  ^\n                  source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                   ^^^\n                   source.ts meta.import.ts string.quoted.double.ts\n                      ^\n                      source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                       ^^\n                       source.ts meta.import.ts\n>import type = require(\"mod\");\n ^^^^^^\n source.ts meta.import.ts variable.other.readwrite.alias.ts\n       ^\n       source.ts meta.import.ts\n        ^^^^\n        source.ts meta.import.ts variable.other.readwrite.alias.ts\n            ^^^\n            source.ts meta.import.ts\n               ^^^^^^^\n               source.ts meta.import.ts variable.other.readwrite.alias.ts\n                      ^\n                      source.ts meta.import.ts\n                       ^\n                       source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                        ^^^\n                        source.ts meta.import.ts string.quoted.double.ts\n                           ^\n                           source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                            ^^^\n                            source.ts meta.import.ts\n>import type T = require(\"mod\");\n ^^^^^^\n source.ts meta.import.ts variable.other.readwrite.alias.ts\n       ^\n       source.ts meta.import.ts\n        ^^^^\n        source.ts meta.import.ts keyword.control.type.ts\n            ^\n            source.ts meta.import.ts\n             ^\n             source.ts meta.import.ts variable.other.readwrite.alias.ts\n              ^^^\n              source.ts meta.import.ts\n                 ^^^^^^^\n                 source.ts meta.import.ts variable.other.readwrite.alias.ts\n                        ^\n                        source.ts meta.import.ts\n                         ^\n                         source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                          ^^^\n                          source.ts meta.import.ts string.quoted.double.ts\n                             ^\n                             source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                              ^^^\n                              source.ts meta.import.ts\n>import { type X } from \"mod\";\n ^^^^^^\n source.ts meta.import.ts variable.other.readwrite.alias.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.import.ts meta.block.ts\n          ^^^^\n          source.ts meta.import.ts meta.block.ts keyword.control.type.ts\n              ^\n              source.ts meta.import.ts meta.block.ts\n               ^\n               source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                ^\n                source.ts meta.import.ts meta.block.ts\n                 ^\n                 source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.import.ts\n                   ^^^^\n                   source.ts meta.import.ts keyword.control.from.ts\n                       ^\n                       source.ts meta.import.ts\n                        ^\n                        source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                         ^^^\n                         source.ts meta.import.ts string.quoted.double.ts\n                            ^\n                            source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                             ^\n                             source.ts punctuation.terminator.statement.ts\n>import { X, type Y} from \"mod\";\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.import.ts meta.block.ts\n          ^\n          source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n           ^\n           source.ts meta.import.ts meta.block.ts punctuation.separator.comma.ts\n            ^\n            source.ts meta.import.ts meta.block.ts\n             ^^^^\n             source.ts meta.import.ts meta.block.ts keyword.control.type.ts\n                 ^\n                 source.ts meta.import.ts meta.block.ts\n                  ^\n                  source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                   ^\n                   source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                    ^\n                    source.ts meta.import.ts\n                     ^^^^\n                     source.ts meta.import.ts keyword.control.from.ts\n                         ^\n                         source.ts meta.import.ts\n                          ^\n                          source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                           ^^^\n                           source.ts meta.import.ts string.quoted.double.ts\n                              ^\n                              source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                               ^\n                               source.ts punctuation.terminator.statement.ts\n>import type { type X } from \"mod\"; // grammar error\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^^^^\n        source.ts meta.import.ts keyword.control.type.ts\n            ^\n            source.ts meta.import.ts\n             ^\n             source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.import.ts meta.block.ts\n               ^^^^\n               source.ts meta.import.ts meta.block.ts keyword.control.type.ts\n                   ^\n                   source.ts meta.import.ts meta.block.ts\n                    ^\n                    source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                     ^\n                     source.ts meta.import.ts meta.block.ts\n                      ^\n                      source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.import.ts\n                        ^^^^\n                        source.ts meta.import.ts keyword.control.from.ts\n                            ^\n                            source.ts meta.import.ts\n                             ^\n                             source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                              ^^^\n                              source.ts meta.import.ts string.quoted.double.ts\n                                 ^\n                                 source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                  ^\n                                  source.ts punctuation.terminator.statement.ts\n                                   ^\n                                   source.ts\n                                    ^^\n                                    source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                      ^^^^^^^^^^^^^^\n                                      source.ts comment.line.double-slash.ts\n>import { type as foo } from \"mod\"; // not type-only\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.import.ts meta.block.ts\n          ^^^^\n          source.ts meta.import.ts meta.block.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.import.ts meta.block.ts\n               ^^\n               source.ts meta.import.ts meta.block.ts keyword.control.as.ts\n                 ^\n                 source.ts meta.import.ts meta.block.ts\n                  ^^^\n                  source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                     ^\n                     source.ts meta.import.ts meta.block.ts\n                      ^\n                      source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.import.ts\n                        ^^^^\n                        source.ts meta.import.ts keyword.control.from.ts\n                            ^\n                            source.ts meta.import.ts\n                             ^\n                             source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                              ^^^\n                              source.ts meta.import.ts string.quoted.double.ts\n                                 ^\n                                 source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                  ^\n                                  source.ts punctuation.terminator.statement.ts\n                                   ^\n                                   source.ts\n                                    ^^\n                                    source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                      ^^^^^^^^^^^^^^\n                                      source.ts comment.line.double-slash.ts\n>import { type type } from \"mod\";\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.import.ts meta.block.ts\n          ^^^^\n          source.ts meta.import.ts meta.block.ts keyword.control.type.ts\n              ^\n              source.ts meta.import.ts meta.block.ts\n               ^^^^\n               source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                   ^\n                   source.ts meta.import.ts meta.block.ts\n                    ^\n                    source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.import.ts\n                      ^^^^\n                      source.ts meta.import.ts keyword.control.from.ts\n                          ^\n                          source.ts meta.import.ts\n                           ^\n                           source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                            ^^^\n                            source.ts meta.import.ts string.quoted.double.ts\n                               ^\n                               source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                ^\n                                source.ts punctuation.terminator.statement.ts\n>import { type as as as } from \"mod\";\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.import.ts meta.block.ts\n          ^^^^\n          source.ts meta.import.ts meta.block.ts keyword.control.type.ts\n              ^\n              source.ts meta.import.ts meta.block.ts\n               ^^\n               source.ts meta.import.ts meta.block.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.import.ts meta.block.ts\n                  ^^\n                  source.ts meta.import.ts meta.block.ts keyword.control.as.ts\n                    ^\n                    source.ts meta.import.ts meta.block.ts\n                     ^^\n                     source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                       ^\n                       source.ts meta.import.ts meta.block.ts\n                        ^\n                        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                         ^\n                         source.ts meta.import.ts\n                          ^^^^\n                          source.ts meta.import.ts keyword.control.from.ts\n                              ^\n                              source.ts meta.import.ts\n                               ^\n                               source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                ^^^\n                                source.ts meta.import.ts string.quoted.double.ts\n                                   ^\n                                   source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                    ^\n                                    source.ts punctuation.terminator.statement.ts\n>import { type type as as } from \"mod\";\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.import.ts meta.block.ts\n          ^^^^\n          source.ts meta.import.ts meta.block.ts keyword.control.type.ts\n              ^\n              source.ts meta.import.ts meta.block.ts\n               ^^^^\n               source.ts meta.import.ts meta.block.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.import.ts meta.block.ts\n                    ^^\n                    source.ts meta.import.ts meta.block.ts keyword.control.as.ts\n                      ^\n                      source.ts meta.import.ts meta.block.ts\n                       ^^\n                       source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                         ^\n                         source.ts meta.import.ts meta.block.ts\n                          ^\n                          source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                           ^\n                           source.ts meta.import.ts\n                            ^^^^\n                            source.ts meta.import.ts keyword.control.from.ts\n                                ^\n                                source.ts meta.import.ts\n                                 ^\n                                 source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                  ^^^\n                                  source.ts meta.import.ts string.quoted.double.ts\n                                     ^\n                                     source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                      ^\n                                      source.ts punctuation.terminator.statement.ts\n>import { type type as type } from \"mod\";\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.import.ts meta.block.ts\n          ^^^^\n          source.ts meta.import.ts meta.block.ts keyword.control.type.ts\n              ^\n              source.ts meta.import.ts meta.block.ts\n               ^^^^\n               source.ts meta.import.ts meta.block.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.import.ts meta.block.ts\n                    ^^\n                    source.ts meta.import.ts meta.block.ts keyword.control.as.ts\n                      ^\n                      source.ts meta.import.ts meta.block.ts\n                       ^^^^\n                       source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                           ^\n                           source.ts meta.import.ts meta.block.ts\n                            ^\n                            source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                             ^\n                             source.ts meta.import.ts\n                              ^^^^\n                              source.ts meta.import.ts keyword.control.from.ts\n                                  ^\n                                  source.ts meta.import.ts\n                                   ^\n                                   source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                    ^^^\n                                    source.ts meta.import.ts string.quoted.double.ts\n                                       ^\n                                       source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/importTypes.baseline.txt",
    "content": "original file\n-----------------------------------\nexport const x: import(\"./foo\") = { x: 0, y: 0 };\nexport let y: import(\"./foo2\").Bar.I = { a: \"\", b: 0 };\nexport class Bar2 {\n    item: {a: string, b: number, c: object};\n    constructor(input?: any) {}\n}\nexport let shim: typeof import(\"./foo2\") = {\n    Bar: Bar2\n};\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export const x: import(\"./foo\") = { x: 0, y: 0 };\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^^^\n        source.ts meta.var.expr.ts storage.type.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                 ^^^^^^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.expression.import.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.paren.cover.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                         ^^^^^\n                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.paren.cover.ts string.quoted.double.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.paren.cover.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                                 ^\n                                 source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                  ^\n                                  source.ts meta.var.expr.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.objectliteral.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.objectliteral.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                                               ^\n                                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                 ^\n                                                 source.ts punctuation.terminator.statement.ts\n>export let y: import(\"./foo2\").Bar.I = { a: \"\", b: 0 };\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^\n        source.ts meta.var.expr.ts storage.type.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n               ^^^^^^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.expression.import.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.paren.cover.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                       ^^^^^^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.paren.cover.ts string.quoted.double.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.paren.cover.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                                ^^^\n                                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.module.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts punctuation.accessor.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                                      ^\n                                      source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                       ^\n                                       source.ts meta.var.expr.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.objectliteral.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                               ^\n                                               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.objectliteral.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                                      ^\n                                                      source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                       ^\n                                                       source.ts punctuation.terminator.statement.ts\n>export class Bar2 {\n ^^^^^^\n source.ts meta.class.ts keyword.control.export.ts\n       ^\n       source.ts meta.class.ts\n        ^^^^^\n        source.ts meta.class.ts storage.type.class.ts\n             ^\n             source.ts meta.class.ts\n              ^^^^\n              source.ts meta.class.ts entity.name.type.class.ts\n                  ^\n                  source.ts meta.class.ts\n                   ^\n                   source.ts meta.class.ts punctuation.definition.block.ts\n>    item: {a: string, b: number, c: object};\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n               ^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.separator.comma.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                          ^^^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.separator.comma.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                                  ^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                   ^\n                                   source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                     ^^^^^^\n                                     source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.builtin.ts\n                                           ^\n                                           source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                            ^\n                                            source.ts meta.class.ts punctuation.terminator.statement.ts\n>    constructor(input?: any) {}\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^^^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts keyword.operator.optional.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                         ^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>export let shim: typeof import(\"./foo2\") = {\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^\n        source.ts meta.var.expr.ts storage.type.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^^^^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                  ^^^^^^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.expression.typeof.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                         ^^^^^^\n                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.function-call.ts keyword.operator.expression.import.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                 ^^^^^^\n                                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts string.quoted.double.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                                          ^\n                                          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                           ^\n                                           source.ts meta.var.expr.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    Bar: Bar2\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n        ^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n          ^^^^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n>};\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/inferTypes.baseline.txt",
    "content": "original file\n-----------------------------------\ntype ReturnType<T extends Function> = T extends ((...args: any[]) => infer R) | (new (...args: any[]) => infer R) ? R : any;\ntype ArgumentType<T extends (x: any) => any> = T extends (a: infer A) => any ? A : any;\ntype X1<T extends { x: any, y: any }> = T extends { x: infer X, y: infer Y } ? [X, Y] : any;\ntype B1<S> = S extends A1<infer T, infer U> ? [T, U] : never;\ntype C1<S> = S extends A1<infer T extends number, infer U extends string> ? [T, U] : never;\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type ReturnType<T extends Function> = T extends ((...args: any[]) => infer R) | (new (...args: any[]) => infer R) ? R : any;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts\n                   ^^^^^^^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts\n                           ^^^^^^^^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts entity.name.type.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts\n                                         ^^^^^^^\n                                         source.ts meta.type.declaration.ts storage.modifier.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                   ^^^\n                                                   source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts keyword.operator.rest.ts\n                                                      ^^^^\n                                                      source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                                          ^\n                                                          source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                           ^\n                                                           source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                            ^^^\n                                                            source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                               ^\n                                                               source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                ^\n                                                                source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                 ^\n                                                                 source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                  ^\n                                                                  source.ts meta.type.declaration.ts meta.type.paren.cover.ts\n                                                                   ^^\n                                                                   source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                                     ^\n                                                                     source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                                                      ^^^^^\n                                                                      source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.return.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                                                                           ^\n                                                                           source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.return.ts meta.type.infer.ts\n                                                                            ^\n                                                                            source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.return.ts meta.type.infer.ts entity.name.type.ts\n                                                                             ^\n                                                                             source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                                              ^\n                                                                              source.ts meta.type.declaration.ts\n                                                                               ^\n                                                                               source.ts meta.type.declaration.ts keyword.operator.type.ts\n                                                                                ^\n                                                                                source.ts meta.type.declaration.ts\n                                                                                 ^\n                                                                                 source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                                                  ^^^\n                                                                                  source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.constructor.ts keyword.control.new.ts\n                                                                                     ^\n                                                                                     source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.constructor.ts\n                                                                                      ^\n                                                                                      source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                                                       ^^^\n                                                                                       source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.constructor.ts meta.parameters.ts keyword.operator.rest.ts\n                                                                                          ^^^^\n                                                                                          source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.constructor.ts meta.parameters.ts variable.parameter.ts\n                                                                                              ^\n                                                                                              source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.constructor.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                                               ^\n                                                                                               source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.constructor.ts meta.parameters.ts meta.type.annotation.ts\n                                                                                                ^^^\n                                                                                                source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.constructor.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                                                   ^\n                                                                                                   source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.constructor.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                                    ^\n                                                                                                    source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.constructor.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                                     ^\n                                                                                                     source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.constructor.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                                                      ^\n                                                                                                      source.ts meta.type.declaration.ts meta.type.paren.cover.ts\n                                                                                                       ^^\n                                                                                                       source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                                                                         ^\n                                                                                                         source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                                                                                          ^^^^^\n                                                                                                          source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.return.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                                                                                                               ^\n                                                                                                               source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.return.ts meta.type.infer.ts\n                                                                                                                ^\n                                                                                                                source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.type.function.return.ts meta.type.infer.ts entity.name.type.ts\n                                                                                                                 ^\n                                                                                                                 source.ts meta.type.declaration.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                                                                                  ^\n                                                                                                                  source.ts meta.type.declaration.ts\n                                                                                                                   ^\n                                                                                                                   source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                                                                                                    ^\n                                                                                                                    source.ts meta.type.declaration.ts\n                                                                                                                     ^\n                                                                                                                     source.ts meta.type.declaration.ts entity.name.type.ts\n                                                                                                                      ^\n                                                                                                                      source.ts meta.type.declaration.ts\n                                                                                                                       ^\n                                                                                                                       source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                                                                                                        ^\n                                                                                                                        source.ts meta.type.declaration.ts\n                                                                                                                         ^^^\n                                                                                                                         source.ts meta.type.declaration.ts support.type.primitive.ts\n                                                                                                                            ^\n                                                                                                                            source.ts punctuation.terminator.statement.ts\n>type ArgumentType<T extends (x: any) => any> = T extends (a: infer A) => any ? A : any;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.parameters.ts\n                     ^^^^^^^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                 ^^^\n                                 source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                      ^^\n                                      source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.return.ts\n                                         ^^^\n                                         source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.function.return.ts support.type.primitive.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts entity.name.type.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts\n                                                  ^^^^^^^\n                                                  source.ts meta.type.declaration.ts storage.modifier.ts\n                                                         ^\n                                                         source.ts meta.type.declaration.ts\n                                                          ^\n                                                          source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                           ^\n                                                           source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                                            ^\n                                                            source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                             ^\n                                                             source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                              ^^^^^\n                                                              source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                                                                   ^\n                                                                   source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.infer.ts\n                                                                    ^\n                                                                    source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.infer.ts entity.name.type.ts\n                                                                     ^\n                                                                     source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                      ^\n                                                                      source.ts meta.type.declaration.ts\n                                                                       ^^\n                                                                       source.ts meta.type.declaration.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                                         ^\n                                                                         source.ts meta.type.declaration.ts meta.type.function.return.ts\n                                                                          ^^^\n                                                                          source.ts meta.type.declaration.ts meta.type.function.return.ts support.type.primitive.ts\n                                                                             ^\n                                                                             source.ts meta.type.declaration.ts meta.type.function.return.ts\n                                                                              ^\n                                                                              source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                                                               ^\n                                                                               source.ts meta.type.declaration.ts\n                                                                                ^\n                                                                                source.ts meta.type.declaration.ts entity.name.type.ts\n                                                                                 ^\n                                                                                 source.ts meta.type.declaration.ts\n                                                                                  ^\n                                                                                  source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                                                                   ^\n                                                                                   source.ts meta.type.declaration.ts\n                                                                                    ^^^\n                                                                                    source.ts meta.type.declaration.ts support.type.primitive.ts\n                                                                                       ^\n                                                                                       source.ts punctuation.terminator.statement.ts\n>type X1<T extends { x: any, y: any }> = T extends { x: infer X, y: infer Y } ? [X, Y] : any;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n         ^\n         source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n          ^\n          source.ts meta.type.declaration.ts meta.type.parameters.ts\n           ^^^^^^^\n           source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts punctuation.definition.block.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                        ^^^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts punctuation.separator.comma.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                ^^^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts punctuation.definition.block.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts entity.name.type.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts\n                                           ^^^^^^^\n                                           source.ts meta.type.declaration.ts storage.modifier.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts\n                                                   ^\n                                                   source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                                                    ^\n                                                    source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts\n                                                     ^\n                                                     source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                                      ^\n                                                      source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                       ^\n                                                       source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                        ^^^^^\n                                                        source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                                                             ^\n                                                             source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.infer.ts\n                                                              ^\n                                                              source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.infer.ts entity.name.type.ts\n                                                               ^\n                                                               source.ts meta.type.declaration.ts meta.object.type.ts punctuation.separator.comma.ts\n                                                                ^\n                                                                source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts\n                                                                 ^\n                                                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                                                  ^\n                                                                  source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                   ^\n                                                                   source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                                    ^^^^^\n                                                                    source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                                                                         ^\n                                                                         source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.infer.ts\n                                                                          ^\n                                                                          source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.infer.ts entity.name.type.ts\n                                                                           ^\n                                                                           source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                                            ^\n                                                                            source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                                                                             ^\n                                                                             source.ts meta.type.declaration.ts\n                                                                              ^\n                                                                              source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                                                               ^\n                                                                               source.ts meta.type.declaration.ts\n                                                                                ^\n                                                                                source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                 ^\n                                                                                 source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n                                                                                  ^\n                                                                                  source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                                                                   ^\n                                                                                   source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                                                                    ^\n                                                                                    source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n                                                                                     ^\n                                                                                     source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                      ^\n                                                                                      source.ts meta.type.declaration.ts\n                                                                                       ^\n                                                                                       source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                                                                        ^\n                                                                                        source.ts meta.type.declaration.ts\n                                                                                         ^^^\n                                                                                         source.ts meta.type.declaration.ts support.type.primitive.ts\n                                                                                            ^\n                                                                                            source.ts punctuation.terminator.statement.ts\n>type B1<S> = S extends A1<infer T, infer U> ? [T, U] : never;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n         ^\n         source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n          ^\n          source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^\n            source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.type.declaration.ts\n              ^\n              source.ts meta.type.declaration.ts entity.name.type.ts\n               ^\n               source.ts meta.type.declaration.ts\n                ^^^^^^^\n                source.ts meta.type.declaration.ts storage.modifier.ts\n                       ^\n                       source.ts meta.type.declaration.ts\n                        ^^\n                        source.ts meta.type.declaration.ts entity.name.type.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                           ^^^^^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.infer.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.infer.ts entity.name.type.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                    ^^^^^\n                                    source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.infer.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.infer.ts entity.name.type.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                                   ^\n                                                   source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n                                                    ^\n                                                    source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                     ^\n                                                     source.ts meta.type.declaration.ts\n                                                      ^\n                                                      source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                                       ^\n                                                       source.ts meta.type.declaration.ts\n                                                        ^^^^^\n                                                        source.ts meta.type.declaration.ts support.type.primitive.ts\n                                                             ^\n                                                             source.ts punctuation.terminator.statement.ts\n>type C1<S> = S extends A1<infer T extends number, infer U extends string> ? [T, U] : never;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n         ^\n         source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n          ^\n          source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^\n            source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.type.declaration.ts\n              ^\n              source.ts meta.type.declaration.ts entity.name.type.ts\n               ^\n               source.ts meta.type.declaration.ts\n                ^^^^^^^\n                source.ts meta.type.declaration.ts storage.modifier.ts\n                       ^\n                       source.ts meta.type.declaration.ts\n                        ^^\n                        source.ts meta.type.declaration.ts entity.name.type.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                           ^^^^^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.infer.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.infer.ts entity.name.type.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.infer.ts\n                                   ^^^^^^^\n                                   source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.infer.ts keyword.operator.expression.extends.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                           ^^^^^^\n                                           source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                                   ^^^^^\n                                                   source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                                                        ^\n                                                        source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.infer.ts\n                                                         ^\n                                                         source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.infer.ts entity.name.type.ts\n                                                          ^\n                                                          source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.infer.ts\n                                                           ^^^^^^^\n                                                           source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.infer.ts keyword.operator.expression.extends.ts\n                                                                  ^\n                                                                  source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                                                   ^^^^^^\n                                                                   source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                                                         ^\n                                                                         source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                          ^\n                                                                          source.ts meta.type.declaration.ts\n                                                                           ^\n                                                                           source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                                                            ^\n                                                                            source.ts meta.type.declaration.ts\n                                                                             ^\n                                                                             source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                              ^\n                                                                              source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n                                                                               ^\n                                                                               source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                                                                ^\n                                                                                source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                                                                 ^\n                                                                                 source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n                                                                                  ^\n                                                                                  source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                   ^\n                                                                                   source.ts meta.type.declaration.ts\n                                                                                    ^\n                                                                                    source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                                                                     ^\n                                                                                     source.ts meta.type.declaration.ts\n                                                                                      ^^^^^\n                                                                                      source.ts meta.type.declaration.ts support.type.primitive.ts\n                                                                                           ^\n                                                                                           source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/intrinsic.baseline.txt",
    "content": "original file\n-----------------------------------\ntype Uppercase<S extends string> = intrinsic;\ntype Lowercase<S extends string> = intrinsic;\ntype Capitalize<S extends string> = intrinsic;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type Uppercase<S extends string> = intrinsic;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts\n                  ^^^^^^^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts\n                          ^^^^^^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts\n                                    ^^^^^^^^^\n                                    source.ts meta.type.declaration.ts keyword.control.intrinsic.ts\n                                             ^\n                                             source.ts punctuation.terminator.statement.ts\n>type Lowercase<S extends string> = intrinsic;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts\n                  ^^^^^^^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts\n                          ^^^^^^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts\n                                    ^^^^^^^^^\n                                    source.ts meta.type.declaration.ts keyword.control.intrinsic.ts\n                                             ^\n                                             source.ts punctuation.terminator.statement.ts\n>type Capitalize<S extends string> = intrinsic;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts\n                   ^^^^^^^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts\n                           ^^^^^^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts\n                                     ^^^^^^^^^\n                                     source.ts meta.type.declaration.ts keyword.control.intrinsic.ts\n                                              ^\n                                              source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/issue1005.baseline.txt",
    "content": "original file\n-----------------------------------\nimport foo from \"./foo.json\" with { type: \"json\" };\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>import foo from \"./foo.json\" with { type: \"json\" };\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^^^\n        source.ts meta.import.ts variable.other.readwrite.alias.ts\n           ^\n           source.ts meta.import.ts\n            ^^^^\n            source.ts meta.import.ts keyword.control.from.ts\n                ^\n                source.ts meta.import.ts\n                 ^\n                 source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                  ^^^^^^^^^^\n                  source.ts meta.import.ts string.quoted.double.ts\n                            ^\n                            source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                             ^\n                             source.ts meta.import.ts\n                              ^^^^\n                              source.ts meta.import.ts keyword.control.with.ts\n                                  ^\n                                  source.ts meta.import.ts\n                                   ^\n                                   source.ts meta.import.ts punctuation.definition.block.ts\n                                    ^\n                                    source.ts meta.import.ts\n                                     ^^^^\n                                     source.ts meta.import.ts meta.object-literal.key.ts\n                                         ^\n                                         source.ts meta.import.ts punctuation.separator.key-value.ts\n                                          ^\n                                          source.ts meta.import.ts\n                                           ^\n                                           source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                            ^^^^\n                                            source.ts meta.import.ts string.quoted.double.ts\n                                                ^\n                                                source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                 ^\n                                                 source.ts meta.import.ts\n                                                  ^\n                                                  source.ts meta.import.ts punctuation.definition.block.ts\n                                                   ^\n                                                   source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/issue327.baseline.txt",
    "content": "original file\n-----------------------------------\ninterface X {\n    x(): void\n    y: number\n}\nexport function foo(): void\nclass x { }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>interface X {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^\n             source.ts meta.interface.ts punctuation.definition.block.ts\n>    x(): void\n ^^^^\n source.ts meta.interface.ts meta.method.declaration.ts\n     ^\n     source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n      ^\n      source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n       ^\n       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n        ^\n        source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n         ^\n         source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n          ^^^^\n          source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n>    y: number\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>export function foo(): void\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                      ^\n                      source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                       ^\n                       source.ts meta.function.ts meta.return.type.ts\n                        ^^^^\n                        source.ts meta.function.ts meta.return.type.ts support.type.primitive.ts\n>class x { }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^\n           source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/issue522_1.baseline.txt",
    "content": "original file\n-----------------------------------\nconst brokenSyntaxHighlighting = () => {\n    const array = a ?? b ?? c ?? d ?? g;\n  \n    /**\n     * No TypeEror, but syntax highlighting is broken\n     */\n    const test = a ?? b ?? c ?? d ?? g;\n  \n    for (let i = 0; i < array.length; i++) {\n      console.log(array[i]);\n    }\n  };\n  \n  brokenSyntaxHighlighting();\n  \n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const brokenSyntaxHighlighting = () => {\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                                ^\n                                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.arrow.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.arrow.ts\n                                     ^^\n                                     source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.arrow.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    const array = a ?? b ?? c ?? d ?? g;\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n           ^^^^^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                     ^^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.logical.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                          ^^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.logical.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                               ^^\n                               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.logical.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                    ^^\n                                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.logical.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>  \n ^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n>    /**\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>     * No TypeEror, but syntax highlighting is broken\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts comment.block.documentation.ts\n>     */\n ^^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts comment.block.documentation.ts\n      ^^\n      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>    const test = a ?? b ?? c ?? d ?? g;\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n           ^^^^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                    ^^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.logical.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                         ^^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.logical.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                              ^^\n                              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.logical.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                   ^^\n                                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.logical.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>  \n ^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n>    for (let i = 0; i < array.length; i++) {\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.loop.ts\n        ^\n        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n         ^\n         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n          ^^^\n          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.operator.relational.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                         ^^^^^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.object.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts\n                               ^^^^^^\n                               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts support.variable.property.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                                        ^^\n                                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.operator.increment.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>      console.log(array[i]);\n ^^^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts\n       ^^^^^^^\n       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.function-call.ts support.class.console.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n               ^^^\n               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                   ^^^^^\n                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts\n     ^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>  };\n ^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n   ^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n    ^\n    source.ts punctuation.terminator.statement.ts\n>  \n ^^^\n source.ts\n>  brokenSyntaxHighlighting();\n ^^\n source.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts meta.function-call.ts entity.name.function.ts\n                           ^\n                           source.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.brace.round.ts\n                             ^\n                             source.ts punctuation.terminator.statement.ts\n>  \n ^^^\n source.ts"
  },
  {
    "path": "tests/baselines/issue534.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\n<></>;\n<><span></span><><span></span></><div></div></>;\n\n<>\n    <span>hi</span>\n    <div>\n        <span>inside</span>\n    </div>\n</>;\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n><></>;\n ^\n source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n  ^\n  source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n   ^^\n   source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n     ^\n     source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n      ^\n      source.tsx punctuation.terminator.statement.tsx\n><><span></span><><span></span></><div></div></>;\n ^\n source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n  ^\n  source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n   ^\n   source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n    ^^^^\n    source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n        ^\n        source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n         ^^\n         source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n           ^^^^\n           source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n               ^\n               source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                ^\n                source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                 ^\n                 source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                  ^\n                  source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                   ^^^^\n                   source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                       ^\n                       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                        ^^\n                        source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                          ^^^^\n                          source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                              ^\n                              source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                               ^^\n                               source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                 ^\n                                 source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                  ^\n                                  source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                   ^^^\n                                   source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                      ^\n                                      source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                       ^^\n                                       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                         ^^^\n                                         source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                            ^\n                                            source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                             ^^\n                                             source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                               ^\n                                               source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                                                ^\n                                                source.tsx punctuation.terminator.statement.tsx\n>\n ^\n source.tsx\n><>\n ^\n source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n  ^\n  source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>    <span>hi</span>\n ^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n     ^\n     source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n      ^^^^\n      source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n          ^\n          source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n           ^^\n           source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n             ^^\n             source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n               ^^^^\n               source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                   ^\n                   source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>    <div>\n ^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n     ^\n     source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n      ^^^\n      source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n         ^\n         source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>        <span>inside</span>\n ^^^^^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n         ^\n         source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n          ^^^^\n          source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n              ^\n              source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n               ^^^^^^\n               source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                     ^^\n                     source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                       ^^^^\n                       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                           ^\n                           source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>    </div>\n ^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n     ^^\n     source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n       ^^^\n       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n          ^\n          source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n></>;\n ^^\n source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n   ^\n   source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n    ^\n    source.tsx punctuation.terminator.statement.tsx"
  },
  {
    "path": "tests/baselines/issue776.baseline.txt",
    "content": "original file\n-----------------------------------\nsystem.createHash()\nsystem.createHash!()\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>system.createHash()\n ^^^^^^\n source.ts meta.function-call.ts variable.other.object.ts\n       ^\n       source.ts meta.function-call.ts punctuation.accessor.ts\n        ^^^^^^^^^^\n        source.ts meta.function-call.ts entity.name.function.ts\n                  ^\n                  source.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.brace.round.ts\n>system.createHash!()\n ^^^^^^\n source.ts meta.function-call.ts variable.other.object.ts\n       ^\n       source.ts meta.function-call.ts punctuation.accessor.ts\n        ^^^^^^^^^^\n        source.ts meta.function-call.ts entity.name.function.ts\n                  ^\n                  source.ts meta.function-call.ts keyword.operator.definiteassignment.ts\n                   ^\n                   source.ts meta.brace.round.ts\n                    ^\n                    source.ts meta.brace.round.ts"
  },
  {
    "path": "tests/baselines/issue806.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Foo {\n    public foo(): boolean {\n        return !/[():\\w]/.test('foo');\n    }\n\n    private bar(): void {}\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Foo {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^\n          source.ts meta.class.ts\n           ^\n           source.ts meta.class.ts punctuation.definition.block.ts\n>    public foo(): boolean {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts\n            ^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                   ^^^^^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        return !/[():\\w]/.test('foo');\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.logical.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.regexp.ts punctuation.definition.string.begin.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.regexp.ts constant.other.character-class.set.regexp punctuation.definition.character-class.regexp\n                   ^^^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.regexp.ts constant.other.character-class.set.regexp\n                      ^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.regexp.ts constant.other.character-class.set.regexp constant.other.character-class.regexp\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.regexp.ts constant.other.character-class.set.regexp punctuation.definition.character-class.regexp\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.regexp.ts punctuation.definition.string.end.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts support.function.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                 ^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>    private bar(): void {}\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts\n             ^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                    ^^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/issue807.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx \nconst { loading, error, data } = useQuery<{\n  tasks: Array<Pick<Task, 'id' | 'title'>>\n}>(taskListQuery)\n\nif (loading) return <p>Loading...</p>\nif (error)\n  return (\n    <>\n      <p>Error :(</p>\n      <p>{`${error}`}</p>\n    </>\n  )\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx \n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>const { loading, error, data } = useQuery<{\n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^\n       source.tsx meta.var.expr.tsx meta.object-binding-pattern-variable.tsx punctuation.definition.binding-pattern.object.tsx\n        ^\n        source.tsx meta.var.expr.tsx meta.object-binding-pattern-variable.tsx\n         ^^^^^^^\n         source.tsx meta.var.expr.tsx meta.object-binding-pattern-variable.tsx meta.definition.variable.tsx variable.other.constant.tsx\n                ^\n                source.tsx meta.var.expr.tsx meta.object-binding-pattern-variable.tsx punctuation.separator.comma.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx meta.object-binding-pattern-variable.tsx\n                  ^^^^^\n                  source.tsx meta.var.expr.tsx meta.object-binding-pattern-variable.tsx meta.definition.variable.tsx variable.other.constant.tsx\n                       ^\n                       source.tsx meta.var.expr.tsx meta.object-binding-pattern-variable.tsx punctuation.separator.comma.tsx\n                        ^\n                        source.tsx meta.var.expr.tsx meta.object-binding-pattern-variable.tsx\n                         ^^^^\n                         source.tsx meta.var.expr.tsx meta.object-binding-pattern-variable.tsx meta.definition.variable.tsx variable.other.constant.tsx\n                             ^\n                             source.tsx meta.var.expr.tsx meta.object-binding-pattern-variable.tsx\n                              ^\n                              source.tsx meta.var.expr.tsx meta.object-binding-pattern-variable.tsx punctuation.definition.binding-pattern.object.tsx\n                               ^\n                               source.tsx meta.var.expr.tsx meta.object-binding-pattern-variable.tsx\n                                ^\n                                source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n                                 ^\n                                 source.tsx meta.var.expr.tsx\n                                  ^^^^^^^^\n                                  source.tsx meta.var.expr.tsx meta.function-call.tsx entity.name.function.tsx\n                                          ^\n                                          source.tsx meta.var.expr.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n                                           ^\n                                           source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx punctuation.definition.block.tsx\n>  tasks: Array<Pick<Task, 'id' | 'title'>>\n ^^\n source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx\n   ^^^^^\n   source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.definition.property.tsx variable.object.property.tsx\n        ^\n        source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx\n         ^\n         source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx\n          ^^^^^\n          source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx entity.name.type.tsx\n               ^\n               source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n                ^^^^\n                source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx entity.name.type.tsx\n                    ^\n                    source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n                     ^^^^\n                     source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx meta.type.parameters.tsx entity.name.type.tsx\n                         ^\n                         source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx meta.type.parameters.tsx punctuation.separator.comma.tsx\n                          ^\n                          source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx meta.type.parameters.tsx\n                           ^\n                           source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx meta.type.parameters.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                            ^^\n                            source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx meta.type.parameters.tsx string.quoted.single.tsx\n                              ^\n                              source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx meta.type.parameters.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                               ^\n                               source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx meta.type.parameters.tsx\n                                ^\n                                source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx meta.type.parameters.tsx keyword.operator.type.tsx\n                                 ^\n                                 source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx meta.type.parameters.tsx\n                                  ^\n                                  source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx meta.type.parameters.tsx string.quoted.single.tsx punctuation.definition.string.begin.tsx\n                                   ^^^^^\n                                   source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx meta.type.parameters.tsx string.quoted.single.tsx\n                                        ^\n                                        source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx meta.type.parameters.tsx string.quoted.single.tsx punctuation.definition.string.end.tsx\n                                         ^\n                                         source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n                                          ^\n                                          source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n>}>(taskListQuery)\n ^\n source.tsx meta.var.expr.tsx meta.type.parameters.tsx meta.object.type.tsx punctuation.definition.block.tsx\n  ^\n  source.tsx meta.var.expr.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n   ^\n   source.tsx meta.var.expr.tsx meta.brace.round.tsx\n    ^^^^^^^^^^^^^\n    source.tsx meta.var.expr.tsx variable.other.readwrite.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx meta.brace.round.tsx\n>\n ^\n source.tsx\n>if (loading) return <p>Loading...</p>\n ^^\n source.tsx keyword.control.conditional.tsx\n   ^\n   source.tsx\n    ^\n    source.tsx meta.brace.round.tsx\n     ^^^^^^^\n     source.tsx variable.other.readwrite.tsx\n            ^\n            source.tsx meta.brace.round.tsx\n             ^\n             source.tsx\n              ^^^^^^\n              source.tsx keyword.control.flow.tsx\n                    ^\n                    source.tsx\n                     ^\n                     source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                      ^\n                      source.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                       ^\n                       source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                        ^^^^^^^^^^\n                        source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                                  ^^\n                                  source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                                    ^\n                                    source.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                                     ^\n                                     source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>if (error)\n ^^\n source.tsx keyword.control.conditional.tsx\n   ^\n   source.tsx\n    ^\n    source.tsx meta.brace.round.tsx\n     ^^^^^\n     source.tsx variable.other.readwrite.tsx\n          ^\n          source.tsx meta.brace.round.tsx\n>  return (\n ^^\n source.tsx\n   ^^^^^^\n   source.tsx keyword.control.flow.tsx\n         ^\n         source.tsx\n          ^\n          source.tsx meta.brace.round.tsx\n>    <>\n ^^^^\n source.tsx\n     ^\n     source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n      ^\n      source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>      <p>Error :(</p>\n ^^^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n       ^\n       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n        ^\n        source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n         ^\n         source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n          ^^^^^^^^\n          source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n                  ^^\n                  source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                    ^\n                    source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                     ^\n                     source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>      <p>{`${error}`}</p>\n ^^^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n       ^\n       source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n        ^\n        source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n         ^\n         source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n          ^\n          source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx punctuation.section.embedded.begin.tsx\n           ^\n           source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.template.tsx punctuation.definition.string.template.begin.tsx\n            ^^\n            source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.template.tsx meta.template.expression.tsx punctuation.definition.template-expression.begin.tsx\n              ^^^^^\n              source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.template.tsx meta.template.expression.tsx meta.embedded.line.tsx variable.other.readwrite.tsx\n                   ^\n                   source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.template.tsx meta.template.expression.tsx punctuation.definition.template-expression.end.tsx\n                    ^\n                    source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.embedded.expression.tsx string.template.tsx punctuation.definition.string.template.end.tsx\n                     ^\n                     source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx punctuation.section.embedded.end.tsx\n                      ^^\n                      source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                        ^\n                        source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx\n                         ^\n                         source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>    </>\n ^^^^\n source.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n     ^^\n     source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n       ^\n       source.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n>  )\n ^^\n source.tsx\n   ^\n   source.tsx meta.brace.round.tsx"
  },
  {
    "path": "tests/baselines/issue807ts.baseline.txt",
    "content": "original file\n-----------------------------------\nconst { loading, error, data } = useQuery<{\n  tasks: Array<Pick<Task, 'id' | 'title'>>\n}>(taskListQuery)\n\nif (loading) return true\nif (error)\n  return false\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const { loading, error, data } = useQuery<{\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n        ^\n        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n         ^^^^^^^\n         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                  ^^^^^\n                  source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.constant.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                         ^^^^\n                         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.constant.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                                ^\n                                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                 ^\n                                 source.ts meta.var.expr.ts\n                                  ^^^^^^^^\n                                  source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts punctuation.definition.block.ts\n>  tasks: Array<Pick<Task, 'id' | 'title'>>\n ^^\n source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts\n   ^^^^^\n   source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n        ^\n        source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n         ^\n         source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n          ^^^^^\n          source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n               ^\n               source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                ^^^^\n                source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts entity.name.type.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                     ^^^^\n                     source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts entity.name.type.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                            ^^\n                            source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts string.quoted.single.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts keyword.operator.type.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                   ^^^^^\n                                   source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts string.quoted.single.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n>}>(taskListQuery)\n ^\n source.ts meta.var.expr.ts meta.type.parameters.ts meta.object.type.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n   ^\n   source.ts meta.var.expr.ts meta.brace.round.ts\n    ^^^^^^^^^^^^^\n    source.ts meta.var.expr.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.brace.round.ts\n>\n ^\n source.ts\n>if (loading) return true\n ^^\n source.ts keyword.control.conditional.ts\n   ^\n   source.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^^^^^^^\n     source.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts\n              ^^^^^^\n              source.ts keyword.control.flow.ts\n                    ^\n                    source.ts\n                     ^^^^\n                     source.ts constant.language.boolean.true.ts\n>if (error)\n ^^\n source.ts keyword.control.conditional.ts\n   ^\n   source.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^^^^^\n     source.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.brace.round.ts\n>  return false\n ^^\n source.ts\n   ^^^^^^\n   source.ts keyword.control.flow.ts\n         ^\n         source.ts\n          ^^^^^\n          source.ts constant.language.boolean.false.ts"
  },
  {
    "path": "tests/baselines/issue809.baseline.txt",
    "content": "original file\n-----------------------------------\n;(false ? '' : ') =>') + ''\nconsole.log(\"hello\");\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>;(false ? '' : ') =>') + ''\n ^\n source.ts punctuation.terminator.statement.ts\n  ^\n  source.ts meta.brace.round.ts\n   ^^^^^\n   source.ts constant.language.boolean.false.ts\n        ^\n        source.ts\n         ^\n         source.ts keyword.operator.ternary.ts\n          ^\n          source.ts\n           ^\n           source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n            ^\n            source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n             ^\n             source.ts\n              ^\n              source.ts keyword.operator.ternary.ts\n               ^\n               source.ts\n                ^\n                source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                 ^^^^\n                 source.ts string.quoted.single.ts\n                     ^\n                     source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                      ^\n                      source.ts meta.brace.round.ts\n                       ^\n                       source.ts\n                        ^\n                        source.ts keyword.operator.arithmetic.ts\n                         ^\n                         source.ts\n                          ^\n                          source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                           ^\n                           source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n>console.log(\"hello\");\n ^^^^^^^\n source.ts meta.function-call.ts support.class.console.ts\n        ^\n        source.ts meta.function-call.ts punctuation.accessor.ts\n         ^^^\n         source.ts meta.function-call.ts support.function.console.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n              ^^^^^\n              source.ts string.quoted.double.ts\n                   ^\n                   source.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                    ^\n                    source.ts meta.brace.round.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/issue812.baseline.txt",
    "content": "original file\n-----------------------------------\ntype Foo = {\n  bar: number\n   | string;\n};\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type Foo = {\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>  bar: number\n ^^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts\n   ^^^\n   source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>   | string;\n ^^^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n    ^\n    source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.ts\n     ^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n      ^^^^^^\n      source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts punctuation.terminator.statement.ts\n>};\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/issue814.baseline.txt",
    "content": "original file\n-----------------------------------\nclass A{}\nclass B{}\n\nconst a = new A()\nconst b = new B()\n\na instanceof A !== b instanceof B\na instanceof A > b instanceof B\na instanceof A & b instanceof B\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class A{}\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>class B{}\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>const a = new A()\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^^^\n           source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n              ^\n              source.ts meta.var.expr.ts new.expr.ts\n               ^\n               source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                ^\n                source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                 ^\n                 source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n>const b = new B()\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^^^\n           source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n              ^\n              source.ts meta.var.expr.ts new.expr.ts\n               ^\n               source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                ^\n                source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                 ^\n                 source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n>\n ^\n source.ts\n>a instanceof A !== b instanceof B\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^^^^^^^^^^\n   source.ts keyword.operator.expression.instanceof.ts\n             ^\n             source.ts\n              ^\n              source.ts entity.name.type.ts\n               ^\n               source.ts\n                ^^^\n                source.ts keyword.operator.comparison.ts\n                   ^\n                   source.ts\n                    ^\n                    source.ts variable.other.readwrite.ts\n                     ^\n                     source.ts\n                      ^^^^^^^^^^\n                      source.ts keyword.operator.expression.instanceof.ts\n                                ^\n                                source.ts\n                                 ^\n                                 source.ts entity.name.type.ts\n>a instanceof A > b instanceof B\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^^^^^^^^^^\n   source.ts keyword.operator.expression.instanceof.ts\n             ^\n             source.ts\n              ^\n              source.ts entity.name.type.ts\n               ^\n               source.ts\n                ^\n                source.ts keyword.operator.relational.ts\n                 ^\n                 source.ts\n                  ^\n                  source.ts variable.other.readwrite.ts\n                   ^\n                   source.ts\n                    ^^^^^^^^^^\n                    source.ts keyword.operator.expression.instanceof.ts\n                              ^\n                              source.ts\n                               ^\n                               source.ts entity.name.type.ts\n>a instanceof A & b instanceof B\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^^^^^^^^^^\n   source.ts keyword.operator.expression.instanceof.ts\n             ^\n             source.ts\n              ^\n              source.ts entity.name.type.ts\n               ^\n               source.ts\n                ^\n                source.ts keyword.operator.bitwise.ts\n                 ^\n                 source.ts\n                  ^\n                  source.ts variable.other.readwrite.ts\n                   ^\n                   source.ts\n                    ^^^^^^^^^^\n                    source.ts keyword.operator.expression.instanceof.ts\n                              ^\n                              source.ts\n                               ^\n                               source.ts entity.name.type.ts"
  },
  {
    "path": "tests/baselines/issue824.baseline.txt",
    "content": "original file\n-----------------------------------\nexport let a: string\n    | boolean | number;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export let a: string\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^\n        source.ts meta.var.expr.ts storage.type.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n               ^^^^^^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n>    | boolean | number;\n ^^^^\n source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n       ^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                 ^^^^^^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/issue907.baseline.txt",
    "content": "original file\n-----------------------------------\ntype A = typeof a extends number ? 0 : 1;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type A = typeof a extends number ? 0 : 1;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^\n        source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^^^^^^\n          source.ts meta.type.declaration.ts keyword.operator.expression.typeof.ts\n                ^\n                source.ts meta.type.declaration.ts\n                 ^\n                 source.ts meta.type.declaration.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^^^^^^^\n                   source.ts meta.type.declaration.ts storage.modifier.ts\n                          ^\n                          source.ts meta.type.declaration.ts\n                           ^^^^^^\n                           source.ts meta.type.declaration.ts support.type.primitive.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts constant.numeric.decimal.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts constant.numeric.decimal.ts\n                                         ^\n                                         source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/issue909.baseline.txt",
    "content": "original file\n-----------------------------------\nclass TestClass {\n  veryVeryVeryVeryVeryVeryVeryVeryLongName = true;\n  veryVeryVeryVeryLongName: string;\n\n  test = () =>\n    !this.veryVeryVeryVeryVeryVeryVeryVeryLongName ||\n    (!!this.veryVeryVeryVeryLongName && this.veryVeryVeryVeryLongName === 'veryVeryVeryVeryLongString');\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class TestClass {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n                ^\n                source.ts meta.class.ts\n                 ^\n                 source.ts meta.class.ts punctuation.definition.block.ts\n>  veryVeryVeryVeryVeryVeryVeryVeryLongName = true;\n ^^\n source.ts meta.class.ts meta.field.declaration.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                           ^\n                                           source.ts meta.class.ts meta.field.declaration.ts\n                                            ^\n                                            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                             ^\n                                             source.ts meta.class.ts meta.field.declaration.ts\n                                              ^^^^\n                                              source.ts meta.class.ts meta.field.declaration.ts constant.language.boolean.true.ts\n                                                  ^\n                                                  source.ts meta.class.ts punctuation.terminator.statement.ts\n>  veryVeryVeryVeryLongName: string;\n ^^\n source.ts meta.class.ts meta.field.declaration.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                             ^^^^^^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                   ^\n                                   source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>  test = () =>\n ^^\n source.ts meta.class.ts meta.field.declaration.ts\n   ^^^^\n   source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n             ^^\n             source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts storage.type.function.arrow.ts\n>    !this.veryVeryVeryVeryVeryVeryVeryVeryLongName ||\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts keyword.operator.logical.ts\n      ^^^^\n      source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n           source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                                   ^\n                                                   source.ts meta.class.ts meta.field.declaration.ts\n                                                    ^^\n                                                    source.ts meta.class.ts meta.field.declaration.ts keyword.operator.logical.ts\n>    (!!this.veryVeryVeryVeryLongName && this.veryVeryVeryVeryLongName === 'veryVeryVeryVeryLongString');\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n      ^\n      source.ts meta.class.ts meta.field.declaration.ts keyword.operator.logical.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts keyword.operator.logical.ts\n        ^^^^\n        source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n             ^^^^^^^^^^^^^^^^^^^^^^^^\n             source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                     ^\n                                     source.ts meta.class.ts meta.field.declaration.ts\n                                      ^^\n                                      source.ts meta.class.ts meta.field.declaration.ts keyword.operator.logical.ts\n                                        ^\n                                        source.ts meta.class.ts meta.field.declaration.ts\n                                         ^^^^\n                                         source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n                                             ^\n                                             source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                                              ^^^^^^^^^^^^^^^^^^^^^^^^\n                                              source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                                                      ^\n                                                                      source.ts meta.class.ts meta.field.declaration.ts\n                                                                       ^^^\n                                                                       source.ts meta.class.ts meta.field.declaration.ts keyword.operator.comparison.ts\n                                                                          ^\n                                                                          source.ts meta.class.ts meta.field.declaration.ts\n                                                                           ^\n                                                                           source.ts meta.class.ts meta.field.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                                            source.ts meta.class.ts meta.field.declaration.ts string.quoted.single.ts\n                                                                                                      ^\n                                                                                                      source.ts meta.class.ts meta.field.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                                                                       ^\n                                                                                                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                                                                                        ^\n                                                                                                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/issue916.baseline.txt",
    "content": "original file\n-----------------------------------\nfunc<string[]>(`hello`)\nfunc<string[]>`hello`\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>func<string[]>(`hello`)\n ^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n     ^\n     source.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n      ^^^^^^\n      source.ts meta.type.parameters.ts support.type.primitive.ts\n            ^\n            source.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n             ^\n             source.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n              ^\n              source.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n               ^\n               source.ts meta.brace.round.ts\n                ^\n                source.ts string.template.ts punctuation.definition.string.template.begin.ts\n                 ^^^^^\n                 source.ts string.template.ts\n                      ^\n                      source.ts string.template.ts punctuation.definition.string.template.end.ts\n                       ^\n                       source.ts meta.brace.round.ts\n>func<string[]>`hello`\n ^^^^\n source.ts entity.name.function.tagged-template.ts\n     ^\n     source.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n      ^^^^^^\n      source.ts meta.type.parameters.ts support.type.primitive.ts\n            ^\n            source.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n             ^\n             source.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n              ^\n              source.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n               ^\n               source.ts string.template.ts punctuation.definition.string.template.begin.ts\n                ^^^^^\n                source.ts string.template.ts\n                     ^\n                     source.ts string.template.ts punctuation.definition.string.template.end.ts"
  },
  {
    "path": "tests/baselines/issue927.baseline.txt",
    "content": "original file\n-----------------------------------\nlet t = (\n  { test1: (ok(\"t\"), ok(\"t\")) }\n)\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let t = (\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts entity.name.function.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts meta.brace.round.ts\n>  { test1: (ok(\"t\"), ok(\"t\")) }\n ^^\n source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts\n   ^\n   source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n    ^\n    source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n          ^\n          source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n           ^\n           source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts\n            ^\n            source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts meta.brace.round.ts\n             ^^\n             source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts meta.function-call.ts entity.name.function.ts\n               ^\n               source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts meta.brace.round.ts\n                ^\n                source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts meta.brace.round.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts\n                      ^^\n                      source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts meta.function-call.ts entity.name.function.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n>)\n ^\n source.ts meta.var.expr.ts meta.brace.round.ts"
  },
  {
    "path": "tests/baselines/issue930.baseline.txt",
    "content": "original file\n-----------------------------------\nvar x = 3;\nx >>>= 1\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var x = 3;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts constant.numeric.decimal.ts\n          ^\n          source.ts punctuation.terminator.statement.ts\n>x >>>= 1\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^^^^\n   source.ts keyword.operator.assignment.compound.bitwise.ts\n       ^\n       source.ts\n        ^\n        source.ts constant.numeric.decimal.ts"
  },
  {
    "path": "tests/baselines/issue932.baseline.txt",
    "content": "original file\n-----------------------------------\nclass A {\n    f = () => \n        false &&\n        (false) ||\n        (this.f);\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class A {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>    f = () => \n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n      ^\n      source.ts meta.class.ts meta.field.declaration.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n            ^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts storage.type.function.arrow.ts\n              ^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n>        false &&\n ^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n         ^^^^^\n         source.ts meta.class.ts meta.field.declaration.ts constant.language.boolean.false.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^\n               source.ts meta.class.ts meta.field.declaration.ts keyword.operator.logical.ts\n>        (false) ||\n ^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n          ^^^^^\n          source.ts meta.class.ts meta.field.declaration.ts constant.language.boolean.false.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts\n                 ^^\n                 source.ts meta.class.ts meta.field.declaration.ts keyword.operator.logical.ts\n>        (this.f);\n ^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n          ^^^^\n          source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                 ^\n                 source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/issue935.baseline.txt",
    "content": "original file\n-----------------------------------\nexport interface FeatureControl {\n    enableCompletionProvider?:\n    string\n    | {\n        processCompletions?(completion: CustomCompletionItem): vsc.CompletionItem[]\n    }\n}\n\nexport interface RegisterLanguageSupportOptions {\n    /** handle requesting position in document */\n    pathAutoRename?: {\n        glob: string\n        isSpecCanBeUsed?(specName): boolean | string\n    }\n}\n\nexport interface API {\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export interface FeatureControl {\n ^^^^^^\n source.ts meta.interface.ts keyword.control.export.ts\n       ^\n       source.ts meta.interface.ts\n        ^^^^^^^^^\n        source.ts meta.interface.ts storage.type.interface.ts\n                 ^\n                 source.ts meta.interface.ts\n                  ^^^^^^^^^^^^^^\n                  source.ts meta.interface.ts entity.name.type.interface.ts\n                                ^\n                                source.ts meta.interface.ts\n                                 ^\n                                 source.ts meta.interface.ts punctuation.definition.block.ts\n>    enableCompletionProvider?:\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^^^^^^^^^^^^^^^^^^^^^^^^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                             ^\n                             source.ts meta.interface.ts meta.field.declaration.ts keyword.operator.optional.ts\n                              ^\n                              source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n>    string\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n     ^^^^^^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>    | {\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n     ^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.ts\n      ^\n      source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n       ^\n       source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>        processCompletions?(completion: CustomCompletionItem): vsc.CompletionItem[]\n ^^^^^^^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts\n         ^^^^^^^^^^^^^^^^^^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                           ^\n                           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts keyword.operator.optional.ts\n                            ^\n                            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                             ^^^^^^^^^^\n                             source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                       ^\n                                       source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                        ^\n                                        source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                         ^^^^^^^^^^^^^^^^^^^^\n                                         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                             ^\n                                                             source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                              ^\n                                                              source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                               ^\n                                                               source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts\n                                                                ^^^\n                                                                source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.module.ts\n                                                                   ^\n                                                                   source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts punctuation.accessor.ts\n                                                                    ^^^^^^^^^^^^^^\n                                                                    source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n                                                                                  ^\n                                                                                  source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                   ^\n                                                                                   source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n>    }\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts\n     ^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>export interface RegisterLanguageSupportOptions {\n ^^^^^^\n source.ts meta.interface.ts keyword.control.export.ts\n       ^\n       source.ts meta.interface.ts\n        ^^^^^^^^^\n        source.ts meta.interface.ts storage.type.interface.ts\n                 ^\n                 source.ts meta.interface.ts\n                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                  source.ts meta.interface.ts entity.name.type.interface.ts\n                                                ^\n                                                source.ts meta.interface.ts\n                                                 ^\n                                                 source.ts meta.interface.ts punctuation.definition.block.ts\n>    /** handle requesting position in document */\n ^^^^\n source.ts meta.interface.ts\n     ^^^\n     source.ts meta.interface.ts comment.block.documentation.ts punctuation.definition.comment.ts\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n        source.ts meta.interface.ts comment.block.documentation.ts\n                                                ^^\n                                                source.ts meta.interface.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>    pathAutoRename?: {\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^^^^^^^^^^^^^^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                   ^\n                   source.ts meta.interface.ts meta.field.declaration.ts keyword.operator.optional.ts\n                    ^\n                    source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                     ^\n                     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                      ^\n                      source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>        glob: string\n ^^^^^^^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n         ^^^^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n             ^\n             source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n               ^^^^^^\n               source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>        isSpecCanBeUsed?(specName): boolean | string\n ^^^^^^^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts\n         ^^^^^^^^^^^^^^^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                        ^\n                        source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts keyword.operator.optional.ts\n                         ^\n                         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                          ^^^^^^^^\n                          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                  ^\n                                  source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                   ^\n                                   source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts\n                                     ^^^^^^^\n                                     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                                            ^\n                                            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts\n                                             ^\n                                             source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.ts\n                                              ^\n                                              source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts\n                                               ^^^^^^\n                                               source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n>    }\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts\n     ^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>export interface API {\n ^^^^^^\n source.ts meta.interface.ts keyword.control.export.ts\n       ^\n       source.ts meta.interface.ts\n        ^^^^^^^^^\n        source.ts meta.interface.ts storage.type.interface.ts\n                 ^\n                 source.ts meta.interface.ts\n                  ^^^\n                  source.ts meta.interface.ts entity.name.type.interface.ts\n                     ^\n                     source.ts meta.interface.ts\n                      ^\n                      source.ts meta.interface.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/issue940.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Foo {\n    readonly baz = \n        this.bar() ||\n        (this.bar() && \n        this.bar());\n\n    bar() {\n        return true;\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Foo {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n          ^\n          source.ts meta.class.ts\n           ^\n           source.ts meta.class.ts punctuation.definition.block.ts\n>    readonly baz = \n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts storage.modifier.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                   ^^\n                   source.ts meta.class.ts meta.field.declaration.ts\n>        this.bar() ||\n ^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n         ^^^^\n         source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n              ^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts\n                    ^^\n                    source.ts meta.class.ts meta.field.declaration.ts keyword.operator.logical.ts\n>        (this.bar() && \n ^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n          ^^^^\n          source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n               ^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts\n                     ^^\n                     source.ts meta.class.ts meta.field.declaration.ts keyword.operator.logical.ts\n                       ^^\n                       source.ts meta.class.ts meta.field.declaration.ts\n>        this.bar());\n ^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n         ^^^^\n         source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n              ^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                    ^\n                    source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    bar() {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        return true;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                ^^^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.language.boolean.true.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/issue948.baseline.txt",
    "content": "original file\n-----------------------------------\nclass A {\n  #a =\n      /** @param {MouseEvent} arg */\n      arg => {\n          const someV = 132\n          if (true) {\n              doSomething()\n          }\n          while(false) {\n              \n          }\n      }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class A {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>  #a =\n ^^\n source.ts meta.class.ts meta.field.declaration.ts\n   ^^\n   source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts\n      ^\n      source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n>      /** @param {MouseEvent} arg */\n ^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n       ^^^\n       source.ts meta.class.ts meta.field.declaration.ts comment.block.documentation.ts punctuation.definition.comment.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts comment.block.documentation.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n            ^^^^^\n            source.ts meta.class.ts meta.field.declaration.ts comment.block.documentation.ts storage.type.class.jsdoc\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts comment.block.documentation.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n                   ^^^^^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts comment.block.documentation.ts\n                               ^^^\n                               source.ts meta.class.ts meta.field.declaration.ts comment.block.documentation.ts variable.other.jsdoc\n                                  ^\n                                  source.ts meta.class.ts meta.field.declaration.ts comment.block.documentation.ts\n                                   ^^\n                                   source.ts meta.class.ts meta.field.declaration.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>      arg => {\n ^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n       ^^^\n       source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts variable.parameter.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n           ^^\n           source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts storage.type.function.arrow.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>          const someV = 132\n ^^^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts\n           ^^^^^\n           source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                 ^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n                         ^^^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts\n>          if (true) {\n ^^^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts\n           ^^\n           source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts keyword.control.conditional.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts constant.language.boolean.true.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>              doSomething()\n ^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.block.ts\n               ^^^^^^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.block.ts meta.brace.round.ts\n>          }\n ^^^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.block.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>          while(false) {\n ^^^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts\n           ^^^^^\n           source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts keyword.control.loop.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                 ^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts constant.language.boolean.false.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>              \n ^^^^^^^^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.block.ts\n>          }\n ^^^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.block.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>      }\n ^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/issue949.baseline.txt",
    "content": "original file\n-----------------------------------\nexport interface PackageJson {\n    exports?:\n    | string\n    | Record<\n        string,\n        string | { types?: string; require?: string; import?: string }\n    >;\n}\n\nexport function foo() { }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export interface PackageJson {\n ^^^^^^\n source.ts meta.interface.ts keyword.control.export.ts\n       ^\n       source.ts meta.interface.ts\n        ^^^^^^^^^\n        source.ts meta.interface.ts storage.type.interface.ts\n                 ^\n                 source.ts meta.interface.ts\n                  ^^^^^^^^^^^\n                  source.ts meta.interface.ts entity.name.type.interface.ts\n                             ^\n                             source.ts meta.interface.ts\n                              ^\n                              source.ts meta.interface.ts punctuation.definition.block.ts\n>    exports?:\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.interface.ts meta.field.declaration.ts keyword.operator.optional.ts\n             ^\n             source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n>    | string\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n     ^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.ts\n      ^\n      source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n       ^^^^^^\n       source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n>    | Record<\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n     ^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.ts\n      ^\n      source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n       ^^^^^^\n       source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n             ^\n             source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n>        string,\n ^^^^^^^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts\n         ^^^^^^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts support.type.primitive.ts\n               ^\n               source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.separator.comma.ts\n>        string | { types?: string; require?: string; import?: string }\n ^^^^^^^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts\n         ^^^^^^\n         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts support.type.primitive.ts\n               ^\n               source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts\n                ^\n                source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts keyword.operator.type.ts\n                 ^\n                 source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts\n                  ^\n                  source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts punctuation.definition.block.ts\n                   ^\n                   source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts\n                    ^^^^^\n                    source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                         ^\n                         source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts keyword.operator.optional.ts\n                          ^\n                          source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                           ^\n                           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                            ^^^^^^\n                            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                  ^\n                                  source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts punctuation.terminator.statement.ts\n                                   ^\n                                   source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts\n                                    ^^^^^^^\n                                    source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                           ^\n                                           source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts keyword.operator.optional.ts\n                                            ^\n                                            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                             ^\n                                             source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                              ^^^^^^\n                                              source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                                    ^\n                                                    source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts punctuation.terminator.statement.ts\n                                                     ^\n                                                     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts\n                                                      ^^^^^^\n                                                      source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                                            ^\n                                                            source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts keyword.operator.optional.ts\n                                                             ^\n                                                             source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                              ^\n                                                              source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                               ^^^^^^\n                                                               source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                     ^\n                                                                     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                                      ^\n                                                                      source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts meta.object.type.ts punctuation.definition.block.ts\n>    >;\n ^^^^\n source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts\n     ^\n     source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n      ^\n      source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>export function foo() { }\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                      ^\n                      source.ts meta.function.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts\n                         ^\n                         source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/issue951.baseline.txt",
    "content": "original file\n-----------------------------------\ntype thing = <T extends object>(what: T) => ReturnType<typeof generic<T>>\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type thing = <T extends object>(what: T) => ReturnType<typeof generic<T>>\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^\n            source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.type.declaration.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts\n                 ^^^^^^^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts\n                         ^^^^^^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.builtin.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                 ^^^^\n                                 source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts\n                                          ^^\n                                          source.ts meta.type.declaration.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts meta.type.function.return.ts\n                                             ^^^^^^^^^^\n                                             source.ts meta.type.declaration.ts meta.type.function.return.ts entity.name.type.ts\n                                                       ^\n                                                       source.ts meta.type.declaration.ts meta.type.function.return.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                        ^^^^^^\n                                                        source.ts meta.type.declaration.ts meta.type.function.return.ts meta.type.parameters.ts keyword.operator.expression.typeof.ts\n                                                              ^\n                                                              source.ts meta.type.declaration.ts meta.type.function.return.ts meta.type.parameters.ts\n                                                               ^^^^^^^\n                                                               source.ts meta.type.declaration.ts meta.type.function.return.ts meta.type.parameters.ts variable.other.readwrite.ts\n                                                                      ^\n                                                                      source.ts meta.type.declaration.ts meta.type.function.return.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                       ^\n                                                                       source.ts meta.type.declaration.ts meta.type.function.return.ts meta.type.parameters.ts meta.type.parameters.ts entity.name.type.ts\n                                                                        ^\n                                                                        source.ts meta.type.declaration.ts meta.type.function.return.ts meta.type.parameters.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                         ^\n                                                                         source.ts meta.type.declaration.ts meta.type.function.return.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts"
  },
  {
    "path": "tests/baselines/issue957.baseline.txt",
    "content": "original file\n-----------------------------------\nexport type UseQuery<TData, TVariables> = typeof useQuery<TData, TVariables>\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export type UseQuery<TData, TVariables> = typeof useQuery<TData, TVariables>\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                      ^^^^^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts\n                             ^^^^^^^^^^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts\n                                           ^^^^^^\n                                           source.ts meta.type.declaration.ts keyword.operator.expression.typeof.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts\n                                                  ^^^^^^^^\n                                                  source.ts meta.type.declaration.ts variable.other.readwrite.ts\n                                                          ^\n                                                          source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                           ^^^^^\n                                                           source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                                                                ^\n                                                                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                                                 ^\n                                                                 source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                                                  ^^^^^^^^^^\n                                                                  source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                                                                            ^\n                                                                            source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts"
  },
  {
    "path": "tests/baselines/issue971.baseline.txt",
    "content": "original file\n-----------------------------------\nlet a: number\nfor (let i = 0; i < 10; i++) {}\n\nlet x: string\nif (false) {\n}\n\n\nclass Test {\n  a() {\n    let x: string\n    if (false) {\n    }\n  }\n\n  b(): Promise<string> {\n    let y: string\n    if (false) {\n      ;[y] = ['']\n    } else {\n      if (true) {\n        let z = `:` // everything after this is colored as string\n      }\n    }\n  }\n\n  c() {}\n}\n\nlet x: number\ntry {\n} catch (err) {}\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let a: number\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n>for (let i = 0; i < 10; i++) {}\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^\n      source.ts meta.var.expr.ts storage.type.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts constant.numeric.decimal.ts\n               ^\n               source.ts punctuation.terminator.statement.ts\n                ^\n                source.ts\n                 ^\n                 source.ts variable.other.readwrite.ts\n                  ^\n                  source.ts\n                   ^\n                   source.ts keyword.operator.relational.ts\n                    ^\n                    source.ts\n                     ^^\n                     source.ts constant.numeric.decimal.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts\n                        ^\n                        source.ts\n                         ^\n                         source.ts variable.other.readwrite.ts\n                          ^^\n                          source.ts keyword.operator.increment.ts\n                            ^\n                            source.ts meta.brace.round.ts\n                             ^\n                             source.ts\n                              ^\n                              source.ts meta.block.ts punctuation.definition.block.ts\n                               ^\n                               source.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>let x: string\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n>if (false) {\n ^^\n source.ts keyword.control.conditional.ts\n   ^\n   source.ts\n    ^\n    source.ts meta.brace.round.ts\n     ^^^^^\n     source.ts constant.language.boolean.false.ts\n          ^\n          source.ts meta.brace.round.ts\n           ^\n           source.ts\n            ^\n            source.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>\n ^\n source.ts\n>class Test {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n           ^\n           source.ts meta.class.ts\n            ^\n            source.ts meta.class.ts punctuation.definition.block.ts\n>  a() {\n ^^\n source.ts meta.class.ts meta.method.declaration.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    let x: string\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n            ^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n>    if (false) {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n         ^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.language.boolean.false.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>  }\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>  b(): Promise<string> {\n ^^\n source.ts meta.class.ts meta.method.declaration.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n        ^^^^^^^\n        source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                ^^^^^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts support.type.primitive.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    let y: string\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n            ^^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n>    if (false) {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n         ^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.language.boolean.false.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>      ;[y] = ['']\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.array.literal.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n>    } else {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>      if (true) {\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n       ^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.control.conditional.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.brace.round.ts\n           ^^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts constant.language.boolean.true.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.brace.round.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>        let z = `:` // everything after this is colored as string\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts\n         ^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts string.template.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts\n                     ^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.var.expr.ts comment.line.double-slash.ts\n>      }\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts\n>  }\n ^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.class.ts\n>  c() {}\n ^^\n source.ts meta.class.ts meta.method.declaration.ts\n   ^\n   source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n    ^\n    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n      ^\n      source.ts meta.class.ts meta.method.declaration.ts\n       ^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>let x: number\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n>try {\n ^^^\n source.ts keyword.control.trycatch.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.block.ts punctuation.definition.block.ts\n>} catch (err) {}\n ^\n source.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts\n   ^^^^^\n   source.ts keyword.control.trycatch.ts\n        ^\n        source.ts\n         ^\n         source.ts meta.brace.round.ts\n          ^^^\n          source.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.brace.round.ts\n              ^\n              source.ts\n               ^\n               source.ts meta.block.ts punctuation.definition.block.ts\n                ^\n                source.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/javascript.baseline.txt",
    "content": "original file\n-----------------------------------\nswitch (x) {\n    case 0:\n    default:\n}\ntypeof x;\nvoid x;\ndelete x.y;\nx instanceof y;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>switch (x) {\n ^^^^^^\n source.ts switch-statement.expr.ts switch-expression.expr.ts keyword.control.switch.ts\n       ^\n       source.ts switch-statement.expr.ts switch-expression.expr.ts\n        ^\n        source.ts switch-statement.expr.ts switch-expression.expr.ts meta.brace.round.ts\n         ^\n         source.ts switch-statement.expr.ts switch-expression.expr.ts variable.other.readwrite.ts\n          ^\n          source.ts switch-statement.expr.ts switch-expression.expr.ts meta.brace.round.ts\n           ^\n           source.ts switch-statement.expr.ts\n            ^\n            source.ts switch-statement.expr.ts switch-block.expr.ts punctuation.definition.block.ts\n>    case 0:\n ^^^^\n source.ts switch-statement.expr.ts switch-block.expr.ts\n     ^^^^\n     source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n         ^\n         source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts\n          ^\n          source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts constant.numeric.decimal.ts\n           ^\n           source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>    default:\n ^^^^\n source.ts switch-statement.expr.ts switch-block.expr.ts\n     ^^^^^^^\n     source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n            ^\n            source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>}\n ^\n source.ts switch-statement.expr.ts punctuation.definition.block.ts\n>typeof x;\n ^^^^^^\n source.ts keyword.operator.expression.typeof.ts\n       ^\n       source.ts\n        ^\n        source.ts variable.other.readwrite.ts\n         ^\n         source.ts punctuation.terminator.statement.ts\n>void x;\n ^^^^\n source.ts keyword.operator.expression.void.ts\n     ^\n     source.ts\n      ^\n      source.ts variable.other.readwrite.ts\n       ^\n       source.ts punctuation.terminator.statement.ts\n>delete x.y;\n ^^^^^^\n source.ts keyword.operator.expression.delete.ts\n       ^\n       source.ts\n        ^\n        source.ts variable.other.object.ts\n         ^\n         source.ts punctuation.accessor.ts\n          ^\n          source.ts support.variable.property.dom.ts\n           ^\n           source.ts punctuation.terminator.statement.ts\n>x instanceof y;\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^^^^^^^^^^\n   source.ts keyword.operator.expression.instanceof.ts\n             ^\n             source.ts\n              ^\n              source.ts entity.name.type.ts\n               ^\n               source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/javascriptClasses.baseline.txt",
    "content": "original file\n-----------------------------------\nMyClass.prototype.method = function () {\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>MyClass.prototype.method = function () {\n ^^^^^^^\n source.ts support.class.ts\n        ^\n        source.ts punctuation.accessor.ts\n         ^^^^^^^^^\n         source.ts support.variable.property.ts\n                  ^\n                  source.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts support.variable.property.dom.ts\n                         ^\n                         source.ts\n                          ^\n                          source.ts keyword.operator.assignment.ts\n                           ^\n                           source.ts\n                            ^^^^^^^^\n                            source.ts meta.function.ts storage.type.function.ts\n                                    ^\n                                    source.ts meta.function.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                       ^\n                                       source.ts meta.function.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/jsdocProperty.baseline.txt",
    "content": "original file\n-----------------------------------\n/**\n * @namespace\n * @property {object}  defaults               - The default values for parties.\n * @property {number}  defaults.players       - The default number of players.\n * @property {string}  defaults.level         - The default level for the party.\n * @property {object}  defaults.treasure      - The default treasure.\n * @property {number}  defaults.treasure.gold - How much gold the party starts with.\n */\nvar config = {\n    defaults: {\n        players: 1,\n        level:   'beginner',\n        treasure: {\n            gold: 0\n        }\n    }\n};\n/**\n * @class MyClass\n * @param {string} name It is a Input Name\n * @prop {string} name It is a Prop Name\n */\nclass MyClass {\n    constructor(name) {\n        this.name = name || 'NoName';\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/**\n ^^^\n source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n> * @namespace\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n> * @property {object}  defaults               - The default values for parties.\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n             ^\n             source.ts comment.block.documentation.ts\n              ^\n              source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n               ^^^^^^\n               source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                     ^\n                     source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                      ^^\n                      source.ts comment.block.documentation.ts\n                        ^^^^^^^^\n                        source.ts comment.block.documentation.ts variable.other.jsdoc\n                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                source.ts comment.block.documentation.ts\n> * @property {number}  defaults.players       - The default number of players.\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n             ^\n             source.ts comment.block.documentation.ts\n              ^\n              source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n               ^^^^^^\n               source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                     ^\n                     source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                      ^^\n                      source.ts comment.block.documentation.ts\n                        ^^^^^^^^^^^^^^^^\n                        source.ts comment.block.documentation.ts variable.other.jsdoc\n                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                        source.ts comment.block.documentation.ts\n> * @property {string}  defaults.level         - The default level for the party.\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n             ^\n             source.ts comment.block.documentation.ts\n              ^\n              source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n               ^^^^^^\n               source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                     ^\n                     source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                      ^^\n                      source.ts comment.block.documentation.ts\n                        ^^^^^^^^^^^^^^\n                        source.ts comment.block.documentation.ts variable.other.jsdoc\n                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                      source.ts comment.block.documentation.ts\n> * @property {object}  defaults.treasure      - The default treasure.\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n             ^\n             source.ts comment.block.documentation.ts\n              ^\n              source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n               ^^^^^^\n               source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                     ^\n                     source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                      ^^\n                      source.ts comment.block.documentation.ts\n                        ^^^^^^^^^^^^^^^^^\n                        source.ts comment.block.documentation.ts variable.other.jsdoc\n                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                         source.ts comment.block.documentation.ts\n> * @property {number}  defaults.treasure.gold - How much gold the party starts with.\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n             ^\n             source.ts comment.block.documentation.ts\n              ^\n              source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n               ^^^^^^\n               source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                     ^\n                     source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                      ^^\n                      source.ts comment.block.documentation.ts\n                        ^^^^^^^^^^^^^^^^^^^^^^\n                        source.ts comment.block.documentation.ts variable.other.jsdoc\n                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                              source.ts comment.block.documentation.ts\n> */\n ^\n source.ts comment.block.documentation.ts\n  ^^\n  source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>var config = {\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    defaults: {\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n     ^^^^^^^^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        players: 1,\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n         ^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        level:   'beginner',\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n         ^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n               ^^^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                   ^^^^^^^^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        treasure: {\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n         ^^^^^^^^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n>            gold: 0\n ^^^^^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n             ^^^^\n             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n>        }\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n>    }\n ^^^^\n source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n>};\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts\n>/**\n ^^^\n source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n> * @class MyClass\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n          ^^^^^^^^^\n          source.ts comment.block.documentation.ts\n> * @param {string} name It is a Input Name\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n          ^\n          source.ts comment.block.documentation.ts\n           ^\n           source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n            ^^^^^^\n            source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                  ^\n                  source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                   ^\n                   source.ts comment.block.documentation.ts\n                    ^^^^\n                    source.ts comment.block.documentation.ts variable.other.jsdoc\n                        ^^^^^^^^^^^^^^^^^^^^\n                        source.ts comment.block.documentation.ts\n> * @prop {string} name It is a Prop Name\n ^^^\n source.ts comment.block.documentation.ts\n    ^\n    source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n     ^^^^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc\n         ^\n         source.ts comment.block.documentation.ts\n          ^\n          source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n           ^^^^^^\n           source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                 ^\n                 source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                  ^\n                  source.ts comment.block.documentation.ts\n                   ^^^^\n                   source.ts comment.block.documentation.ts variable.other.jsdoc\n                       ^^^^^^^^^^^^^^^^^^^\n                       source.ts comment.block.documentation.ts\n> */\n ^\n source.ts comment.block.documentation.ts\n  ^^\n  source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>class MyClass {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n              ^\n              source.ts meta.class.ts\n               ^\n               source.ts meta.class.ts punctuation.definition.block.ts\n>    constructor(name) {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^^^^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        this.name = name || 'NoName';\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts\n              ^^^^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts support.variable.property.dom.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                     ^^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                          ^^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.logical.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                              ^^^^^^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/jsdocType.baseline.txt",
    "content": "original file\n-----------------------------------\n/** @type {number} */\nconst d1 = 42;\n\n/** @satisfies {number} */\nconst d2 = 42;\n\nconst e1 = /** @type {number} */(23);\n\nconst e2 = /** @satisfies {number} */(23);\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/** @type {number} */\n ^^^\n source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n    ^\n    source.ts comment.block.documentation.ts\n     ^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n      ^^^^\n      source.ts comment.block.documentation.ts storage.type.class.jsdoc\n          ^\n          source.ts comment.block.documentation.ts\n           ^\n           source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n            ^^^^^^\n            source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                  ^\n                  source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                   ^\n                   source.ts comment.block.documentation.ts\n                    ^^\n                    source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>const d1 = 42;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^^\n            source.ts meta.var.expr.ts constant.numeric.decimal.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>/** @satisfies {number} */\n ^^^\n source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n    ^\n    source.ts comment.block.documentation.ts\n     ^\n     source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n      ^^^^^^^^^\n      source.ts comment.block.documentation.ts storage.type.class.jsdoc\n               ^\n               source.ts comment.block.documentation.ts\n                ^\n                source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n                 ^^^^^^\n                 source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                       ^\n                       source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                        ^\n                        source.ts comment.block.documentation.ts\n                         ^^\n                         source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>const d2 = 42;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^^\n            source.ts meta.var.expr.ts constant.numeric.decimal.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>const e1 = /** @type {number} */(23);\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^^^\n            source.ts meta.var.expr.ts comment.block.documentation.ts punctuation.definition.comment.ts\n               ^\n               source.ts meta.var.expr.ts comment.block.documentation.ts\n                ^\n                source.ts meta.var.expr.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n                 ^^^^\n                 source.ts meta.var.expr.ts comment.block.documentation.ts storage.type.class.jsdoc\n                     ^\n                     source.ts meta.var.expr.ts comment.block.documentation.ts\n                      ^\n                      source.ts meta.var.expr.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n                       ^^^^^^\n                       source.ts meta.var.expr.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                             ^\n                             source.ts meta.var.expr.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                              ^\n                              source.ts meta.var.expr.ts comment.block.documentation.ts\n                               ^^\n                               source.ts meta.var.expr.ts comment.block.documentation.ts punctuation.definition.comment.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^^\n                                  source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>const e2 = /** @satisfies {number} */(23);\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^^^\n            source.ts meta.var.expr.ts comment.block.documentation.ts punctuation.definition.comment.ts\n               ^\n               source.ts meta.var.expr.ts comment.block.documentation.ts\n                ^\n                source.ts meta.var.expr.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n                 ^^^^^^^^^\n                 source.ts meta.var.expr.ts comment.block.documentation.ts storage.type.class.jsdoc\n                          ^\n                          source.ts meta.var.expr.ts comment.block.documentation.ts\n                           ^\n                           source.ts meta.var.expr.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc\n                            ^^^^^^\n                            source.ts meta.var.expr.ts comment.block.documentation.ts entity.name.type.instance.jsdoc\n                                  ^\n                                  source.ts meta.var.expr.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc\n                                   ^\n                                   source.ts meta.var.expr.ts comment.block.documentation.ts\n                                    ^^\n                                    source.ts meta.var.expr.ts comment.block.documentation.ts punctuation.definition.comment.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.brace.round.ts\n                                       ^^\n                                       source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/jsxTagWithTypeArguments.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\n<MyComponent<number> data={12} />\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n><MyComponent<number> data={12} />\n ^\n source.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n  ^^^^^^^^^^^\n  source.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n             ^\n             source.tsx meta.tag.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\n              ^^^^^^\n              source.tsx meta.tag.tsx meta.type.parameters.tsx support.type.primitive.tsx\n                    ^\n                    source.tsx meta.tag.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\n                     ^\n                     source.tsx meta.tag.tsx meta.tag.attributes.tsx\n                      ^^^^\n                      source.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                          ^\n                          source.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                           ^\n                           source.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.begin.tsx\n                            ^^\n                            source.tsx meta.tag.tsx meta.tag.attributes.tsx meta.embedded.expression.tsx constant.numeric.decimal.tsx\n                              ^\n                              source.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.section.embedded.end.tsx\n                               ^\n                               source.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                ^^\n                                source.tsx meta.tag.tsx punctuation.definition.tag.end.tsx"
  },
  {
    "path": "tests/baselines/keyof.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Shape {\n    name: string;\n    width: number;\n    height: number;\n    visible: boolean;\n}\n\ntype T01 = keyof Object;\n\ntype T10 = Shape[\"name\"];\n\ntype T30 = string[][\"length\"];\ntype T31 = string[][number];\n\ntype T50 = any[any];\ntype T51 = any[number];\ntype T52 = any[string];\n\ntype T60 = {}[\"toString\"];\ntype T61 = [][\"toString\"];\n\ndeclare let cond: boolean;\n\nfunction getProperty<T, K extends keyof T>(obj: T, key: K) {\n    return obj[key];\n}\n\nfunction setProperty<T, K extends keyof T>(obj: T, key: K, value: T[K]) {\n    obj[key] = value;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Shape {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n            ^\n            source.ts meta.class.ts\n             ^\n             source.ts meta.class.ts punctuation.definition.block.ts\n>    name: string;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n           ^^^^^^\n           source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                 ^\n                 source.ts meta.class.ts punctuation.terminator.statement.ts\n>    width: number;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n            ^^^^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.class.ts punctuation.terminator.statement.ts\n>    height: number;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                   ^\n                   source.ts meta.class.ts punctuation.terminator.statement.ts\n>    visible: boolean;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n              ^^^^^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>type T01 = keyof Object;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^\n            source.ts meta.type.declaration.ts keyword.operator.expression.keyof.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^^^^^^\n                  source.ts meta.type.declaration.ts entity.name.type.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>type T10 = Shape[\"name\"];\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.tuple.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                   ^^^^\n                   source.ts meta.type.declaration.ts meta.type.tuple.ts string.quoted.double.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.tuple.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>type T30 = string[][\"length\"];\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^^\n            source.ts meta.type.declaration.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.tuple.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                      ^^^^^^\n                      source.ts meta.type.declaration.ts meta.type.tuple.ts string.quoted.double.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.tuple.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts\n>type T31 = string[][number];\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^^\n            source.ts meta.type.declaration.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                     ^^^^^^\n                     source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                            ^\n                            source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>type T50 = any[any];\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^\n            source.ts meta.type.declaration.ts support.type.primitive.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                ^^^\n                source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n>type T51 = any[number];\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^\n            source.ts meta.type.declaration.ts support.type.primitive.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                ^^^^^^\n                source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts\n>type T52 = any[string];\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^\n            source.ts meta.type.declaration.ts support.type.primitive.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                ^^^^^^\n                source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>type T60 = {}[\"toString\"];\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.tuple.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                ^^^^^^^^\n                source.ts meta.type.declaration.ts meta.type.tuple.ts string.quoted.double.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.tuple.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                          ^\n                          source.ts punctuation.terminator.statement.ts\n>type T61 = [][\"toString\"];\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^\n            source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n             ^\n             source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.tuple.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                ^^^^^^^^\n                source.ts meta.type.declaration.ts meta.type.tuple.ts string.quoted.double.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.tuple.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                          ^\n                          source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>declare let cond: boolean;\n ^^^^^^^\n source.ts meta.var.expr.ts storage.modifier.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^\n         source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^^^^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                   ^^^^^^^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n                          ^\n                          source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>function getProperty<T, K extends keyof T>(obj: T, key: K) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                     ^\n                     source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                      ^\n                      source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                       ^\n                       source.ts meta.function.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                        ^\n                        source.ts meta.function.ts meta.type.parameters.ts\n                         ^\n                         source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                          ^\n                          source.ts meta.function.ts meta.type.parameters.ts\n                           ^^^^^^^\n                           source.ts meta.function.ts meta.type.parameters.ts storage.modifier.ts\n                                  ^\n                                  source.ts meta.function.ts meta.type.parameters.ts\n                                   ^^^^^\n                                   source.ts meta.function.ts meta.type.parameters.ts keyword.operator.expression.keyof.ts\n                                        ^\n                                        source.ts meta.function.ts meta.type.parameters.ts\n                                         ^\n                                         source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                                          ^\n                                          source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                           ^\n                                           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                            ^^^\n                                            source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                               ^\n                                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                ^\n                                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.parameters.ts\n                                                    ^^^\n                                                    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                           ^\n                                                           source.ts meta.function.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    return obj[key];\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^^^\n            source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                ^^^\n                source.ts meta.function.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>function setProperty<T, K extends keyof T>(obj: T, key: K, value: T[K]) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                     ^\n                     source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                      ^\n                      source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                       ^\n                       source.ts meta.function.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                        ^\n                        source.ts meta.function.ts meta.type.parameters.ts\n                         ^\n                         source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                          ^\n                          source.ts meta.function.ts meta.type.parameters.ts\n                           ^^^^^^^\n                           source.ts meta.function.ts meta.type.parameters.ts storage.modifier.ts\n                                  ^\n                                  source.ts meta.function.ts meta.type.parameters.ts\n                                   ^^^^^\n                                   source.ts meta.function.ts meta.type.parameters.ts keyword.operator.expression.keyof.ts\n                                        ^\n                                        source.ts meta.function.ts meta.type.parameters.ts\n                                         ^\n                                         source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                                          ^\n                                          source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                           ^\n                                           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                            ^^^\n                                            source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                               ^\n                                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                ^\n                                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.parameters.ts\n                                                    ^^^\n                                                    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.parameters.ts\n                                                            ^^^^^\n                                                            source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                       ^\n                                                                       source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                        ^\n                                                                        source.ts meta.function.ts\n                                                                         ^\n                                                                         source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    obj[key] = value;\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^\n     source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n         ^^^\n         source.ts meta.function.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n             ^\n             source.ts meta.function.ts meta.block.ts\n              ^\n              source.ts meta.function.ts meta.block.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.function.ts meta.block.ts\n                ^^^^^\n                source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/mappedType.baseline.txt",
    "content": "original file\n-----------------------------------\ntype Item = { a: string, b: number, c: boolean };\n\ntype T1 = { [P in \"x\" | \"y\"]: number };  // { x: number, y: number }\ntype T2 = { [P in \"x\" | \"y\"]: P };  // { x: \"x\", y: \"y\" }\ntype T3 = { [P in \"a\" | \"b\"]: Item[P] };  // { a: string, b: number }\ntype T4 = { [P in keyof Item]: Date };  // { a: Date, b: Date, c: Date }\ntype T5 = { [P in keyof Item]: Item[P] };  // { a: string, b: number, c: boolean }\ntype T6 = { readonly [P in keyof Item]: Item[P] };  // { readonly a: string, readonly b: number, readonly c: boolean }\ntype T7 = { [P in keyof Item]: Array<Item[P]> };  // { a: string[], b: number[], c: boolean[] }\n\n// Make all properties in T optional\ntype Partial<T> = {\n    [P in keyof T]?: T[P];\n};\n\n// Make all properties in T readonly\ntype Readonly<T> = {\n    readonly [P in keyof T]: T[P];\n};\n\n// Pick a set of properties from T\ntype Pick<T, K extends keyof T> = {\n    [P in K]: T[P];\n}\n\n// A type with a given set of properties of a given type\ntype Record<K extends string | number, T> = {\n    [_ in K]: T;\n}\n\n// A proxy for a given type\ntype Proxy<T> = {\n    get(): T;\n    set(value: T): void;\n}\n\n// Proxify all properties in T\ntype Proxify<T> = {\n    [P in keyof T]: Proxy<T[P]>;\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type Item = { a: string, b: number, c: boolean };\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts\n               ^\n               source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                ^\n                source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                  ^^^^^^\n                  source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.object.type.ts punctuation.separator.comma.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                             ^^^^^^\n                             source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.object.type.ts punctuation.separator.comma.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                        ^^^^^^^\n                                        source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                                                 ^\n                                                 source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>type T1 = { [P in \"x\" | \"y\"]: number };  // { x: number, y: number }\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n              ^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n               ^\n               source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                ^^\n                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.quoted.double.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.type.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.quoted.double.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                               ^^^^^^\n                               source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts support.type.primitive.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                                       ^\n                                       source.ts punctuation.terminator.statement.ts\n                                        ^^\n                                        source.ts\n                                          ^^\n                                          source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                            ^^^^^^^^^^^^^^^^^^^^^^^^^\n                                            source.ts comment.line.double-slash.ts\n>type T2 = { [P in \"x\" | \"y\"]: P };  // { x: \"x\", y: \"y\" }\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n              ^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n               ^\n               source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                ^^\n                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.quoted.double.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.type.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.quoted.double.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                                  ^\n                                  source.ts punctuation.terminator.statement.ts\n                                   ^^\n                                   source.ts\n                                     ^^\n                                     source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                       ^^^^^^^^^^^^^^^^^^^\n                                       source.ts comment.line.double-slash.ts\n>type T3 = { [P in \"a\" | \"b\"]: Item[P] };  // { a: string, b: number }\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n              ^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n               ^\n               source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                ^^\n                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.quoted.double.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.type.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.quoted.double.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                               ^^^^\n                               source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                                        ^\n                                        source.ts punctuation.terminator.statement.ts\n                                         ^^\n                                         source.ts\n                                           ^^\n                                           source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                             ^^^^^^^^^^^^^^^^^^^^^^^^^\n                                             source.ts comment.line.double-slash.ts\n>type T4 = { [P in keyof Item]: Date };  // { a: Date, b: Date, c: Date }\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n              ^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n               ^\n               source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                ^^\n                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                   ^^^^^\n                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.keyof.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                         ^^^^\n                         source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                ^^^^\n                                source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                                      ^\n                                      source.ts punctuation.terminator.statement.ts\n                                       ^^\n                                       source.ts\n                                         ^^\n                                         source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                           source.ts comment.line.double-slash.ts\n>type T5 = { [P in keyof Item]: Item[P] };  // { a: string, b: number, c: boolean }\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n              ^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n               ^\n               source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                ^^\n                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                   ^^^^^\n                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.keyof.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                         ^^^^\n                         source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                ^^^^\n                                source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                                         ^\n                                         source.ts punctuation.terminator.statement.ts\n                                          ^^\n                                          source.ts\n                                            ^^\n                                            source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                              source.ts comment.line.double-slash.ts\n>type T6 = { readonly [P in keyof Item]: Item[P] };  // { readonly a: string, readonly b: number, readonly c: boolean }\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts\n             ^^^^^^^^\n             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts storage.modifier.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                         ^^\n                         source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                            ^^^^^\n                            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.keyof.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                  ^^^^\n                                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                         ^^^^\n                                         source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                                                  ^\n                                                  source.ts punctuation.terminator.statement.ts\n                                                   ^^\n                                                   source.ts\n                                                     ^^\n                                                     source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                       source.ts comment.line.double-slash.ts\n>type T7 = { [P in keyof Item]: Array<Item[P]> };  // { a: string[], b: number[], c: boolean[] }\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n              ^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n               ^\n               source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                ^^\n                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                   ^^^^^\n                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.keyof.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                         ^^^^\n                         source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                ^^^^^\n                                source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                      ^^^^\n                                      source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts entity.name.type.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.tuple.ts entity.name.type.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                                                ^\n                                                source.ts punctuation.terminator.statement.ts\n                                                 ^^\n                                                 source.ts\n                                                   ^^\n                                                   source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                     source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>// Make all properties in T optional\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>type Partial<T> = {\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n             ^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                ^\n                source.ts meta.type.declaration.ts\n                 ^\n                 source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>    [P in keyof T]?: T[P];\n ^^^^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n      ^\n      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n       ^\n       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n        ^^\n        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n          ^\n          source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n           ^^^^^\n           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.keyof.ts\n                ^\n                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.optional.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.object.type.ts punctuation.terminator.statement.ts\n>};\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>// Make all properties in T readonly\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>type Readonly<T> = {\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.type.declaration.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>    readonly [P in keyof T]: T[P];\n ^^^^\n source.ts meta.type.declaration.ts meta.object.type.ts\n     ^^^^^^^^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts storage.modifier.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n              ^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n               ^\n               source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                ^\n                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                 ^^\n                 source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                    ^^^^^\n                    source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.keyof.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.object.type.ts punctuation.terminator.statement.ts\n>};\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>// Pick a set of properties from T\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>type Pick<T, K extends keyof T> = {\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n          ^\n          source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n           ^\n           source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n            ^\n            source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n             ^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts\n                ^^^^^^^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts\n                        ^^^^^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts keyword.operator.expression.keyof.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                ^\n                                source.ts meta.type.declaration.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>    [P in K]: T[P];\n ^^^^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n      ^\n      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n       ^\n       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n        ^^\n        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n          ^\n          source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n               ^\n               source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                ^\n                source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.object.type.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>// A type with a given set of properties of a given type\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>type Record<K extends string | number, T> = {\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n            ^\n            source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n             ^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts\n               ^^^^^^^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts\n                       ^^^^^^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.parameters.ts keyword.operator.type.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                ^^^^^^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>    [_ in K]: T;\n ^^^^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n      ^\n      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n       ^\n       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n        ^^\n        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n          ^\n          source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n               ^\n               source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                ^\n                source.ts meta.type.declaration.ts meta.object.type.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>// A proxy for a given type\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>type Proxy<T> = {\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n           ^\n           source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n            ^\n            source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n             ^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n              ^\n              source.ts meta.type.declaration.ts\n               ^\n               source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.type.declaration.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>    get(): T;\n ^^^^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts\n     ^^^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n          ^\n          source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts punctuation.terminator.statement.ts\n>    set(value: T): void;\n ^^^^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts\n     ^^^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n        ^\n        source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^^^^^\n         source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n              ^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                ^\n                source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts\n                    ^^^^\n                    source.ts meta.type.declaration.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.object.type.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>// Proxify all properties in T\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>type Proxify<T> = {\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n             ^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                ^\n                source.ts meta.type.declaration.ts\n                 ^\n                 source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>    [P in keyof T]: Proxy<T[P]>;\n ^^^^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n      ^\n      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n       ^\n       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n        ^^\n        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n          ^\n          source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n           ^^^^^\n           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.keyof.ts\n                ^\n                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                     ^^^^^\n                     source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts entity.name.type.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.tuple.ts entity.name.type.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.object.type.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/modifierOperators.baseline.txt",
    "content": "original file\n-----------------------------------\ntype Mutable<T> = {\n    -readonly [P in keyof T]: T[P]\n}\ntype Required<T> = {\n    [P in keyof T]-?: T[P];\n}\ntype ReadonlyAndPartial<T> = {\n    +readonly [P in keyof T]+?: T[P];\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type Mutable<T> = {\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n             ^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                ^\n                source.ts meta.type.declaration.ts\n                 ^\n                 source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>    -readonly [P in keyof T]: T[P]\n ^^^^\n source.ts meta.type.declaration.ts meta.object.type.ts\n     ^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.type.modifier.ts\n      ^^^^^^^^\n      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts storage.modifier.ts\n              ^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n               ^\n               source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                ^\n                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                  ^^\n                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                     ^^^^^\n                     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.keyof.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n>}\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>type Required<T> = {\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.type.declaration.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>    [P in keyof T]-?: T[P];\n ^^^^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n      ^\n      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n       ^\n       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n        ^^\n        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n          ^\n          source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n           ^^^^^\n           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.keyof.ts\n                ^\n                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.type.modifier.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.optional.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.object.type.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>type ReadonlyAndPartial<T> = {\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^^^^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                           ^\n                           source.ts meta.type.declaration.ts\n                            ^\n                            source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                             ^\n                             source.ts meta.type.declaration.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>    +readonly [P in keyof T]+?: T[P];\n ^^^^\n source.ts meta.type.declaration.ts meta.object.type.ts\n     ^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.type.modifier.ts\n      ^^^^^^^^\n      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts storage.modifier.ts\n              ^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n               ^\n               source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                ^\n                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                  ^^\n                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                     ^^^^^\n                     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.keyof.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.type.modifier.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.optional.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.object.type.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/multilineArrow.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has type parameters that would be jsx in tsx files\nconst method1 = <T>(\n    param1: T,\n    param2: T\n): Promise<T> => {\n    return param1;\n};\nconst method2 = async <T>(\n    param1: T,\n    param2: T\n): Promise<T> => {\n    return param1;\n};\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has type parameters that would be jsx in tsx files\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>const method1 = <T>(\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.brace.round.ts\n>    param1: T,\n ^^^^\n source.ts meta.var.expr.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts variable.parameter.ts\n           ^\n           source.ts meta.var.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.var.expr.ts meta.type.annotation.ts\n             ^\n             source.ts meta.var.expr.ts meta.type.annotation.ts entity.name.type.ts\n              ^\n              source.ts meta.var.expr.ts punctuation.separator.parameter.ts\n>    param2: T\n ^^^^\n source.ts meta.var.expr.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts variable.parameter.ts\n           ^\n           source.ts meta.var.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.var.expr.ts meta.type.annotation.ts\n             ^\n             source.ts meta.var.expr.ts meta.type.annotation.ts entity.name.type.ts\n>): Promise<T> => {\n ^\n source.ts meta.var.expr.ts meta.brace.round.ts\n  ^\n  source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n   ^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n    ^^^^^^^\n    source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts entity.name.type.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts entity.name.type.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n               ^^\n               source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    return param1;\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n            ^^^^^^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>};\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts\n>const method2 = async <T>(\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^^^^^\n                 source.ts meta.var.expr.ts storage.modifier.async.ts\n                      ^\n                      source.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.brace.round.ts\n>    param1: T,\n ^^^^\n source.ts meta.var.expr.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts variable.parameter.ts\n           ^\n           source.ts meta.var.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.var.expr.ts meta.type.annotation.ts\n             ^\n             source.ts meta.var.expr.ts meta.type.annotation.ts entity.name.type.ts\n              ^\n              source.ts meta.var.expr.ts punctuation.separator.parameter.ts\n>    param2: T\n ^^^^\n source.ts meta.var.expr.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts variable.parameter.ts\n           ^\n           source.ts meta.var.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.var.expr.ts meta.type.annotation.ts\n             ^\n             source.ts meta.var.expr.ts meta.type.annotation.ts entity.name.type.ts\n>): Promise<T> => {\n ^\n source.ts meta.var.expr.ts meta.brace.round.ts\n  ^\n  source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\n   ^\n   source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n    ^^^^^^^\n    source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts entity.name.type.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n            ^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts entity.name.type.ts\n             ^\n             source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n              ^\n              source.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts\n               ^^\n               source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.arrow.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    return param1;\n ^^^^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n            ^^^^^^\n            source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>};\n ^\n source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/multilineDestructuringParametersOfArrow.baseline.txt",
    "content": "original file\n-----------------------------------\nclass c {\n    private renderExploreItem = ({\n        item: offer\n    }: {\n        item: OfferModel | undefined\n    }) => {\n        return \"something\";\n    }\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class c {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>    private renderExploreItem = ({\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^^^^^^^^^^^^^^^^^\n             source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        item: offer\n ^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts\n         ^^^^\n         source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts meta.object.member.ts\n               ^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n>    }: {\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts meta.object.member.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>        item: OfferModel | undefined\n ^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n         ^^^^\n         source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n               ^^^^^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                            ^^^^^^^^^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.builtin.ts\n>    }) => {\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts\n        ^^\n        source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts storage.type.function.arrow.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>        return \"something\";\n ^^^^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts\n         ^^^^^^\n         source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                 ^^^^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts string.quoted.double.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/multineTag.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - contains jsx\nconst something = <T>(\n    sometext\n    )\n</T>;\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - contains jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>const something = <T>(\n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^^^^^^^^^\n       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx\n                ^\n                source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n                  ^\n                  source.tsx meta.var.expr.tsx\n                   ^\n                   source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n                    ^\n                    source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n                     ^\n                     source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n                      ^^\n                      source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n>    sometext\n ^^^^^^^^^^^^^\n source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n>    )\n ^^^^^^\n source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx meta.jsx.children.tsx\n></T>;\n ^^\n source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.begin.tsx\n   ^\n   source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx entity.name.tag.tsx support.class.component.tsx\n    ^\n    source.tsx meta.var.expr.tsx meta.tag.without-attributes.tsx punctuation.definition.tag.end.tsx\n     ^\n     source.tsx punctuation.terminator.statement.tsx"
  },
  {
    "path": "tests/baselines/multipleVariableDeclaration.baseline.txt",
    "content": "original file\n-----------------------------------\nvar a, b, c\nvar a1 = 1, b1 = function (x) { return 1; }, c1 = \"string\"\nvar a2: string = \"test\", b2: () => void = () => { console.log(\"hello\"); }, c2: string | number;\nvar obj = {\n\tfoo: \"10\"\n}, other = 10;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var a, b, c\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts punctuation.separator.comma.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n         ^\n         source.ts meta.var.expr.ts punctuation.separator.comma.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n>var a1 = 1, b1 = function (x) { return 1; }, c1 = \"string\"\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n        ^\n        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts constant.numeric.decimal.ts\n           ^\n           source.ts meta.var.expr.ts punctuation.separator.comma.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts entity.name.function.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^^^^^^^^\n                  source.ts meta.var.expr.ts meta.function.expression.ts storage.type.function.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.function.expression.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts variable.parameter.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.function.expression.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n                                 ^^^^^^\n                                 source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts keyword.control.flow.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts constant.numeric.decimal.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n                                            ^\n                                            source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                                             ^\n                                             source.ts meta.var.expr.ts\n                                              ^^\n                                              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                    ^^^^^^\n                                                    source.ts meta.var.expr.ts string.quoted.double.ts\n                                                          ^\n                                                          source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>var a2: string = \"test\", b2: () => void = () => { console.log(\"hello\"); }, c2: string | number;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                   ^^^^\n                   source.ts meta.var.expr.ts string.quoted.double.ts\n                       ^\n                       source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                         ^\n                         source.ts meta.var.expr.ts\n                          ^^\n                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts entity.name.function.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                                 ^^\n                                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.function.return.ts\n                                    ^^^^\n                                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.function.return.ts support.type.primitive.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.function.return.ts\n                                         ^\n                                         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.arrow.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.arrow.ts\n                                              ^^\n                                              source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.arrow.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                                                   ^^^^^^^\n                                                   source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.class.console.ts\n                                                          ^\n                                                          source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                                           ^^^\n                                                           source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.function.console.ts\n                                                              ^\n                                                              source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                               ^\n                                                               source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                                ^^^^^\n                                                                source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts string.quoted.double.ts\n                                                                     ^\n                                                                     source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                      ^\n                                                                      source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts\n                                                                       ^\n                                                                       source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n                                                                        ^\n                                                                        source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts\n                                                                         ^\n                                                                         source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                                                                          ^\n                                                                          source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                                                                           ^\n                                                                           source.ts meta.var.expr.ts\n                                                                            ^^\n                                                                            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                                                                              ^\n                                                                              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                               ^\n                                                                               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                                                                                ^^^^^^\n                                                                                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                                      ^\n                                                                                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                                                                                       ^\n                                                                                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.ts\n                                                                                        ^\n                                                                                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                                                                                         ^^^^^^\n                                                                                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                                               ^\n                                                                                               source.ts punctuation.terminator.statement.ts\n>var obj = {\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n>\tfoo: \"10\"\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts\n  ^^^\n  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n     ^\n     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n      ^\n      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n       ^\n       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n        ^^\n        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>}, other = 10;\n ^\n source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.var.expr.ts punctuation.separator.comma.ts\n   ^\n   source.ts meta.var.expr.ts\n    ^^^^^\n    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^^\n            source.ts meta.var.expr.ts constant.numeric.decimal.ts\n              ^\n              source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/namedTuples.baseline.txt",
    "content": "original file\n-----------------------------------\nexport type Segment = [length: number, count: number];\nexport type SegmentAnnotated = [\n    /** \n     * Size of message buffer segment handles\n     */\n    length: number,\n    /**\n     * Number of segments handled at once\n     */\n    count: number\n];\ndeclare var c: [number, number];\ndeclare var d: [a: number, b: number];\nexport type WithOptAndRest = [first: number, second?: number, ...rest: string[]];\nexport function useState<T>(initial: T): [value: T, setter: (T) => void] {\n    return null as any;\n}\nexport type Iter = Func<[step: number, iterations: number]>;\nexport function readSegment([length, count]: [number, number]) {}\nexport type RecursiveTupleA = [initial: string, next: RecursiveTupleA];\nexport type RecusiveRest = [first: string, ...rest: RecusiveRest[]];\nexport type RecusiveRest2 = [string, ...RecusiveRest2[]];\n\nexport type Segment1 = [length: number, number]; // partially named, disallowed\nexport type List = [item: any, ...any];  // partially named, disallowed\nexport type Pair = [item: any, any?];  // partially named, disallowed\nexport type Opt = [element: string?]; // question mark on element disallowed\nexport type Trailing = [first: string, rest: ...string[]]; // dots on element disallowed\nexport type OptTrailing = [first: string, rest: ...string[]?]; // dots+question on element disallowed\nexport type OptRest = [first: string, ...rest?: string[]]; // rest+optional disallowed\nexport type NonArrayRest = [first: string, ...rest: number]; // non-arraylike rest, disallowed\nexport type RecusiveRestUnlabeled = [string, ...RecusiveRestUnlabeled];\nexport type RecusiveRest = [first: string, ...rest: RecusiveRest]; // marked as incorrect, same as above\n\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>export type Segment = [length: number, count: number];\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                    ^\n                    source.ts meta.type.declaration.ts\n                     ^\n                     source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.type.declaration.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                        ^^^^^^\n                        source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                ^^^^^^\n                                source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                        ^^^^^\n                                        source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                               ^^^^^^\n                                               source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                                     ^\n                                                     source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                      ^\n                                                      source.ts punctuation.terminator.statement.ts\n>export type SegmentAnnotated = [\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^^^^^^^^^^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                             ^\n                             source.ts meta.type.declaration.ts\n                              ^\n                              source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                               ^\n                               source.ts meta.type.declaration.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n>    /** \n ^^^^\n source.ts meta.type.declaration.ts meta.type.tuple.ts\n     ^^^\n     source.ts meta.type.declaration.ts meta.type.tuple.ts comment.block.documentation.ts punctuation.definition.comment.ts\n        ^^\n        source.ts meta.type.declaration.ts meta.type.tuple.ts comment.block.documentation.ts\n>     * Size of message buffer segment handles\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.type.declaration.ts meta.type.tuple.ts comment.block.documentation.ts\n>     */\n ^^^^^\n source.ts meta.type.declaration.ts meta.type.tuple.ts comment.block.documentation.ts\n      ^^\n      source.ts meta.type.declaration.ts meta.type.tuple.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>    length: number,\n ^^^^\n source.ts meta.type.declaration.ts meta.type.tuple.ts\n     ^^^^^^\n     source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n           ^\n           source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n            ^\n            source.ts meta.type.declaration.ts meta.type.tuple.ts\n             ^^^^^^\n             source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n>    /**\n ^^^^\n source.ts meta.type.declaration.ts meta.type.tuple.ts\n     ^^^\n     source.ts meta.type.declaration.ts meta.type.tuple.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>     * Number of segments handled at once\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.type.declaration.ts meta.type.tuple.ts comment.block.documentation.ts\n>     */\n ^^^^^\n source.ts meta.type.declaration.ts meta.type.tuple.ts comment.block.documentation.ts\n      ^^\n      source.ts meta.type.declaration.ts meta.type.tuple.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>    count: number\n ^^^^\n source.ts meta.type.declaration.ts meta.type.tuple.ts\n     ^^^^^\n     source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n          ^\n          source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n           ^\n           source.ts meta.type.declaration.ts meta.type.tuple.ts\n            ^^^^^^\n            source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n>];\n ^\n source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n  ^\n  source.ts punctuation.terminator.statement.ts\n>declare var c: [number, number];\n ^^^^^^^\n source.ts meta.var.expr.ts storage.modifier.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^\n         source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                 ^^^^^^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts\n                         ^^^^^^\n                         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                ^\n                                source.ts punctuation.terminator.statement.ts\n>declare var d: [a: number, b: number];\n ^^^^^^^\n source.ts meta.var.expr.ts storage.modifier.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^\n         source.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.label.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.label.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts\n                    ^^^^^^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.label.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.label.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts\n                               ^^^^^^\n                               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                      ^\n                                      source.ts punctuation.terminator.statement.ts\n>export type WithOptAndRest = [first: number, second?: number, ...rest: string[]];\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^^^^^^^^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                           ^\n                           source.ts meta.type.declaration.ts\n                            ^\n                            source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                             ^\n                             source.ts meta.type.declaration.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                               ^^^^^\n                               source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                      ^^^^^^\n                                      source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                              ^^^^^^\n                                              source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                                                    ^\n                                                    source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.optional.ts\n                                                     ^\n                                                     source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                                      ^\n                                                      source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                                       ^^^^^^\n                                                       source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                                             ^\n                                                             source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                                              ^\n                                                              source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                                               ^^^\n                                                               source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.rest.ts\n                                                                  ^^^^\n                                                                  source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                                                                      ^\n                                                                      source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                                                       ^\n                                                                       source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                                                        ^^^^^^\n                                                                        source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                                                              ^\n                                                                              source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                               ^\n                                                                               source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                ^\n                                                                                source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                 ^\n                                                                                 source.ts punctuation.terminator.statement.ts\n>export function useState<T>(initial: T): [value: T, setter: (T) => void] {\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                         ^\n                         source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                          ^\n                          source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                           ^\n                           source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                            ^\n                            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                             ^^^^^^^\n                             source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                    ^\n                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                        ^\n                                        source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                         ^\n                                         source.ts meta.function.ts meta.return.type.ts\n                                          ^\n                                          source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                           ^^^^^\n                                           source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts entity.name.label.ts\n                                                ^\n                                                source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts entity.name.type.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts\n                                                     ^^^^^^\n                                                     source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts entity.name.label.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts\n                                                                 ^^\n                                                                 source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.return.ts\n                                                                    ^^^^\n                                                                    source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.type.function.return.ts support.type.primitive.ts\n                                                                        ^\n                                                                        source.ts meta.function.ts meta.return.type.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                         ^\n                                                                         source.ts meta.function.ts meta.return.type.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    return null as any;\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^^^^\n            source.ts meta.function.ts meta.block.ts constant.language.null.ts\n                ^\n                source.ts meta.function.ts meta.block.ts\n                 ^^\n                 source.ts meta.function.ts meta.block.ts keyword.control.as.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts\n                    ^^^\n                    source.ts meta.function.ts meta.block.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>export type Iter = Func<[step: number, iterations: number]>;\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.type.declaration.ts\n                    ^^^^\n                    source.ts meta.type.declaration.ts entity.name.type.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                          ^^^^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts entity.name.label.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts punctuation.separator.label.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts\n                                ^^^^^^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts support.type.primitive.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts\n                                        ^^^^^^^^^^\n                                        source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts entity.name.label.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                                   ^\n                                                   source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts\n                                                    ^^^^^^\n                                                    source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts support.type.primitive.ts\n                                                          ^\n                                                          source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                                           ^\n                                                           source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                            ^\n                                                            source.ts punctuation.terminator.statement.ts\n>export function readSegment([length, count]: [number, number]) {}\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                            ^\n                            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                              ^^^^^^\n                              source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts variable.parameter.ts\n                                    ^\n                                    source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.separator.comma.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n                                      ^^^^^\n                                      source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts variable.parameter.ts\n                                           ^\n                                           source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                                            ^\n                                            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                             ^\n                                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                              ^\n                                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                               ^^^^^^\n                                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts\n                                                       ^^^^^^\n                                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                               ^\n                                                               source.ts meta.function.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>export type RecursiveTupleA = [initial: string, next: RecursiveTupleA];\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^^^^^^^^^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                            ^\n                            source.ts meta.type.declaration.ts\n                             ^\n                             source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                              ^\n                              source.ts meta.type.declaration.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                ^^^^^^^\n                                source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                         ^^^^^^\n                                         source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                                 ^^^^\n                                                 source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                                                     ^\n                                                     source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                                      ^\n                                                      source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                                       ^^^^^^^^^^^^^^^\n                                                       source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n                                                                      ^\n                                                                      source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                       ^\n                                                                       source.ts punctuation.terminator.statement.ts\n>export type RecusiveRest = [first: string, ...rest: RecusiveRest[]];\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^^^^^^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                         ^\n                         source.ts meta.type.declaration.ts\n                          ^\n                          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                           ^\n                           source.ts meta.type.declaration.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                             ^^^^^\n                             source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                    ^^^^^^\n                                    source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                            ^^^\n                                            source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.rest.ts\n                                               ^^^^\n                                               source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                                                   ^\n                                                   source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                                    ^\n                                                    source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                                     ^^^^^^^^^^^^\n                                                     source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n                                                                 ^\n                                                                 source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                  ^\n                                                                  source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                   ^\n                                                                   source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                    ^\n                                                                    source.ts punctuation.terminator.statement.ts\n>export type RecusiveRest2 = [string, ...RecusiveRest2[]];\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^^^^^^^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                          ^\n                          source.ts meta.type.declaration.ts\n                           ^\n                           source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                            ^\n                            source.ts meta.type.declaration.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                              ^^^^^^\n                              source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                      ^^^\n                                      source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.rest.ts\n                                         ^^^^^^^^^^^^^\n                                         source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n                                                      ^\n                                                      source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.tuple.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.tuple.ts meta.brace.square.ts\n                                                        ^\n                                                        source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                         ^\n                                                         source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>export type Segment1 = [length: number, number]; // partially named, disallowed\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                     ^\n                     source.ts meta.type.declaration.ts\n                      ^\n                      source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                       ^\n                       source.ts meta.type.declaration.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                         ^^^^^^\n                         source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                 ^^^^^^\n                                 source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                         ^^^^^^\n                                         source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                ^\n                                                source.ts punctuation.terminator.statement.ts\n                                                 ^\n                                                 source.ts\n                                                  ^^\n                                                  source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                    source.ts comment.line.double-slash.ts\n>export type List = [item: any, ...any];  // partially named, disallowed\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.type.declaration.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                     ^^^^\n                     source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.tuple.ts\n                           ^^^\n                           source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                ^^^\n                                source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.rest.ts\n                                   ^^^\n                                   source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                       ^\n                                       source.ts punctuation.terminator.statement.ts\n                                        ^^\n                                        source.ts\n                                          ^^\n                                          source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                            source.ts comment.line.double-slash.ts\n>export type Pair = [item: any, any?];  // partially named, disallowed\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.type.declaration.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                     ^^^^\n                     source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.tuple.ts\n                           ^^^\n                           source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                ^^^\n                                source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.ternary.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                     ^\n                                     source.ts punctuation.terminator.statement.ts\n                                      ^^\n                                      source.ts\n                                        ^^\n                                        source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                          source.ts comment.line.double-slash.ts\n>export type Opt = [element: string?]; // question mark on element disallowed\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                ^\n                source.ts meta.type.declaration.ts\n                 ^\n                 source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                    ^^^^^^^\n                    source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.tuple.ts\n                             ^^^^^^\n                             source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.ternary.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                     ^\n                                     source.ts punctuation.terminator.statement.ts\n                                      ^\n                                      source.ts\n                                       ^^\n                                       source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                         source.ts comment.line.double-slash.ts\n>export type Trailing = [first: string, rest: ...string[]]; // dots on element disallowed\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                     ^\n                     source.ts meta.type.declaration.ts\n                      ^\n                      source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                       ^\n                       source.ts meta.type.declaration.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                         ^^^^^\n                         source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                ^^^^^^\n                                source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                        ^^^^\n                                        source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                              ^^^\n                                              source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.rest.ts\n                                                 ^^^^^^\n                                                 source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                                       ^\n                                                       source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.tuple.ts meta.brace.square.ts\n                                                        ^\n                                                        source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.tuple.ts meta.brace.square.ts\n                                                         ^\n                                                         source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                          ^\n                                                          source.ts punctuation.terminator.statement.ts\n                                                           ^\n                                                           source.ts\n                                                            ^^\n                                                            source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                              source.ts comment.line.double-slash.ts\n>export type OptTrailing = [first: string, rest: ...string[]?]; // dots+question on element disallowed\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^^^^^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                        ^\n                        source.ts meta.type.declaration.ts\n                         ^\n                         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                          ^\n                          source.ts meta.type.declaration.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                            ^^^^^\n                            source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                   ^^^^^^\n                                   source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                           ^^^^\n                                           source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                                 ^^^\n                                                 source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.rest.ts\n                                                    ^^^^^^\n                                                    source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                                          ^\n                                                          source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.tuple.ts meta.brace.square.ts\n                                                           ^\n                                                           source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.tuple.ts meta.brace.square.ts\n                                                            ^\n                                                            source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.ternary.ts\n                                                             ^\n                                                             source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                              ^\n                                                              source.ts punctuation.terminator.statement.ts\n                                                               ^\n                                                               source.ts\n                                                                ^^\n                                                                source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                                  source.ts comment.line.double-slash.ts\n>export type OptRest = [first: string, ...rest?: string[]]; // rest+optional disallowed\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                    ^\n                    source.ts meta.type.declaration.ts\n                     ^\n                     source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.type.declaration.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                        ^^^^^\n                        source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.tuple.ts\n                               ^^^^^^\n                               source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                       ^^^\n                                       source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.rest.ts\n                                          ^^^^\n                                          source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.optional.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                                 ^^^^^^\n                                                 source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                                       ^\n                                                       source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.tuple.ts meta.brace.square.ts\n                                                        ^\n                                                        source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.tuple.ts meta.brace.square.ts\n                                                         ^\n                                                         source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                          ^\n                                                          source.ts punctuation.terminator.statement.ts\n                                                           ^\n                                                           source.ts\n                                                            ^^\n                                                            source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                              source.ts comment.line.double-slash.ts\n>export type NonArrayRest = [first: string, ...rest: number]; // non-arraylike rest, disallowed\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^^^^^^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                         ^\n                         source.ts meta.type.declaration.ts\n                          ^\n                          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                           ^\n                           source.ts meta.type.declaration.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                             ^^^^^\n                             source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                    ^^^^^^\n                                    source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                            ^^^\n                                            source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.rest.ts\n                                               ^^^^\n                                               source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                                                   ^\n                                                   source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                                    ^\n                                                    source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                                     ^^^^^^\n                                                     source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                                           ^\n                                                           source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                            ^\n                                                            source.ts punctuation.terminator.statement.ts\n                                                             ^\n                                                             source.ts\n                                                              ^^\n                                                              source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                                source.ts comment.line.double-slash.ts\n>export type RecusiveRestUnlabeled = [string, ...RecusiveRestUnlabeled];\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^^^^^^^^^^^^^^^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                      ^^^^^^\n                                      source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                              ^^^\n                                              source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.rest.ts\n                                                 ^^^^^^^^^^^^^^^^^^^^^\n                                                 source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n                                                                      ^\n                                                                      source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                       ^\n                                                                       source.ts punctuation.terminator.statement.ts\n>export type RecusiveRest = [first: string, ...rest: RecusiveRest]; // marked as incorrect, same as above\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^^^^^^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                         ^\n                         source.ts meta.type.declaration.ts\n                          ^\n                          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                           ^\n                           source.ts meta.type.declaration.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                             ^^^^^\n                             source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                    ^^^^^^\n                                    source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                            ^^^\n                                            source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.rest.ts\n                                               ^^^^\n                                               source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.label.ts\n                                                   ^\n                                                   source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.label.ts\n                                                    ^\n                                                    source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                                     ^^^^^^^^^^^^\n                                                     source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n                                                                 ^\n                                                                 source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                  ^\n                                                                  source.ts punctuation.terminator.statement.ts\n                                                                   ^\n                                                                   source.ts\n                                                                    ^^\n                                                                    source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                                      source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/namespaceAndModule.baseline.txt",
    "content": "original file\n-----------------------------------\nnamespace ts { }\nmodule ts { }\ndeclare namespace ts {}\ndeclare module ts {}\ndeclare module \"x\" {}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>namespace ts { }\n ^^^^^^^^^\n source.ts meta.namespace.declaration.ts storage.type.namespace.ts\n          ^\n          source.ts meta.namespace.declaration.ts\n           ^^\n           source.ts meta.namespace.declaration.ts entity.name.type.module.ts\n             ^\n             source.ts meta.namespace.declaration.ts\n              ^\n              source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n               ^\n               source.ts meta.namespace.declaration.ts meta.block.ts\n                ^\n                source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>module ts { }\n ^^^^^^\n source.ts meta.namespace.declaration.ts storage.type.namespace.ts\n       ^\n       source.ts meta.namespace.declaration.ts\n        ^^\n        source.ts meta.namespace.declaration.ts entity.name.type.module.ts\n          ^\n          source.ts meta.namespace.declaration.ts\n           ^\n           source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n            ^\n            source.ts meta.namespace.declaration.ts meta.block.ts\n             ^\n             source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>declare namespace ts {}\n ^^^^^^^\n source.ts meta.namespace.declaration.ts storage.modifier.ts\n        ^\n        source.ts meta.namespace.declaration.ts\n         ^^^^^^^^^\n         source.ts meta.namespace.declaration.ts storage.type.namespace.ts\n                  ^\n                  source.ts meta.namespace.declaration.ts\n                   ^^\n                   source.ts meta.namespace.declaration.ts entity.name.type.module.ts\n                     ^\n                     source.ts meta.namespace.declaration.ts\n                      ^\n                      source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>declare module ts {}\n ^^^^^^^\n source.ts meta.namespace.declaration.ts storage.modifier.ts\n        ^\n        source.ts meta.namespace.declaration.ts\n         ^^^^^^\n         source.ts meta.namespace.declaration.ts storage.type.namespace.ts\n               ^\n               source.ts meta.namespace.declaration.ts\n                ^^\n                source.ts meta.namespace.declaration.ts entity.name.type.module.ts\n                  ^\n                  source.ts meta.namespace.declaration.ts\n                   ^\n                   source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n                    ^\n                    source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>declare module \"x\" {}\n ^^^^^^^\n source.ts meta.namespace.declaration.ts storage.modifier.ts\n        ^\n        source.ts meta.namespace.declaration.ts\n         ^^^^^^\n         source.ts meta.namespace.declaration.ts storage.type.namespace.ts\n               ^\n               source.ts meta.namespace.declaration.ts\n                ^\n                source.ts meta.namespace.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                 ^\n                 source.ts meta.namespace.declaration.ts string.quoted.double.ts\n                  ^\n                  source.ts meta.namespace.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                   ^\n                   source.ts meta.namespace.declaration.ts\n                    ^\n                    source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/notMultilineArrow1.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has type assertion\n                                useResult =\n                                    lastLocation.kind === SyntaxKind.Parameter ||\n                                    (\n                                        lastLocation === (<FunctionLikeDeclaration>location).type &&\n                                        result.valueDeclaration.kind === SyntaxKind.Parameter\n                                    );\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has type assertion\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>                                useResult =\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts\n                                 ^^^^^^^^^\n                                 source.ts variable.other.readwrite.ts\n                                          ^\n                                          source.ts\n                                           ^\n                                           source.ts keyword.operator.assignment.ts\n>                                    lastLocation.kind === SyntaxKind.Parameter ||\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts\n                                     ^^^^^^^^^^^^\n                                     source.ts variable.other.object.ts\n                                                 ^\n                                                 source.ts punctuation.accessor.ts\n                                                  ^^^^\n                                                  source.ts variable.other.property.ts\n                                                      ^\n                                                      source.ts\n                                                       ^^^\n                                                       source.ts keyword.operator.comparison.ts\n                                                          ^\n                                                          source.ts\n                                                           ^^^^^^^^^^\n                                                           source.ts variable.other.object.ts\n                                                                     ^\n                                                                     source.ts punctuation.accessor.ts\n                                                                      ^^^^^^^^^\n                                                                      source.ts variable.other.property.ts\n                                                                               ^\n                                                                               source.ts\n                                                                                ^^\n                                                                                source.ts keyword.operator.logical.ts\n>                                    (\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts\n                                     ^\n                                     source.ts meta.brace.round.ts\n>                                        lastLocation === (<FunctionLikeDeclaration>location).type &&\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts\n                                         ^^^^^^^^^^^^\n                                         source.ts variable.other.readwrite.ts\n                                                     ^\n                                                     source.ts\n                                                      ^^^\n                                                      source.ts keyword.operator.comparison.ts\n                                                         ^\n                                                         source.ts\n                                                          ^\n                                                          source.ts meta.brace.round.ts\n                                                           ^\n                                                           source.ts cast.expr.ts meta.brace.angle.ts\n                                                            ^^^^^^^^^^^^^^^^^^^^^^^\n                                                            source.ts cast.expr.ts entity.name.type.ts\n                                                                                   ^\n                                                                                   source.ts cast.expr.ts meta.brace.angle.ts\n                                                                                    ^^^^^^^^\n                                                                                    source.ts variable.other.readwrite.ts\n                                                                                            ^\n                                                                                            source.ts meta.brace.round.ts\n                                                                                             ^\n                                                                                             source.ts punctuation.accessor.ts\n                                                                                              ^^^^\n                                                                                              source.ts support.variable.property.dom.ts\n                                                                                                  ^\n                                                                                                  source.ts\n                                                                                                   ^^\n                                                                                                   source.ts keyword.operator.logical.ts\n>                                        result.valueDeclaration.kind === SyntaxKind.Parameter\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts\n                                         ^^^^^^\n                                         source.ts variable.other.object.ts\n                                               ^\n                                               source.ts punctuation.accessor.ts\n                                                ^^^^^^^^^^^^^^^^\n                                                source.ts variable.other.object.property.ts\n                                                                ^\n                                                                source.ts punctuation.accessor.ts\n                                                                 ^^^^\n                                                                 source.ts variable.other.property.ts\n                                                                     ^\n                                                                     source.ts\n                                                                      ^^^\n                                                                      source.ts keyword.operator.comparison.ts\n                                                                         ^\n                                                                         source.ts\n                                                                          ^^^^^^^^^^\n                                                                          source.ts variable.other.object.ts\n                                                                                    ^\n                                                                                    source.ts punctuation.accessor.ts\n                                                                                     ^^^^^^^^^\n                                                                                     source.ts variable.other.property.ts\n>                                    );\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts\n                                     ^\n                                     source.ts meta.brace.round.ts\n                                      ^\n                                      source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/notMultilineArrow2.baseline.txt",
    "content": "original file\n-----------------------------------\n               if (s & (TypeFlags.Number | TypeFlags.NumberLiteral) && !(s & TypeFlags.EnumLiteral) && (\n                    t & TypeFlags.Enum || t & TypeFlags.NumberLiteral && t & TypeFlags.EnumLiteral)) return true;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>               if (s & (TypeFlags.Number | TypeFlags.NumberLiteral) && !(s & TypeFlags.EnumLiteral) && (\n ^^^^^^^^^^^^^^^\n source.ts\n                ^^\n                source.ts keyword.control.conditional.ts\n                  ^\n                  source.ts\n                   ^\n                   source.ts meta.brace.round.ts\n                    ^\n                    source.ts variable.other.readwrite.ts\n                     ^\n                     source.ts\n                      ^\n                      source.ts keyword.operator.bitwise.ts\n                       ^\n                       source.ts\n                        ^\n                        source.ts meta.brace.round.ts\n                         ^^^^^^^^^\n                         source.ts variable.other.object.ts\n                                  ^\n                                  source.ts punctuation.accessor.ts\n                                   ^^^^^^\n                                   source.ts variable.other.property.ts\n                                         ^\n                                         source.ts\n                                          ^\n                                          source.ts keyword.operator.bitwise.ts\n                                           ^\n                                           source.ts\n                                            ^^^^^^^^^\n                                            source.ts variable.other.object.ts\n                                                     ^\n                                                     source.ts punctuation.accessor.ts\n                                                      ^^^^^^^^^^^^^\n                                                      source.ts variable.other.property.ts\n                                                                   ^\n                                                                   source.ts meta.brace.round.ts\n                                                                    ^\n                                                                    source.ts\n                                                                     ^^\n                                                                     source.ts keyword.operator.logical.ts\n                                                                       ^\n                                                                       source.ts\n                                                                        ^\n                                                                        source.ts keyword.operator.logical.ts\n                                                                         ^\n                                                                         source.ts meta.brace.round.ts\n                                                                          ^\n                                                                          source.ts variable.other.readwrite.ts\n                                                                           ^\n                                                                           source.ts\n                                                                            ^\n                                                                            source.ts keyword.operator.bitwise.ts\n                                                                             ^\n                                                                             source.ts\n                                                                              ^^^^^^^^^\n                                                                              source.ts variable.other.object.ts\n                                                                                       ^\n                                                                                       source.ts punctuation.accessor.ts\n                                                                                        ^^^^^^^^^^^\n                                                                                        source.ts variable.other.property.ts\n                                                                                                   ^\n                                                                                                   source.ts meta.brace.round.ts\n                                                                                                    ^\n                                                                                                    source.ts\n                                                                                                     ^^\n                                                                                                     source.ts keyword.operator.logical.ts\n                                                                                                       ^\n                                                                                                       source.ts\n                                                                                                        ^\n                                                                                                        source.ts meta.brace.round.ts\n>                    t & TypeFlags.Enum || t & TypeFlags.NumberLiteral && t & TypeFlags.EnumLiteral)) return true;\n ^^^^^^^^^^^^^^^^^^^^\n source.ts\n                     ^\n                     source.ts variable.other.readwrite.ts\n                      ^\n                      source.ts\n                       ^\n                       source.ts keyword.operator.bitwise.ts\n                        ^\n                        source.ts\n                         ^^^^^^^^^\n                         source.ts variable.other.object.ts\n                                  ^\n                                  source.ts punctuation.accessor.ts\n                                   ^^^^\n                                   source.ts variable.other.property.ts\n                                       ^\n                                       source.ts\n                                        ^^\n                                        source.ts keyword.operator.logical.ts\n                                          ^\n                                          source.ts\n                                           ^\n                                           source.ts variable.other.readwrite.ts\n                                            ^\n                                            source.ts\n                                             ^\n                                             source.ts keyword.operator.bitwise.ts\n                                              ^\n                                              source.ts\n                                               ^^^^^^^^^\n                                               source.ts variable.other.object.ts\n                                                        ^\n                                                        source.ts punctuation.accessor.ts\n                                                         ^^^^^^^^^^^^^\n                                                         source.ts variable.other.property.ts\n                                                                      ^\n                                                                      source.ts\n                                                                       ^^\n                                                                       source.ts keyword.operator.logical.ts\n                                                                         ^\n                                                                         source.ts\n                                                                          ^\n                                                                          source.ts variable.other.readwrite.ts\n                                                                           ^\n                                                                           source.ts\n                                                                            ^\n                                                                            source.ts keyword.operator.bitwise.ts\n                                                                             ^\n                                                                             source.ts\n                                                                              ^^^^^^^^^\n                                                                              source.ts variable.other.object.ts\n                                                                                       ^\n                                                                                       source.ts punctuation.accessor.ts\n                                                                                        ^^^^^^^^^^^\n                                                                                        source.ts variable.other.property.ts\n                                                                                                   ^\n                                                                                                   source.ts meta.brace.round.ts\n                                                                                                    ^\n                                                                                                    source.ts meta.brace.round.ts\n                                                                                                     ^\n                                                                                                     source.ts\n                                                                                                      ^^^^^^\n                                                                                                      source.ts keyword.control.flow.ts\n                                                                                                            ^\n                                                                                                            source.ts\n                                                                                                             ^^^^\n                                                                                                             source.ts constant.language.boolean.true.ts\n                                                                                                                 ^\n                                                                                                                 source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/notMultilineArrow3.baseline.txt",
    "content": "original file\n-----------------------------------\nconst modifiersRelated = relation === comparableRelation || (\n                    relation === identityRelation ? getMappedTypeModifiers(source) === getMappedTypeModifiers(target) :\n                        getCombinedMappedTypeOptionality(source) <= getCombinedMappedTypeOptionality(target));\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const modifiersRelated = relation === comparableRelation || (\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts meta.var.expr.ts\n                          ^^^^^^^^\n                          source.ts meta.var.expr.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts meta.var.expr.ts\n                                   ^^^\n                                   source.ts meta.var.expr.ts keyword.operator.comparison.ts\n                                      ^\n                                      source.ts meta.var.expr.ts\n                                       ^^^^^^^^^^^^^^^^^^\n                                       source.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                         ^\n                                                         source.ts meta.var.expr.ts\n                                                          ^^\n                                                          source.ts meta.var.expr.ts keyword.operator.logical.ts\n                                                            ^\n                                                            source.ts meta.var.expr.ts\n                                                             ^\n                                                             source.ts meta.var.expr.ts meta.brace.round.ts\n>                    relation === identityRelation ? getMappedTypeModifiers(source) === getMappedTypeModifiers(target) :\n ^^^^^^^^^^^^^^^^^^^^\n source.ts meta.var.expr.ts\n                     ^^^^^^^^\n                     source.ts meta.var.expr.ts variable.other.readwrite.ts\n                             ^\n                             source.ts meta.var.expr.ts\n                              ^^^\n                              source.ts meta.var.expr.ts keyword.operator.comparison.ts\n                                 ^\n                                 source.ts meta.var.expr.ts\n                                  ^^^^^^^^^^^^^^^^\n                                  source.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts keyword.operator.ternary.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts\n                                                     ^^^^^^^^^^^^^^^^^^^^^^\n                                                     source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                                                           ^\n                                                                           source.ts meta.var.expr.ts meta.brace.round.ts\n                                                                            ^^^^^^\n                                                                            source.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                                                  ^\n                                                                                  source.ts meta.var.expr.ts meta.brace.round.ts\n                                                                                   ^\n                                                                                   source.ts meta.var.expr.ts\n                                                                                    ^^^\n                                                                                    source.ts meta.var.expr.ts keyword.operator.comparison.ts\n                                                                                       ^\n                                                                                       source.ts meta.var.expr.ts\n                                                                                        ^^^^^^^^^^^^^^^^^^^^^^\n                                                                                        source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                                                                                              ^\n                                                                                                              source.ts meta.var.expr.ts meta.brace.round.ts\n                                                                                                               ^^^^^^\n                                                                                                               source.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                                                                                     ^\n                                                                                                                     source.ts meta.var.expr.ts meta.brace.round.ts\n                                                                                                                      ^\n                                                                                                                      source.ts meta.var.expr.ts\n                                                                                                                       ^\n                                                                                                                       source.ts meta.var.expr.ts keyword.operator.ternary.ts\n>                        getCombinedMappedTypeOptionality(source) <= getCombinedMappedTypeOptionality(target));\n ^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.var.expr.ts\n                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                         source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                                         ^\n                                                         source.ts meta.var.expr.ts meta.brace.round.ts\n                                                          ^^^^^^\n                                                          source.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                                ^\n                                                                source.ts meta.var.expr.ts meta.brace.round.ts\n                                                                 ^\n                                                                 source.ts meta.var.expr.ts\n                                                                  ^^\n                                                                  source.ts meta.var.expr.ts keyword.operator.relational.ts\n                                                                    ^\n                                                                    source.ts meta.var.expr.ts\n                                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                                     source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                                                                                     ^\n                                                                                                     source.ts meta.var.expr.ts meta.brace.round.ts\n                                                                                                      ^^^^^^\n                                                                                                      source.ts meta.var.expr.ts variable.other.readwrite.ts\n                                                                                                            ^\n                                                                                                            source.ts meta.var.expr.ts meta.brace.round.ts\n                                                                                                             ^\n                                                                                                             source.ts meta.var.expr.ts meta.brace.round.ts\n                                                                                                              ^\n                                                                                                              source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/numeric.baseline.txt",
    "content": "original file\n-----------------------------------\nvar a = 0xA;\nvar b = 0b1;\nvar c = 0o7;\nvar d = 1.1E+3;\nvar e = 1.E+3;\nvar f = .1E+3;\nvar g = 1E+3;\nvar h = 1.1;\nvar i = 1.;\nvar j = .1;\nvar k =  1;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var a = 0xA;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^\n         source.ts meta.var.expr.ts constant.numeric.hex.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>var b = 0b1;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^\n         source.ts meta.var.expr.ts constant.numeric.binary.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>var c = 0o7;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^\n         source.ts meta.var.expr.ts constant.numeric.octal.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>var d = 1.1E+3;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts constant.numeric.decimal.ts\n          ^\n          source.ts meta.var.expr.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n           ^^^^\n           source.ts meta.var.expr.ts constant.numeric.decimal.ts\n               ^\n               source.ts punctuation.terminator.statement.ts\n>var e = 1.E+3;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts constant.numeric.decimal.ts\n          ^\n          source.ts meta.var.expr.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n           ^^^\n           source.ts meta.var.expr.ts constant.numeric.decimal.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>var f = .1E+3;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n          ^^^^\n          source.ts meta.var.expr.ts constant.numeric.decimal.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>var g = 1E+3;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^\n         source.ts meta.var.expr.ts constant.numeric.decimal.ts\n             ^\n             source.ts punctuation.terminator.statement.ts\n>var h = 1.1;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts constant.numeric.decimal.ts\n          ^\n          source.ts meta.var.expr.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n           ^\n           source.ts meta.var.expr.ts constant.numeric.decimal.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>var i = 1.;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts constant.numeric.decimal.ts\n          ^\n          source.ts meta.var.expr.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n           ^\n           source.ts punctuation.terminator.statement.ts\n>var j = .1;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts\n          ^\n          source.ts meta.var.expr.ts constant.numeric.decimal.ts\n           ^\n           source.ts punctuation.terminator.statement.ts\n>var k =  1;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^^\n        source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts constant.numeric.decimal.ts\n           ^\n           source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/numericAsType.baseline.txt",
    "content": "original file\n-----------------------------------\nlet a: 1 | 3 | 5 | 7 | 9;\ntype a = 1 | 3 | 5 | 7 | 9;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let a: 1 | 3 | 5 | 7 | 9;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts constant.numeric.decimal.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts constant.numeric.decimal.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts constant.numeric.decimal.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts constant.numeric.decimal.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n>type a = 1 | 3 | 5 | 7 | 9;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^\n        source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts constant.numeric.decimal.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^\n            source.ts meta.type.declaration.ts keyword.operator.type.ts\n             ^\n             source.ts meta.type.declaration.ts\n              ^\n              source.ts meta.type.declaration.ts constant.numeric.decimal.ts\n               ^\n               source.ts meta.type.declaration.ts\n                ^\n                source.ts meta.type.declaration.ts keyword.operator.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.type.declaration.ts\n                    ^\n                    source.ts meta.type.declaration.ts keyword.operator.type.ts\n                     ^\n                     source.ts meta.type.declaration.ts\n                      ^\n                      source.ts meta.type.declaration.ts constant.numeric.decimal.ts\n                       ^\n                       source.ts meta.type.declaration.ts\n                        ^\n                        source.ts meta.type.declaration.ts keyword.operator.type.ts\n                         ^\n                         source.ts meta.type.declaration.ts\n                          ^\n                          source.ts meta.type.declaration.ts constant.numeric.decimal.ts\n                           ^\n                           source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/objectLiteral.baseline.txt",
    "content": "original file\n-----------------------------------\n[\n {\n        \"line\": 2,\n        \"offset\": 27,\n        \"endLine\": 2,\n        \"endOffset\": 27,\n        \"insertString\": \"()\"\n    },\n    {\n        \"seq\": 191,\n    }\n];\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>[\n ^\n source.ts meta.array.literal.ts meta.brace.square.ts\n> {\n ^\n source.ts meta.array.literal.ts\n  ^\n  source.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        \"line\": 2,\n ^^^^^^^^\n source.ts meta.array.literal.ts meta.objectliteral.ts\n         ^\n         source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n          ^^^^\n          source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts\n              ^\n              source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts punctuation.definition.string.end.ts\n               ^\n               source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                ^\n                source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                 ^\n                 source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.array.literal.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        \"offset\": 27,\n ^^^^^^^^\n source.ts meta.array.literal.ts meta.objectliteral.ts\n         ^\n         source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n          ^^^^^^\n          source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts\n                ^\n                source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                 ^\n                 source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                  ^\n                  source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                   ^^\n                   source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                     ^\n                     source.ts meta.array.literal.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        \"endLine\": 2,\n ^^^^^^^^\n source.ts meta.array.literal.ts meta.objectliteral.ts\n         ^\n         source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n          ^^^^^^^\n          source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts\n                 ^\n                 source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                  ^\n                  source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                   ^\n                   source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                    ^\n                    source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                     ^\n                     source.ts meta.array.literal.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        \"endOffset\": 27,\n ^^^^^^^^\n source.ts meta.array.literal.ts meta.objectliteral.ts\n         ^\n         source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n          ^^^^^^^^^\n          source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts\n                   ^\n                   source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                    ^\n                    source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                     ^\n                     source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                      ^^\n                      source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                        ^\n                        source.ts meta.array.literal.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        \"insertString\": \"()\"\n ^^^^^^^^\n source.ts meta.array.literal.ts meta.objectliteral.ts\n         ^\n         source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n          ^^^^^^^^^^^^\n          source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts\n                      ^\n                      source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                       ^\n                       source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                        ^\n                        source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                         ^\n                         source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                          ^^\n                          source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                            ^\n                            source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>    },\n ^^^^\n source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n     ^\n     source.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.array.literal.ts punctuation.separator.comma.ts\n>    {\n ^^^^\n source.ts meta.array.literal.ts\n     ^\n     source.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        \"seq\": 191,\n ^^^^^^^^\n source.ts meta.array.literal.ts meta.objectliteral.ts\n         ^\n         source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n          ^^^\n          source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts\n             ^\n             source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts punctuation.definition.string.end.ts\n              ^\n              source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n               ^\n               source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                ^^^\n                source.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.array.literal.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>    }\n ^^^^\n source.ts meta.array.literal.ts meta.objectliteral.ts\n     ^\n     source.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n>];\n ^\n source.ts meta.array.literal.ts meta.brace.square.ts\n  ^\n  source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/objectLiteralWithCast.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this hasc cast\n// From Microsoft/TypeScript#24410\na\n\t.map(b => {\n\t\treturn <C>{\n\t\t\tc: { }\n\t\t};\n\t})\n\n// comment\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this hasc cast\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>// From Microsoft/TypeScript#24410\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>a\n ^\n source.ts variable.other.readwrite.ts\n>\t.map(b => {\n ^\n source.ts\n  ^\n  source.ts meta.function-call.ts punctuation.accessor.ts\n   ^^^\n   source.ts meta.function-call.ts entity.name.function.ts\n      ^\n      source.ts meta.brace.round.ts\n       ^\n       source.ts meta.arrow.ts variable.parameter.ts\n        ^\n        source.ts meta.arrow.ts\n         ^^\n         source.ts meta.arrow.ts storage.type.function.arrow.ts\n           ^\n           source.ts meta.arrow.ts\n            ^\n            source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>\t\treturn <C>{\n ^^\n source.ts meta.arrow.ts meta.block.ts\n   ^^^^^^\n   source.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts\n         ^\n         source.ts meta.arrow.ts meta.block.ts cast.expr.ts\n          ^\n          source.ts meta.arrow.ts meta.block.ts cast.expr.ts meta.brace.angle.ts\n           ^\n           source.ts meta.arrow.ts meta.block.ts cast.expr.ts entity.name.type.ts\n            ^\n            source.ts meta.arrow.ts meta.block.ts cast.expr.ts meta.brace.angle.ts\n             ^\n             source.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n>\t\t\tc: { }\n ^^^\n source.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts\n    ^\n    source.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n     ^\n     source.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n      ^\n      source.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n       ^\n       source.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n        ^\n        source.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n         ^\n         source.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n>\t\t};\n ^^\n source.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n   ^\n   source.ts meta.arrow.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n    ^\n    source.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>\t})\n ^\n source.ts meta.arrow.ts meta.block.ts\n  ^\n  source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n   ^\n   source.ts meta.brace.round.ts\n>\n ^\n source.ts\n>// comment\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^\n   source.ts comment.line.double-slash.ts"
  },
  {
    "path": "tests/baselines/objectType.baseline.txt",
    "content": "original file\n-----------------------------------\nvar a: object;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var a: object;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.builtin.ts\n              ^\n              source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/optionalChaining.baseline.txt",
    "content": "original file\n-----------------------------------\nconst array = a?.b?.c?.d?.g;\nconst prop = obj?.[expr];\nfunc?.(...args);\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const array = a?.b?.c?.d?.g;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts variable.other.object.ts\n                ^^\n                source.ts meta.var.expr.ts punctuation.accessor.optional.ts\n                  ^\n                  source.ts meta.var.expr.ts variable.other.object.property.ts\n                   ^^\n                   source.ts meta.var.expr.ts punctuation.accessor.optional.ts\n                     ^\n                     source.ts meta.var.expr.ts variable.other.object.property.ts\n                      ^^\n                      source.ts meta.var.expr.ts punctuation.accessor.optional.ts\n                        ^\n                        source.ts meta.var.expr.ts variable.other.object.property.ts\n                         ^^\n                         source.ts meta.var.expr.ts punctuation.accessor.optional.ts\n                           ^\n                           source.ts meta.var.expr.ts variable.other.property.ts\n                            ^\n                            source.ts punctuation.terminator.statement.ts\n>const prop = obj?.[expr];\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^\n              source.ts meta.var.expr.ts variable.other.readwrite.ts\n                 ^^\n                 source.ts meta.var.expr.ts punctuation.accessor.optional.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                    ^^^^\n                    source.ts meta.var.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n>func?.(...args);\n ^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n     ^^\n     source.ts meta.function-call.ts punctuation.accessor.optional.ts\n       ^\n       source.ts meta.brace.round.ts\n        ^^^\n        source.ts keyword.operator.spread.ts\n           ^^^^\n           source.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.brace.round.ts\n                ^\n                source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/parameterBindingPattern.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has type assertion\nfunction foo() {\n    return {\n        x: {\n            a: 10,\n            b: 20\n        },\n        y: {\n            c: \"hello\",\n            d: \"world\"\n        },\n        z: <[number, { hello: string }]>[10, { hello: \"Hello\" }]\n    };\n}\n\nfunction foo2({x: k, y: { c: d}, z: [e, { hello }], x } = foo()) {\n}\nfunction foo3({x: k, y: { c: d}, z: [e, { hello }], x }: {\n    x: {\n        a: number;\n        b: number;\n    };\n    y: {\n        c: string;\n        d: string;\n    };\n    z: [number, {\n        hello: string;\n    }];\n} = foo()) {\n}\n\nfunction bar() {\n    return <[{ hello: string },string]>[{ hello: \"Hello\" }, \"world\"];\n}\n\nfunction bar2([{hello}, world] = bar()) {\n}\nfunction bar3([{hello}, world]: [{ hello: string }, string] = bar()) {\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has type assertion\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>function foo() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.function.ts\n                ^\n                source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    return {\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        x: {\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n>            a: 10,\n ^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                ^^\n                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>            b: 20\n ^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                ^^\n                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n>        },\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        y: {\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n>            c: \"hello\",\n ^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                 ^^^^^\n                 source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>            d: \"world\"\n ^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                 ^^^^^\n                 source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>        },\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        z: <[number, { hello: string }]>[10, { hello: \"Hello\" }]\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.brace.angle.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.brace.square.ts\n              ^^^^^^\n              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts support.type.primitive.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts\n                        ^^^^^\n                        source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                               ^^^^^^\n                               source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts punctuation.definition.block.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.brace.square.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.brace.angle.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.brace.square.ts\n                                          ^^\n                                          source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                            ^\n                                            source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                             ^\n                                             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts\n                                              ^\n                                              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                               ^\n                                               source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts\n                                                ^^^^^\n                                                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                        ^^^^^\n                                                        source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.brace.square.ts\n>    };\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n     ^\n     source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>function foo2({x: k, y: { c: d}, z: [e, { hello }], x } = foo()) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                           ^\n                           source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n                            ^\n                            source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                              ^\n                              source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                  ^\n                                  source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n                                   ^\n                                   source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n                                    ^\n                                    source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                                          ^\n                                          source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                           ^^^^^\n                                           source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                                                ^\n                                                source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.parameters.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.parameters.ts keyword.operator.assignment.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.parameters.ts\n                                                           ^^^\n                                                           source.ts meta.function.ts meta.parameters.ts meta.function-call.ts entity.name.function.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.parameters.ts meta.brace.round.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.parameters.ts meta.brace.round.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>function foo3({x: k, y: { c: d}, z: [e, { hello }], x }: {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                           ^\n                           source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n                            ^\n                            source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                              ^\n                              source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                  ^\n                                  source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n                                   ^\n                                   source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n                                    ^\n                                    source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                                          ^\n                                          source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                           ^^^^^\n                                           source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                                                ^\n                                                source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>    x: {\n ^^^^\n source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n     ^\n     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^\n        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>        a: number;\n ^^^^^^^^\n source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n         ^\n         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n            ^^^^^^\n            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n>        b: number;\n ^^^^^^^^\n source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n         ^\n         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n            ^^^^^^\n            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n>    };\n ^^^^\n source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts\n     ^\n     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n>    y: {\n ^^^^\n source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n     ^\n     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^\n        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>        c: string;\n ^^^^^^^^\n source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n         ^\n         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n            ^^^^^^\n            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n>        d: string;\n ^^^^^^^^\n source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n         ^\n         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n            ^^^^^^\n            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n>    };\n ^^^^\n source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts\n     ^\n     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n>    z: [number, {\n ^^^^\n source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n     ^\n     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^\n        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n         ^^^^^^\n         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts punctuation.definition.block.ts\n>        hello: string;\n ^^^^^^^^\n source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts\n         ^^^^^\n         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                ^^^^^^\n                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts punctuation.terminator.statement.ts\n>    }];\n ^^^^\n source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts\n     ^\n     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n       ^\n       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n>} = foo()) {\n ^\n source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n   ^\n   source.ts meta.function.ts meta.parameters.ts keyword.operator.assignment.ts\n    ^\n    source.ts meta.function.ts meta.parameters.ts\n     ^^^\n     source.ts meta.function.ts meta.parameters.ts meta.function-call.ts entity.name.function.ts\n        ^\n        source.ts meta.function.ts meta.parameters.ts meta.brace.round.ts\n         ^\n         source.ts meta.function.ts meta.parameters.ts meta.brace.round.ts\n          ^\n          source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n           ^\n           source.ts meta.function.ts\n            ^\n            source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>function bar() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.function.ts\n                ^\n                source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    return <[{ hello: string },string]>[{ hello: \"Hello\" }, \"world\"];\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts cast.expr.ts\n            ^\n            source.ts meta.function.ts meta.block.ts cast.expr.ts meta.brace.angle.ts\n             ^\n             source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.brace.square.ts\n              ^\n              source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts punctuation.definition.block.ts\n               ^\n               source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts\n                ^^^^^\n                source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                       ^^^^^^\n                       source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts punctuation.definition.block.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                ^^^^^^\n                                source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts support.type.primitive.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.brace.square.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts cast.expr.ts meta.brace.angle.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                          ^\n                                          source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts\n                                           ^^^^^\n                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                ^\n                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                   ^^^^^\n                                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                              ^^^^^\n                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>function bar2([{hello}, world] = bar()) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                 ^^^^^\n                 source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts variable.parameter.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.separator.comma.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n                         ^^^^^\n                         source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts variable.parameter.ts\n                              ^\n                              source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts keyword.operator.assignment.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts\n                                  ^^^\n                                  source.ts meta.function.ts meta.parameters.ts meta.function-call.ts entity.name.function.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts meta.brace.round.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                        ^\n                                        source.ts meta.function.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>function bar3([{hello}, world]: [{ hello: string }, string] = bar()) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                 ^^^^^\n                 source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts variable.parameter.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.separator.comma.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n                         ^^^^^\n                         source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts variable.parameter.ts\n                              ^\n                              source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts punctuation.definition.block.ts\n                                   ^\n                                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts\n                                    ^^^^^\n                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                          ^\n                                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                           ^^^^^^\n                                           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts punctuation.definition.block.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts\n                                                     ^^^^^^\n                                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.parameters.ts keyword.operator.assignment.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.parameters.ts\n                                                               ^^^\n                                                               source.ts meta.function.ts meta.parameters.ts meta.function-call.ts entity.name.function.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.parameters.ts meta.brace.round.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.parameters.ts meta.brace.round.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/partialTypeArguments.baseline.txt",
    "content": "original file\n-----------------------------------\nconst instance1 = new Foo<_, _>(0, \"\");\nconst result1 = foo<_, string>(0, \"\");\nconst tagged1 = tag<_, string>`tags ${12} ${\"\"}`;\ntype A = Foo<_, string>;\nconst instance2 = new Foo<number, _>(0, \"\");\nconst result2 = foo<number, _>(0, \"\");\nconst tagged2 = tag<number, _>`tags ${12} ${\"\"}`;\ntype A2 = Foo<string, _>;\ntype A3 = _;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>const instance1 = new Foo<_, _>(0, \"\");\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^^^\n                   source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n                      ^\n                      source.ts meta.var.expr.ts new.expr.ts\n                       ^^^\n                       source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                          ^\n                          source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                           ^\n                           source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts keyword.operator.type.ts\n                            ^\n                            source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                             ^\n                             source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts\n                              ^\n                              source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts keyword.operator.type.ts\n                               ^\n                               source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                ^\n                                source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.var.expr.ts new.expr.ts constant.numeric.decimal.ts\n                                  ^\n                                  source.ts meta.var.expr.ts new.expr.ts punctuation.separator.comma.ts\n                                   ^\n                                   source.ts meta.var.expr.ts new.expr.ts\n                                    ^\n                                    source.ts meta.var.expr.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                     ^\n                                     source.ts meta.var.expr.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                      ^\n                                      source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                       ^\n                                       source.ts punctuation.terminator.statement.ts\n>const result1 = foo<_, string>(0, \"\");\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^^^\n                 source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.type.parameters.ts keyword.operator.type.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.type.parameters.ts\n                        ^^^^^^\n                        source.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                                  ^\n                                  source.ts meta.var.expr.ts\n                                   ^\n                                   source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                    ^\n                                    source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.brace.round.ts\n                                      ^\n                                      source.ts punctuation.terminator.statement.ts\n>const tagged1 = tag<_, string>`tags ${12} ${\"\"}`;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^^^\n                 source.ts meta.var.expr.ts entity.name.function.tagged-template.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.type.parameters.ts keyword.operator.type.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.type.parameters.ts\n                        ^^^^^^\n                        source.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                               ^\n                               source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                ^^^^^\n                                source.ts meta.var.expr.ts string.template.ts\n                                     ^^\n                                     source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                       ^^\n                                       source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts constant.numeric.decimal.ts\n                                         ^\n                                         source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                          ^\n                                          source.ts meta.var.expr.ts string.template.ts\n                                           ^^\n                                           source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                             ^\n                                             source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                              ^\n                                              source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                               ^\n                                               source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                ^\n                                                source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                 ^\n                                                 source.ts punctuation.terminator.statement.ts\n>type A = Foo<_, string>;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^\n        source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^^^\n          source.ts meta.type.declaration.ts entity.name.type.ts\n             ^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts keyword.operator.type.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts\n                 ^^^^^^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts\n>const instance2 = new Foo<number, _>(0, \"\");\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^^^\n                   source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n                      ^\n                      source.ts meta.var.expr.ts new.expr.ts\n                       ^^^\n                       source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts entity.name.function.ts\n                          ^\n                          source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                           ^^^^^^\n                           source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                                 ^\n                                 source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                  ^\n                                  source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts\n                                   ^\n                                   source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts keyword.operator.type.ts\n                                    ^\n                                    source.ts meta.var.expr.ts new.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                     ^\n                                     source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.var.expr.ts new.expr.ts constant.numeric.decimal.ts\n                                       ^\n                                       source.ts meta.var.expr.ts new.expr.ts punctuation.separator.comma.ts\n                                        ^\n                                        source.ts meta.var.expr.ts new.expr.ts\n                                         ^\n                                         source.ts meta.var.expr.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                          ^\n                                          source.ts meta.var.expr.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                           ^\n                                           source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts\n                                            ^\n                                            source.ts punctuation.terminator.statement.ts\n>const result2 = foo<number, _>(0, \"\");\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^^^\n                 source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                     ^^^^^^\n                     source.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.type.parameters.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.type.parameters.ts keyword.operator.type.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.var.expr.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                                  ^\n                                  source.ts meta.var.expr.ts\n                                   ^\n                                   source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                    ^\n                                    source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.brace.round.ts\n                                      ^\n                                      source.ts punctuation.terminator.statement.ts\n>const tagged2 = tag<number, _>`tags ${12} ${\"\"}`;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^^^\n                 source.ts meta.var.expr.ts entity.name.function.tagged-template.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                     ^^^^^^\n                     source.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.type.parameters.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.type.parameters.ts keyword.operator.type.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                               ^\n                               source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                ^^^^^\n                                source.ts meta.var.expr.ts string.template.ts\n                                     ^^\n                                     source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                       ^^\n                                       source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts constant.numeric.decimal.ts\n                                         ^\n                                         source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                          ^\n                                          source.ts meta.var.expr.ts string.template.ts\n                                           ^^\n                                           source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                             ^\n                                             source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                              ^\n                                              source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                               ^\n                                               source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                ^\n                                                source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                 ^\n                                                 source.ts punctuation.terminator.statement.ts\n>type A2 = Foo<string, _>;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^^^\n           source.ts meta.type.declaration.ts entity.name.type.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n               ^^^^^^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts keyword.operator.type.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n>type A3 = _;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts entity.name.type.ts\n            ^\n            source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/pr48_noSemiColon.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Test {\n\tprivate data: TemplateData[] = []\n\tprivate options: TemplateOptions = {}\n\tprivate state = {}\n}\n\nexport type Stats = fs.Stats\nexport const touch = thenify(tch)\n\n/**\n * Verify comments\n */\nexport function isFile(path: string): Promise<boolean> {\n\treturn stat(path).then(stat => stat.isFile(), () => false)\n}\n\n\nexport const readFile = thenify<string, string, string>(fs.readFile)\nexport const writeFile = thenify<string, string | Buffer, void>(fs.writeFile)\n\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Test {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n           ^\n           source.ts meta.class.ts\n            ^\n            source.ts meta.class.ts punctuation.definition.block.ts\n>\tprivate data: TemplateData[] = []\n ^\n source.ts meta.class.ts\n  ^^^^^^^\n  source.ts meta.class.ts storage.modifier.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts\n          ^^^^\n          source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                ^^^^^^^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n>\tprivate options: TemplateOptions = {}\n ^\n source.ts meta.class.ts\n  ^^^^^^^\n  source.ts meta.class.ts storage.modifier.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts\n          ^^^^^^^\n          source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                   ^^^^^^^^^^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                                  ^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                                   ^\n                                   source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.class.ts meta.field.declaration.ts\n                                     ^\n                                     source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                      ^\n                                      source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts punctuation.definition.block.ts\n>\tprivate state = {}\n ^\n source.ts meta.class.ts\n  ^^^^^^^\n  source.ts meta.class.ts storage.modifier.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts\n          ^^^^^\n          source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts punctuation.definition.block.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.objectliteral.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>export type Stats = fs.Stats\n ^^^^^^\n source.ts meta.type.declaration.ts keyword.control.export.ts\n       ^\n       source.ts meta.type.declaration.ts\n        ^^^^\n        source.ts meta.type.declaration.ts storage.type.type.ts\n            ^\n            source.ts meta.type.declaration.ts\n             ^^^^^\n             source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^\n                   source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.type.declaration.ts\n                     ^^\n                     source.ts meta.type.declaration.ts entity.name.type.module.ts\n                       ^\n                       source.ts meta.type.declaration.ts punctuation.accessor.ts\n                        ^^^^^\n                        source.ts meta.type.declaration.ts entity.name.type.ts\n>export const touch = thenify(tch)\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^^^\n        source.ts meta.var.expr.ts storage.type.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^^^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^^^^^^^\n                      source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.brace.round.ts\n                              ^^^\n                              source.ts meta.var.expr.ts variable.other.readwrite.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.brace.round.ts\n>\n ^\n source.ts\n>/**\n ^^^\n source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n> * Verify comments\n ^^^^^^^^^^^^^^^^^^^\n source.ts comment.block.documentation.ts\n> */\n ^\n source.ts comment.block.documentation.ts\n  ^^\n  source.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>export function isFile(path: string): Promise<boolean> {\n ^^^^^^\n source.ts meta.function.ts keyword.control.export.ts\n       ^\n       source.ts meta.function.ts\n        ^^^^^^^^\n        source.ts meta.function.ts storage.type.function.ts\n                ^\n                source.ts meta.function.ts\n                 ^^^^^^\n                 source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                        ^^^^\n                        source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                            ^\n                            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                              ^^^^^^\n                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                    ^\n                                    source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                     ^\n                                     source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                      ^\n                                      source.ts meta.function.ts meta.return.type.ts\n                                       ^^^^^^^\n                                       source.ts meta.function.ts meta.return.type.ts entity.name.type.ts\n                                              ^\n                                              source.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                               ^^^^^^^\n                                               source.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts support.type.primitive.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.return.type.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\treturn stat(path).then(stat => stat.isFile(), () => false)\n ^\n source.ts meta.function.ts meta.block.ts\n  ^^^^^^\n  source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n        ^\n        source.ts meta.function.ts meta.block.ts\n         ^^^^\n         source.ts meta.function.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n              ^^^^\n              source.ts meta.function.ts meta.block.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^\n                    source.ts meta.function.ts meta.block.ts meta.function-call.ts support.function.promise.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                         ^^^^\n                         source.ts meta.function.ts meta.block.ts meta.arrow.ts variable.parameter.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                              ^^\n                              source.ts meta.function.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                                 ^^^^\n                                 source.ts meta.function.ts meta.block.ts meta.function-call.ts variable.other.object.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts\n                                      ^^^^^^\n                                      source.ts meta.function.ts meta.block.ts meta.function-call.ts entity.name.function.ts\n                                            ^\n                                            source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n                                              ^\n                                              source.ts meta.function.ts meta.block.ts punctuation.separator.comma.ts\n                                               ^\n                                               source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                                                ^\n                                                source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                                                   ^^\n                                                   source.ts meta.function.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.block.ts meta.arrow.ts\n                                                      ^^^^^\n                                                      source.ts meta.function.ts meta.block.ts constant.language.boolean.false.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.block.ts meta.brace.round.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>\n ^\n source.ts\n>export const readFile = thenify<string, string, string>(fs.readFile)\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^^^\n        source.ts meta.var.expr.ts storage.type.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^^^^^^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                       ^\n                       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                        ^\n                        source.ts meta.var.expr.ts\n                         ^^^^^^^\n                         source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                 ^^^^^^\n                                 source.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.type.parameters.ts\n                                         ^^^^^^\n                                         source.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                                               ^\n                                               source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.type.parameters.ts\n                                                 ^^^^^^\n                                                 source.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                                                       ^\n                                                       source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                        ^\n                                                        source.ts meta.var.expr.ts meta.brace.round.ts\n                                                         ^^\n                                                         source.ts meta.var.expr.ts variable.other.object.ts\n                                                           ^\n                                                           source.ts meta.var.expr.ts punctuation.accessor.ts\n                                                            ^^^^^^^^\n                                                            source.ts meta.var.expr.ts variable.other.property.ts\n                                                                    ^\n                                                                    source.ts meta.var.expr.ts meta.brace.round.ts\n>export const writeFile = thenify<string, string | Buffer, void>(fs.writeFile)\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^^^\n        source.ts meta.var.expr.ts storage.type.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^^^^^^^^^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts meta.var.expr.ts\n                          ^^^^^^^\n                          source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                  ^^^^^^\n                                  source.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.type.parameters.ts\n                                          ^^^^^^\n                                          source.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.type.parameters.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.type.parameters.ts keyword.operator.type.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts meta.type.parameters.ts\n                                                   ^^^^^^\n                                                   source.ts meta.var.expr.ts meta.type.parameters.ts entity.name.type.ts\n                                                         ^\n                                                         source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                                          ^\n                                                          source.ts meta.var.expr.ts meta.type.parameters.ts\n                                                           ^^^^\n                                                           source.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts\n                                                               ^\n                                                               source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                ^\n                                                                source.ts meta.var.expr.ts meta.brace.round.ts\n                                                                 ^^\n                                                                 source.ts meta.var.expr.ts variable.other.object.ts\n                                                                   ^\n                                                                   source.ts meta.var.expr.ts punctuation.accessor.ts\n                                                                    ^^^^^^^^^\n                                                                    source.ts meta.var.expr.ts variable.other.property.ts\n                                                                             ^\n                                                                             source.ts meta.var.expr.ts meta.brace.round.ts\n>\n ^\n source.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/pr557_namespacedJsx.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has jsx\nconst valid1 = <standard-tag standard-attribute=\"foo\" />;\n\nconst valid2 = <namespaced:tag namespaced:boolean-attr>foo</namespaced:tag>;\n\nconst valid3 = <namespaced:Klass.comp.onent namespaced:attr=\"foo\" />;\n\nconst invalid1 = <too:much:Namespace />;\n\nconst invalid2 = <namespaced-:Klass.Component too:much:namespace-attribute>foo</namespaced-:Klass.Component>;\n-----------------------------------\n\nGrammar: TypeScriptReact.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has jsx\n ^^\n source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.tsx comment.line.double-slash.tsx\n>const valid1 = <standard-tag standard-attribute=\"foo\" />;\n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^^^^^^\n       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n              ^\n              source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n               ^\n               source.tsx meta.var.expr.tsx\n                ^\n                source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                 ^^^^^^^^^^^^\n                 source.tsx meta.var.expr.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n                             ^\n                             source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n                              ^^^^^^^^^^^^^^^^^^\n                              source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                                                ^\n                                                source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                                                 ^\n                                                 source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.begin.tsx\n                                                  ^^^\n                                                  source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx\n                                                     ^\n                                                     source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.end.tsx\n                                                      ^\n                                                      source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                                       ^^\n                                                       source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                         ^\n                                                         source.tsx punctuation.terminator.statement.tsx\n>\n ^\n source.tsx\n>const valid2 = <namespaced:tag namespaced:boolean-attr>foo</namespaced:tag>;\n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^^^^^^\n       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n              ^\n              source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n               ^\n               source.tsx meta.var.expr.tsx\n                ^\n                source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                 ^^^^^^^^^^\n                 source.tsx meta.var.expr.tsx meta.tag.tsx entity.name.tag.namespace.tsx\n                           ^\n                           source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.separator.namespace.tsx\n                            ^^^\n                            source.tsx meta.var.expr.tsx meta.tag.tsx entity.name.tag.tsx\n                               ^\n                               source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                ^^^^^^^^^^\n                                source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.namespace.tsx\n                                          ^\n                                          source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.separator.namespace.tsx\n                                           ^^^^^^^^^^^^\n                                           source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                                                       ^\n                                                       source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                        ^^^\n                                                        source.tsx meta.var.expr.tsx meta.tag.tsx meta.jsx.children.tsx\n                                                           ^^\n                                                           source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                                                             ^^^^^^^^^^\n                                                             source.tsx meta.var.expr.tsx meta.tag.tsx entity.name.tag.namespace.tsx\n                                                                       ^\n                                                                       source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.separator.namespace.tsx\n                                                                        ^^^\n                                                                        source.tsx meta.var.expr.tsx meta.tag.tsx entity.name.tag.tsx\n                                                                           ^\n                                                                           source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                                            ^\n                                                                            source.tsx punctuation.terminator.statement.tsx\n>\n ^\n source.tsx\n>const valid3 = <namespaced:Klass.comp.onent namespaced:attr=\"foo\" />;\n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^^^^^^\n       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx\n             ^\n             source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n              ^\n              source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n               ^\n               source.tsx meta.var.expr.tsx\n                ^\n                source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.begin.tsx\n                 ^^^^^^^^^^\n                 source.tsx meta.var.expr.tsx meta.tag.tsx entity.name.tag.namespace.tsx\n                           ^\n                           source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.separator.namespace.tsx\n                            ^^^^^^^^^^^^^^^^\n                            source.tsx meta.var.expr.tsx meta.tag.tsx entity.name.tag.tsx support.class.component.tsx\n                                            ^\n                                            source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                             ^^^^^^^^^^\n                                             source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.namespace.tsx\n                                                       ^\n                                                       source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx punctuation.separator.namespace.tsx\n                                                        ^^^^\n                                                        source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx entity.other.attribute-name.tsx\n                                                            ^\n                                                            source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx keyword.operator.assignment.tsx\n                                                             ^\n                                                             source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.begin.tsx\n                                                              ^^^\n                                                              source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx\n                                                                 ^\n                                                                 source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx string.quoted.double.tsx punctuation.definition.string.end.tsx\n                                                                  ^\n                                                                  source.tsx meta.var.expr.tsx meta.tag.tsx meta.tag.attributes.tsx\n                                                                   ^^\n                                                                   source.tsx meta.var.expr.tsx meta.tag.tsx punctuation.definition.tag.end.tsx\n                                                                     ^\n                                                                     source.tsx punctuation.terminator.statement.tsx\n>\n ^\n source.tsx\n>const invalid1 = <too:much:Namespace />;\n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^^^^^^^^\n       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx\n               ^\n               source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n                ^\n                source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx\n                  ^\n                  source.tsx meta.var.expr.tsx keyword.operator.relational.tsx\n                   ^^^\n                   source.tsx meta.var.expr.tsx variable.other.readwrite.tsx\n                      ^\n                      source.tsx meta.var.expr.tsx\n                       ^^^^\n                       source.tsx meta.var.expr.tsx variable.other.readwrite.tsx\n                           ^\n                           source.tsx meta.var.expr.tsx\n                            ^^^^^^^^^\n                            source.tsx meta.var.expr.tsx variable.other.readwrite.tsx\n                                     ^\n                                     source.tsx meta.var.expr.tsx\n                                      ^\n                                      source.tsx meta.var.expr.tsx keyword.operator.arithmetic.tsx\n                                       ^\n                                       source.tsx meta.var.expr.tsx keyword.operator.relational.tsx\n                                        ^\n                                        source.tsx punctuation.terminator.statement.tsx\n>\n ^\n source.tsx\n>const invalid2 = <namespaced-:Klass.Component too:much:namespace-attribute>foo</namespaced-:Klass.Component>;\n ^^^^^\n source.tsx meta.var.expr.tsx storage.type.tsx\n      ^\n      source.tsx meta.var.expr.tsx\n       ^^^^^^^^\n       source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.constant.tsx\n               ^\n               source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx\n                ^\n                source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx\n                 ^\n                 source.tsx meta.var.expr.tsx\n                  ^\n                  source.tsx meta.var.expr.tsx keyword.operator.relational.tsx\n                   ^^^^^^^^^^\n                   source.tsx meta.var.expr.tsx variable.other.readwrite.tsx\n                             ^\n                             source.tsx meta.var.expr.tsx keyword.operator.arithmetic.tsx\n                              ^\n                              source.tsx meta.var.expr.tsx\n                               ^^^^^\n                               source.tsx meta.var.expr.tsx variable.other.object.tsx\n                                    ^\n                                    source.tsx meta.var.expr.tsx punctuation.accessor.tsx\n                                     ^^^^^^^^^\n                                     source.tsx meta.var.expr.tsx variable.other.property.tsx\n                                              ^\n                                              source.tsx meta.var.expr.tsx\n                                               ^^^\n                                               source.tsx meta.var.expr.tsx variable.other.readwrite.tsx\n                                                  ^\n                                                  source.tsx meta.var.expr.tsx\n                                                   ^^^^\n                                                   source.tsx meta.var.expr.tsx variable.other.readwrite.tsx\n                                                       ^\n                                                       source.tsx meta.var.expr.tsx\n                                                        ^^^^^^^^^\n                                                        source.tsx meta.var.expr.tsx variable.other.readwrite.tsx\n                                                                 ^\n                                                                 source.tsx meta.var.expr.tsx keyword.operator.arithmetic.tsx\n                                                                  ^^^^^^^^^\n                                                                  source.tsx meta.var.expr.tsx variable.other.readwrite.tsx\n                                                                           ^\n                                                                           source.tsx meta.var.expr.tsx keyword.operator.relational.tsx\n                                                                            ^^^\n                                                                            source.tsx meta.var.expr.tsx variable.other.readwrite.tsx\n                                                                               ^\n                                                                               source.tsx meta.var.expr.tsx keyword.operator.relational.tsx\n                                                                                ^\n                                                                                source.tsx meta.var.expr.tsx keyword.operator.arithmetic.tsx\n                                                                                 ^^^^^^^^^^\n                                                                                 source.tsx meta.var.expr.tsx variable.other.readwrite.tsx\n                                                                                           ^\n                                                                                           source.tsx meta.var.expr.tsx keyword.operator.arithmetic.tsx\n                                                                                            ^\n                                                                                            source.tsx meta.var.expr.tsx\n                                                                                             ^^^^^\n                                                                                             source.tsx meta.var.expr.tsx variable.other.object.tsx\n                                                                                                  ^\n                                                                                                  source.tsx meta.var.expr.tsx punctuation.accessor.tsx\n                                                                                                   ^^^^^^^^^\n                                                                                                   source.tsx meta.var.expr.tsx variable.other.property.tsx\n                                                                                                            ^\n                                                                                                            source.tsx meta.var.expr.tsx keyword.operator.relational.tsx\n                                                                                                             ^\n                                                                                                             source.tsx punctuation.terminator.statement.tsx"
  },
  {
    "path": "tests/baselines/privateFields.baseline.txt",
    "content": "original file\n-----------------------------------\nclass Greeter {\n    #name1: string;\n    #NAME2: string;\n    #NAMEabc: string;\n\n    #name2 = \"hello\";\n    #name3: string = \"hello\";\n    #name4;\n\n    #name11: () => string;\n    #NAME21: () => string;\n    #NAME1abc: () => string;\n\n    #name12 =  () => \"hello\";\n    #NAME22 =  () => \"hello\";\n    #NAME2abc =  () => \"hello\";\n\n    prop1 = x.#name1;\n    prop2 = x.#NAME2;\n    prop3 = x.#NAMEabc;\n\n    prop4 = x.#name1.abc;\n    prop5 = x.#NAME2.abc;\n    prop6 = x.#NAMEabc.abc;\n\n    prop7 = x.#name1.#abc;\n    prop8 = x.#NAME2.#abc;\n    prop9 = x.#NAMEabc.#abc;\n\n    propA = x.#name1.#NAME;\n    propB = x.#NAME2.#NAME;\n    propC = x.#NAMEabc.#NAME;\n\n    propD = x.#name1.#NAMEabc;\n    propE = x.#NAME2.#NAMEabc;\n    propF = x.#NAMEabc.#NAMEabc;\n    \n    prop11 = this.#name1;\n    prop21 = this.#NAME2;\n    prop31 = this.#NAMEabc;\n\n    prop41 = this.#name1.abc;\n    prop51 = this.#NAME2.abc;\n    prop61 = this.#NAMEabc.abc;\n\n    prop71 = this.#name1.#abc;\n    prop81 = this.#NAME2.#abc;\n    prop91 = this.#NAMEabc.#abc;\n\n    propA1 = this.#name1.#NAME;\n    propB1 = this.#NAME2.#NAME;\n    propC1 = this.#NAMEabc.#NAME;\n\n    propD1 = this.#name1.#NAMEabc;\n    propE1 = this.#NAME2.#NAMEabc;\n    propF1 = this.#NAMEabc.#NAMEabc;\n\n    prop12 = x.#name1();\n    prop22 = x.#NAME2();\n    prop32 = x.#NAMEabc();\n\n    prop42 = x.#name1().abc;\n    prop52 = x.#NAME2().abc;\n    prop62 = x.#NAMEabc().abc;\n    prop422 = x.#name1().#abc;\n    prop522 = x.#NAME2().#abc;\n    prop622 = x.#NAMEabc().#abc;\n    prop423 = x.#name1().#NAME;\n    prop523 = x.#NAME2().#NAME;\n    prop623 = x.#NAMEabc().#NAME;\n    prop424 = x.#name1().#NAMEabc;\n    prop524 = x.#NAME2().#NAMEabc;\n    prop624 = x.#NAMEabc().#NAMEabc;\n\n    prop72 = x.#name1().#abc();\n    prop82 = x.#NAME2().#abc();\n    prop92 = x.#NAMEabc().#abc();\n    prop721 = x.#name1.#abc();\n    prop821 = x.#NAME2.#abc();\n    prop921 = x.#NAMEabc.#abc();\n\n    propA2 = x.#name1().#NAME();\n    propB2 = x.#NAME2().#NAME();\n    propC2 = x.#NAMEabc().#NAME();\n    propA21 = x.#name1.#NAME();\n    propB21 = x.#NAME2.#NAME();\n    propC21 = x.#NAMEabc.#NAME();\n\n    propD2 = x.#name1().#NAMEabc();\n    propE2 = x.#NAME2().#NAMEabc();\n    propF2 = x.#NAMEabc().#NAMEabc();\n    propD21 = x.#name1.#NAMEabc();\n    propE21 = x.#NAME2.#NAMEabc();\n    propF21 = x.#NAMEabc.#NAMEabc();\n\n\n    prop13 = this.#name1();\n    prop23 = this.#NAME2();\n    prop33 = this.#NAMEabc();\n\n    prop43 = this.#name1().abc;\n    prop53 = this.#NAME2().abc;\n    prop63 = this.#NAMEabc().abc;\n    prop432 = this.#name1().#abc;\n    prop532 = this.#NAME2().#abc;\n    prop632 = this.#NAMEabc().#abc;\n    prop433 = this.#name1().#NAME;\n    prop533 = this.#NAME2().#NAME;\n    prop633 = this.#NAMEabc().#NAME;\n    prop434 = this.#name1().#NAMEabc;\n    prop534 = this.#NAME2().#NAMEabc;\n    prop634 = this.#NAMEabc().#NAMEabc;\n\n    prop73 = this.#name1().#abc();\n    prop83 = this.#NAME2().#abc();\n    prop93 = this.#NAMEabc().#abc();\n    prop731 = this.#name1.#abc();\n    prop831 = this.#NAME2.#abc();\n    prop931 = this.#NAMEabc.#abc();\n\n    propA3 = this.#name1().#NAME();\n    propB3 = this.#NAME2().#NAME();\n    propC3 = this.#NAMEabc().#NAME();\n    propA31 = this.#name1.#NAME();\n    propB31 = this.#NAME2.#NAME();\n    propC31 = this.#NAMEabc.#NAME();\n\n    propD3 = this.#name1().#NAMEabc();\n    propE3 = this.#NAME2().#NAMEabc();\n    propF3 = this.#NAMEabc().#NAMEabc();\n    propD31 = this.#name1.#NAMEabc();\n    propE31 = this.#NAME2.#NAMEabc();\n    propF31 = this.#NAMEabc.#NAMEabc();\n\n    \n    method() {\n      const prop1 = x.#name1;\n      const prop2 = x.#NAME2;\n      const prop3 = x.#NAMEabc;\n\n      const prop4 = x.#name1.abc;\n      const prop5 = x.#NAME2.abc;\n      const prop6 = x.#NAMEabc.abc;\n\n      const prop7 = x.#name1.#abc;\n      const prop8 = x.#NAME2.#abc;\n      const prop9 = x.#NAMEabc.#abc;\n\n      const propA = x.#name1.#NAME;\n      const propB = x.#NAME2.#NAME;\n      const propC = x.#NAMEabc.#NAME;\n\n      const propD = x.#name1.#NAMEabc;\n      const propE = x.#NAME2.#NAMEabc;\n      const propF = x.#NAMEabc.#NAMEabc;\n      \n      const prop11 = this.#name1;\n      const prop21 = this.#NAME2;\n      const prop31 = this.#NAMEabc;\n\n      const prop41 = this.#name1.abc;\n      const prop51 = this.#NAME2.abc;\n      const prop61 = this.#NAMEabc.abc;\n\n      const prop71 = this.#name1.#abc;\n      const prop81 = this.#NAME2.#abc;\n      const prop91 = this.#NAMEabc.#abc;\n\n      const propA1 = this.#name1.#NAME;\n      const propB1 = this.#NAME2.#NAME;\n      const propC1 = this.#NAMEabc.#NAME;\n\n      const propD1 = this.#name1.#NAMEabc;\n      const propE1 = this.#NAME2.#NAMEabc;\n      const propF1 = this.#NAMEabc.#NAMEabc;\n\n      const prop12 = this.#name1();\n      const prop22 = this.#NAME2();\n      const prop32 = this.#NAMEabc();\n\n      const prop42 = this.#name1().abc;\n      const prop52 = this.#NAME2().abc;\n      const prop62 = this.#NAMEabc().abc;\n\n      const prop72 = this.#name1().#abc();\n      const prop82 = this.#NAME2().#abc();\n      const prop92 = this.#NAMEabc().#abc();\n\n      const propA2 = this.#name1().#NAME();\n      const propB2 = this.#NAME2().#NAME();\n      const propC2 = this.#NAMEabc().#NAME();\n\n      const propD2 = this.#name1().#NAMEabc();\n      const propE2 = this.#NAME2().#NAMEabc();\n      const propF2 = this.#NAMEabc().#NAMEabc();\n\n      const prop12 = x.#name1();\n      const prop22 = x.#NAME2();\n      const prop32 = x.#NAMEabc();\n\n      const prop42 = x.#name1().abc;\n      const prop52 = x.#NAME2().abc;\n      const prop62 = x.#NAMEabc().abc;\n      const prop422 = x.#name1().#abc;\n      const prop522 = x.#NAME2().#abc;\n      const prop622 = x.#NAMEabc().#abc;\n      const prop423 = x.#name1().#NAME;\n      const prop523 = x.#NAME2().#NAME;\n      const prop623 = x.#NAMEabc().#NAME;\n      const prop424 = x.#name1().#NAMEabc;\n      const prop524 = x.#NAME2().#NAMEabc;\n      const prop624 = x.#NAMEabc().#NAMEabc;\n\n      const prop72 = x.#name1().#abc();\n      const prop82 = x.#NAME2().#abc();\n      const prop92 = x.#NAMEabc().#abc();\n      const prop721 = x.#name1.#abc();\n      const prop821 = x.#NAME2.#abc();\n      const prop921 = x.#NAMEabc.#abc();\n\n      const propA2 = x.#name1().#NAME();\n      const propB2 = x.#NAME2().#NAME();\n      const propC2 = x.#NAMEabc().#NAME();\n      const propA21 = x.#name1.#NAME();\n      const propB21 = x.#NAME2.#NAME();\n      const propC21 = x.#NAMEabc.#NAME();\n\n      const propD2 = x.#name1().#NAMEabc();\n      const propE2 = x.#NAME2().#NAMEabc();\n      const propF2 = x.#NAMEabc().#NAMEabc();\n      const propD21 = x.#name1.#NAMEabc();\n      const propE21 = x.#NAME2.#NAMEabc();\n      const propF21 = x.#NAMEabc.#NAMEabc();\n\n\n      const prop13 = this.#name1();\n      const prop23 = this.#NAME2();\n      const prop33 = this.#NAMEabc();\n\n      const prop43 = this.#name1().abc;\n      const prop53 = this.#NAME2().abc;\n      const prop63 = this.#NAMEabc().abc;\n      const prop432 = this.#name1().#abc;\n      const prop532 = this.#NAME2().#abc;\n      const prop632 = this.#NAMEabc().#abc;\n      const prop433 = this.#name1().#NAME;\n      const prop533 = this.#NAME2().#NAME;\n      const prop633 = this.#NAMEabc().#NAME;\n      const prop434 = this.#name1().#NAMEabc;\n      const prop534 = this.#NAME2().#NAMEabc;\n      const prop634 = this.#NAMEabc().#NAMEabc;\n\n      const prop73 = this.#name1().#abc();\n      const prop83 = this.#NAME2().#abc();\n      const prop93 = this.#NAMEabc().#abc();\n      const prop731 = this.#name1.#abc();\n      const prop831 = this.#NAME2.#abc();\n      const prop931 = this.#NAMEabc.#abc();\n\n      const propA3 = this.#name1().#NAME();\n      const propB3 = this.#NAME2().#NAME();\n      const propC3 = this.#NAMEabc().#NAME();\n      const propA31 = this.#name1.#NAME();\n      const propB31 = this.#NAME2.#NAME();\n      const propC31 = this.#NAMEabc.#NAME();\n\n      const propD3 = this.#name1().#NAMEabc();\n      const propE3 = this.#NAME2().#NAMEabc();\n      const propF3 = this.#NAMEabc().#NAMEabc();\n      const propD31 = this.#name1.#NAMEabc();\n      const propE31 = this.#NAME2.#NAMEabc();\n      const propF31 = this.#NAMEabc.#NAMEabc();\n    }\n}\n\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class Greeter {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n              ^\n              source.ts meta.class.ts\n               ^\n               source.ts meta.class.ts punctuation.definition.block.ts\n>    #name1: string;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                   ^\n                   source.ts meta.class.ts punctuation.terminator.statement.ts\n>    #NAME2: string;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                   ^\n                   source.ts meta.class.ts punctuation.terminator.statement.ts\n>    #NAMEabc: string;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n               ^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    #name2 = \"hello\";\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n               ^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                     ^\n                     source.ts meta.class.ts punctuation.terminator.statement.ts\n>    #name3: string = \"hello\";\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                       ^^^^^\n                       source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                             ^\n                             source.ts meta.class.ts punctuation.terminator.statement.ts\n>    #name4;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    #name11: () => string;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                 ^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts\n                    ^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.class.ts punctuation.terminator.statement.ts\n>    #NAME21: () => string;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                 ^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts\n                    ^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.class.ts punctuation.terminator.statement.ts\n>    #NAME1abc: () => string;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                   ^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts\n                      ^^^^^^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    #name12 =  () => \"hello\";\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                   ^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts storage.type.function.arrow.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                       ^^^^^\n                       source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                             ^\n                             source.ts meta.class.ts punctuation.terminator.statement.ts\n>    #NAME22 =  () => \"hello\";\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                   ^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts storage.type.function.arrow.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                       ^^^^^\n                       source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                             ^\n                             source.ts meta.class.ts punctuation.terminator.statement.ts\n>    #NAME2abc =  () => \"hello\";\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                ^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                     ^^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts storage.type.function.arrow.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.arrow.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                         ^^^^^\n                         source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                               ^\n                               source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    prop1 = x.#name1;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts variable.other.object.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n               ^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                     ^\n                     source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop2 = x.#NAME2;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts variable.other.object.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n               ^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.property.ts\n                     ^\n                     source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop3 = x.#NAMEabc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts variable.other.object.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n               ^^^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                       ^\n                       source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    prop4 = x.#name1.abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts variable.other.object.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n               ^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts variable.other.object.property.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                      ^^^\n                      source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                         ^\n                         source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop5 = x.#NAME2.abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts variable.other.object.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n               ^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.object.property.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                      ^^^\n                      source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                         ^\n                         source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop6 = x.#NAMEabc.abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts variable.other.object.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n               ^^^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts variable.other.object.property.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                        ^^^\n                        source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                           ^\n                           source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    prop7 = x.#name1.#abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts variable.other.object.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n               ^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts variable.other.object.property.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                          ^\n                          source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop8 = x.#NAME2.#abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts variable.other.object.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n               ^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.object.property.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                          ^\n                          source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop9 = x.#NAMEabc.#abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts variable.other.object.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n               ^^^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts variable.other.object.property.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                        ^^^^\n                        source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                            ^\n                            source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    propA = x.#name1.#NAME;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts variable.other.object.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n               ^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts variable.other.object.property.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                      ^^^^^\n                      source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.property.ts\n                           ^\n                           source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propB = x.#NAME2.#NAME;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts variable.other.object.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n               ^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.object.property.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                      ^^^^^\n                      source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.property.ts\n                           ^\n                           source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propC = x.#NAMEabc.#NAME;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts variable.other.object.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n               ^^^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts variable.other.object.property.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                        ^^^^^\n                        source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.property.ts\n                             ^\n                             source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    propD = x.#name1.#NAMEabc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts variable.other.object.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n               ^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts variable.other.object.property.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                      ^^^^^^^^\n                      source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                              ^\n                              source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propE = x.#NAME2.#NAMEabc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts variable.other.object.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n               ^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.object.property.ts\n                     ^\n                     source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                      ^^^^^^^^\n                      source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                              ^\n                              source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propF = x.#NAMEabc.#NAMEabc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts variable.other.object.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n               ^^^^^^^^\n               source.ts meta.class.ts meta.field.declaration.ts variable.other.object.property.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                        ^^^^^^^^\n                        source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                ^\n                                source.ts meta.class.ts punctuation.terminator.statement.ts\n>    \n ^^^^^\n source.ts meta.class.ts\n>    prop11 = this.#name1;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                         ^\n                         source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop21 = this.#NAME2;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.property.ts\n                         ^\n                         source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop31 = this.#NAMEabc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                   ^^^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                           ^\n                           source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    prop41 = this.#name1.abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts variable.other.object.property.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                          ^^^\n                          source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                             ^\n                             source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop51 = this.#NAME2.abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.object.property.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                          ^^^\n                          source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                             ^\n                             source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop61 = this.#NAMEabc.abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                   ^^^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts variable.other.object.property.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                            ^^^\n                            source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                               ^\n                               source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    prop71 = this.#name1.#abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts variable.other.object.property.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                          ^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                              ^\n                              source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop81 = this.#NAME2.#abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.object.property.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                          ^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                              ^\n                              source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop91 = this.#NAMEabc.#abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                   ^^^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts variable.other.object.property.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                            ^^^^\n                            source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                ^\n                                source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    propA1 = this.#name1.#NAME;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts variable.other.object.property.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                          ^^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.property.ts\n                               ^\n                               source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propB1 = this.#NAME2.#NAME;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.object.property.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                          ^^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.property.ts\n                               ^\n                               source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propC1 = this.#NAMEabc.#NAME;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                   ^^^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts variable.other.object.property.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                            ^^^^^\n                            source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.property.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    propD1 = this.#name1.#NAMEabc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts variable.other.object.property.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                          ^^^^^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propE1 = this.#NAME2.#NAMEabc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.object.property.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                          ^^^^^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propF1 = this.#NAMEabc.#NAMEabc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                   ^^^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts variable.other.object.property.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                            ^^^^^^^^\n                            source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                    ^\n                                    source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    prop12 = x.#name1();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                ^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop22 = x.#NAME2();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                ^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop32 = x.#NAMEabc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                ^^^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    prop42 = x.#name1().abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                ^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                         ^^^\n                         source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                            ^\n                            source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop52 = x.#NAME2().abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                ^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                         ^^^\n                         source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                            ^\n                            source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop62 = x.#NAMEabc().abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                ^^^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                           ^^^\n                           source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                              ^\n                              source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop422 = x.#name1().#abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                          ^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                              ^\n                              source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop522 = x.#NAME2().#abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                          ^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                              ^\n                              source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop622 = x.#NAMEabc().#abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                            ^^^^\n                            source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                ^\n                                source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop423 = x.#name1().#NAME;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                          ^^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.property.ts\n                               ^\n                               source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop523 = x.#NAME2().#NAME;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                          ^^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.property.ts\n                               ^\n                               source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop623 = x.#NAMEabc().#NAME;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                            ^^^^^\n                            source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.property.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop424 = x.#name1().#NAMEabc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                          ^^^^^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop524 = x.#NAME2().#NAMEabc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                          ^^^^^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop624 = x.#NAMEabc().#NAMEabc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                            ^^^^^^^^\n                            source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                    ^\n                                    source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    prop72 = x.#name1().#abc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                ^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop82 = x.#NAME2().#abc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                ^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop92 = x.#NAMEabc().#abc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                ^^^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop721 = x.#name1.#abc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.property.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop821 = x.#NAME2.#abc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.constant.object.property.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop921 = x.#NAMEabc.#abc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.property.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                          ^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    propA2 = x.#name1().#NAME();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                ^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propB2 = x.#NAME2().#NAME();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                ^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propC2 = x.#NAMEabc().#NAME();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                ^^^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propA21 = x.#name1.#NAME();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.property.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propB21 = x.#NAME2.#NAME();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.constant.object.property.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propC21 = x.#NAMEabc.#NAME();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.property.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                          ^^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    propD2 = x.#name1().#NAMEabc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                ^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^^^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propE2 = x.#NAME2().#NAMEabc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                ^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                      ^\n                      source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^^^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propF2 = x.#NAMEabc().#NAMEabc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                ^^^^^^^^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                   ^\n                                   source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propD21 = x.#name1.#NAMEabc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.property.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^^^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propE21 = x.#NAME2.#NAMEabc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.constant.object.property.ts\n                       ^\n                       source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^^^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propF21 = x.#NAMEabc.#NAMEabc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                 ^^^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.property.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                          ^^^^^^^^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                  ^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>\n ^\n source.ts meta.class.ts\n>    prop13 = this.#name1();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop23 = this.#NAME2();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop33 = this.#NAMEabc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    prop43 = this.#name1().abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                            ^^^\n                            source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                               ^\n                               source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop53 = this.#NAME2().abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                            ^^^\n                            source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                               ^\n                               source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop63 = this.#NAMEabc().abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                              ^^^\n                              source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop432 = this.#name1().#abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                             ^^^^\n                             source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop532 = this.#NAME2().#abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                             ^^^^\n                             source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop632 = this.#NAMEabc().#abc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                               ^^^^\n                               source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                   ^\n                                   source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop433 = this.#name1().#NAME;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                             ^^^^^\n                             source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.property.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop533 = this.#NAME2().#NAME;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                             ^^^^^\n                             source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.property.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop633 = this.#NAMEabc().#NAME;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                               ^^^^^\n                               source.ts meta.class.ts meta.field.declaration.ts variable.other.constant.property.ts\n                                    ^\n                                    source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop434 = this.#name1().#NAMEabc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                             ^^^^^^^^\n                             source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                     ^\n                                     source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop534 = this.#NAME2().#NAMEabc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                             ^^^^^^^^\n                             source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                     ^\n                                     source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop634 = this.#NAMEabc().#NAMEabc;\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                              ^\n                              source.ts meta.class.ts meta.field.declaration.ts punctuation.accessor.ts\n                               ^^^^^^^^\n                               source.ts meta.class.ts meta.field.declaration.ts variable.other.property.ts\n                                       ^\n                                       source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    prop73 = this.#name1().#abc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop83 = this.#NAME2().#abc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop93 = this.#NAMEabc().#abc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                              ^^^^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                  ^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop731 = this.#name1.#abc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.property.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop831 = this.#NAME2.#abc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.constant.object.property.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                               ^\n                               source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.terminator.statement.ts\n>    prop931 = this.#NAMEabc.#abc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.property.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                             ^^^^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    propA3 = this.#name1().#NAME();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propB3 = this.#NAME2().#NAME();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propC3 = this.#NAMEabc().#NAME();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                              ^^^^^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                   ^\n                                   source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propA31 = this.#name1.#NAME();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.property.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propB31 = this.#NAME2.#NAME();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.constant.object.property.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propC31 = this.#NAMEabc.#NAME();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.property.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                             ^^^^^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                  ^\n                                  source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    propD3 = this.#name1().#NAMEabc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^^^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                    ^\n                                    source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propE3 = this.#NAME2().#NAMEabc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^^^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                    ^\n                                    source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propF3 = this.#NAMEabc().#NAMEabc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^^^^\n              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                   ^^^^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                              ^^^^^^^^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                      ^\n                                      source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                       ^\n                                       source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                        ^\n                                        source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propD31 = this.#name1.#NAMEabc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.property.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                   ^\n                                   source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propE31 = this.#NAME2.#NAMEabc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.constant.object.property.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                   ^\n                                   source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts punctuation.terminator.statement.ts\n>    propF31 = this.#NAMEabc.#NAMEabc();\n ^^^^\n source.ts meta.class.ts meta.field.declaration.ts\n     ^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n            ^\n            source.ts meta.class.ts meta.field.declaration.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts\n               ^^^^\n               source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.language.this.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                    ^^^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts variable.other.object.property.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts punctuation.accessor.ts\n                             ^^^^^^^^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.function-call.ts entity.name.function.ts\n                                     ^\n                                     source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts meta.field.declaration.ts meta.brace.round.ts\n                                       ^\n                                       source.ts meta.class.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts\n>    \n ^^^^^\n source.ts meta.class.ts\n>    method() {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>      const prop1 = x.#name1;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop2 = x.#NAME2;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.property.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop3 = x.#NAMEabc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^^^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const prop4 = x.#name1.abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                              ^^^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop5 = x.#NAME2.abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.object.property.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                              ^^^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop6 = x.#NAMEabc.abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^^^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                ^^^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const prop7 = x.#name1.#abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                              ^^^^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop8 = x.#NAME2.#abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.object.property.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                              ^^^^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop9 = x.#NAMEabc.#abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^^^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                ^^^^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const propA = x.#name1.#NAME;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                              ^^^^^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.property.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propB = x.#NAME2.#NAME;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.object.property.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                              ^^^^^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.property.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propC = x.#NAMEabc.#NAME;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^^^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                ^^^^^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.property.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const propD = x.#name1.#NAMEabc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                              ^^^^^^^^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propE = x.#NAME2.#NAMEabc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.object.property.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                              ^^^^^^^^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propF = x.#NAMEabc.#NAMEabc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                       ^^^^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                ^^^^^^^^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      \n ^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const prop11 = this.#name1;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop21 = this.#NAME2;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.property.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop31 = this.#NAMEabc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const prop41 = this.#name1.abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                  ^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop51 = this.#NAME2.abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.object.property.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                  ^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop61 = this.#NAMEabc.abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                    ^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const prop71 = this.#name1.#abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                  ^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop81 = this.#NAME2.#abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.object.property.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                  ^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop91 = this.#NAMEabc.#abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                    ^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const propA1 = this.#name1.#NAME;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                  ^^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.property.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propB1 = this.#NAME2.#NAME;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.object.property.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                  ^^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.property.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propC1 = this.#NAMEabc.#NAME;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                    ^^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.property.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const propD1 = this.#name1.#NAMEabc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                  ^^^^^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propE1 = this.#NAME2.#NAMEabc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.object.property.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                  ^^^^^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propF1 = this.#NAMEabc.#NAMEabc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.object.property.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                    ^^^^^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const prop12 = this.#name1();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop22 = this.#NAME2();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop32 = this.#NAMEabc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const prop42 = this.#name1().abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                    ^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop52 = this.#NAME2().abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                    ^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop62 = this.#NAMEabc().abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                      ^^^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const prop72 = this.#name1().#abc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                    ^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop82 = this.#NAME2().#abc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                    ^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop92 = this.#NAMEabc().#abc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                      ^^^^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const propA2 = this.#name1().#NAME();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                    ^^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propB2 = this.#NAME2().#NAME();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                    ^^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propC2 = this.#NAMEabc().#NAME();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                      ^^^^^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const propD2 = this.#name1().#NAMEabc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                    ^^^^^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propE2 = this.#NAME2().#NAMEabc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                    ^^^^^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propF2 = this.#NAMEabc().#NAMEabc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                      ^^^^^^^^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const prop12 = x.#name1();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop22 = x.#NAME2();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop32 = x.#NAMEabc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const prop42 = x.#name1().abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                 ^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop52 = x.#NAME2().abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                 ^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop62 = x.#NAMEabc().abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                   ^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop422 = x.#name1().#abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                  ^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop522 = x.#NAME2().#abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                  ^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop622 = x.#NAMEabc().#abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                    ^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop423 = x.#name1().#NAME;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                  ^^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.property.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop523 = x.#NAME2().#NAME;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                  ^^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.property.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop623 = x.#NAMEabc().#NAME;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                    ^^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.property.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop424 = x.#name1().#NAMEabc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                  ^^^^^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop524 = x.#NAME2().#NAMEabc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                  ^^^^^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop624 = x.#NAMEabc().#NAMEabc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                    ^^^^^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const prop72 = x.#name1().#abc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                 ^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop82 = x.#NAME2().#abc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                 ^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop92 = x.#NAMEabc().#abc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                   ^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop721 = x.#name1.#abc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.property.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                ^^^^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop821 = x.#NAME2.#abc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.constant.object.property.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                ^^^^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop921 = x.#NAMEabc.#abc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.property.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                  ^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const propA2 = x.#name1().#NAME();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                 ^^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propB2 = x.#NAME2().#NAME();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                 ^^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propC2 = x.#NAMEabc().#NAME();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                   ^^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propA21 = x.#name1.#NAME();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.property.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                ^^^^^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propB21 = x.#NAME2.#NAME();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.constant.object.property.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                ^^^^^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propC21 = x.#NAMEabc.#NAME();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.property.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                  ^^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const propD2 = x.#name1().#NAMEabc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                 ^^^^^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propE2 = x.#NAME2().#NAMEabc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                 ^^^^^^^^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propF2 = x.#NAMEabc().#NAMEabc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                        ^^^^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                   ^^^^^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propD21 = x.#name1.#NAMEabc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.property.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                ^^^^^^^^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propE21 = x.#NAME2.#NAMEabc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.constant.object.property.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                ^^^^^^^^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propF21 = x.#NAMEabc.#NAMEabc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                         ^^^^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.property.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                  ^^^^^^^^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const prop13 = this.#name1();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop23 = this.#NAME2();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop33 = this.#NAMEabc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const prop43 = this.#name1().abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                    ^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop53 = this.#NAME2().abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                    ^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop63 = this.#NAMEabc().abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                      ^^^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop432 = this.#name1().#abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                     ^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop532 = this.#NAME2().#abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                     ^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop632 = this.#NAMEabc().#abc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                       ^^^^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop433 = this.#name1().#NAME;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                     ^^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.property.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop533 = this.#NAME2().#NAME;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                     ^^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.property.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop633 = this.#NAMEabc().#NAME;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                       ^^^^^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.constant.property.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop434 = this.#name1().#NAMEabc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                     ^^^^^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop534 = this.#NAME2().#NAMEabc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                     ^^^^^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop634 = this.#NAMEabc().#NAMEabc;\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                      ^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts\n                                       ^^^^^^^^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.property.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const prop73 = this.#name1().#abc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                    ^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop83 = this.#NAME2().#abc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                    ^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop93 = this.#NAMEabc().#abc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                      ^^^^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop731 = this.#name1.#abc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.property.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                   ^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop831 = this.#NAME2.#abc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.constant.object.property.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                   ^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                       ^\n                                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const prop931 = this.#NAMEabc.#abc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.property.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                     ^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const propA3 = this.#name1().#NAME();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                    ^^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propB3 = this.#NAME2().#NAME();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                    ^^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propC3 = this.#NAMEabc().#NAME();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                      ^^^^^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propA31 = this.#name1.#NAME();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.property.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                   ^^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propB31 = this.#NAME2.#NAME();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.constant.object.property.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                   ^^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                        ^\n                                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                         ^\n                                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propC31 = this.#NAMEabc.#NAME();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.property.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                     ^^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                          ^\n                                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n>      const propD3 = this.#name1().#NAMEabc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                    ^^^^^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propE3 = this.#NAME2().#NAMEabc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                    ^^^^^^^^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propF3 = this.#NAMEabc().#NAMEabc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                           ^^^^^^^^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                   ^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                     ^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                      ^^^^^^^^\n                                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                                ^\n                                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propD31 = this.#name1.#NAMEabc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.property.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                   ^^^^^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propE31 = this.#NAME2.#NAMEabc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.constant.object.property.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                   ^^^^^^^^\n                                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                           ^\n                                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                            ^\n                                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>      const propF31 = this.#NAMEabc.#NAMEabc();\n ^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n       ^^^^^\n       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n             ^^^^^^^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                       ^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                            ^^^^^^^^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.other.object.property.ts\n                                    ^\n                                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts\n                                     ^^^^^^^^\n                                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                             ^\n                                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                              ^\n                                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts\n                                               ^\n                                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/property.baseline.txt",
    "content": "original file\n-----------------------------------\nclass c {\nprop1: c // comment for prop1\nprop2: c // comment for prop2\nprivate prop3: c // the end\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>class c {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>prop1: c // comment for prop1\n ^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n          ^^\n          source.ts meta.class.ts meta.field.declaration.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n            ^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.field.declaration.ts comment.line.double-slash.ts\n>prop2: c // comment for prop2\n ^^^^^\n source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n         ^\n         source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n          ^^\n          source.ts meta.class.ts meta.field.declaration.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n            ^^^^^^^^^^^^^^^^^^\n            source.ts meta.class.ts meta.field.declaration.ts comment.line.double-slash.ts\n>private prop3: c // the end\n ^^^^^^^\n source.ts meta.class.ts storage.modifier.ts\n        ^\n        source.ts meta.class.ts meta.field.declaration.ts\n         ^^^^^\n         source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                  ^^\n                  source.ts meta.class.ts meta.field.declaration.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                    ^^^^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/propertyNameInObjectBindingElement.baseline.txt",
    "content": "original file\n-----------------------------------\nvar { \"propName\": prop, 'propName2': prop2, [\"string\"]: str } = foo();\nfunction bar({ \"propName\": prop, 'propName2': prop2, [\"string\"]: str }){\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var { \"propName\": prop, 'propName2': prop2, [\"string\"]: str } = foo();\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n      ^\n      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n       ^\n       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n        ^^^^^^^^\n        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts string.quoted.double.ts\n                ^\n                source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.destructuring.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                   ^^^^\n                   source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                          ^^^^^^^^^\n                          source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts string.quoted.single.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.destructuring.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                                      ^^^^^\n                                      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.array.literal.ts meta.brace.square.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                               ^^^^^^\n                                               source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.array.literal.ts string.quoted.double.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                      ^\n                                                      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.destructuring.ts\n                                                        ^\n                                                        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                                                         ^^^\n                                                         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                                                            ^\n                                                            source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                                                             ^\n                                                             source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n                                                              ^\n                                                              source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                                                               ^\n                                                               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                                                ^\n                                                                source.ts meta.var.expr.ts\n                                                                 ^^^\n                                                                 source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                                                    ^\n                                                                    source.ts meta.var.expr.ts meta.brace.round.ts\n                                                                     ^\n                                                                     source.ts meta.var.expr.ts meta.brace.round.ts\n                                                                      ^\n                                                                      source.ts punctuation.terminator.statement.ts\n>function bar({ \"propName\": prop, 'propName2': prop2, [\"string\"]: str }){\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                 ^^^^^^^^\n                 source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n                           ^\n                           source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                            ^^^^\n                            source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                  ^\n                                  source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                   ^^^^^^^^^\n                                   source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts string.quoted.single.ts\n                                            ^\n                                            source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                             ^\n                                             source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n                                              ^\n                                              source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                               ^^^^^\n                                               source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts meta.array.literal.ts meta.brace.square.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                        ^^^^^^\n                                                        source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts meta.array.literal.ts string.quoted.double.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts meta.array.literal.ts meta.brace.square.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                                                  ^^^\n                                                                  source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                                                                       ^\n                                                                       source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                        ^\n                                                                        source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/readonly.baseline.txt",
    "content": "original file\n-----------------------------------\ninterface X {\n    readonly a: number;\n    readonly b?: number;\n}\n\nclass C {\n    readonly a: number;\n    readonly b = 1;\n}\n\nvar p: { readonly a: number, b: number }\nlet xx: { readonly [x: string]: string };\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>interface X {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^\n             source.ts meta.interface.ts punctuation.definition.block.ts\n>    readonly a: number;\n ^^^^\n source.ts meta.interface.ts\n     ^^^^^^^^\n     source.ts meta.interface.ts meta.field.declaration.ts storage.modifier.ts\n             ^\n             source.ts meta.interface.ts meta.field.declaration.ts\n              ^\n              source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                 ^^^^^^\n                 source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.interface.ts punctuation.terminator.statement.ts\n>    readonly b?: number;\n ^^^^\n source.ts meta.interface.ts\n     ^^^^^^^^\n     source.ts meta.interface.ts meta.field.declaration.ts storage.modifier.ts\n             ^\n             source.ts meta.interface.ts meta.field.declaration.ts\n              ^\n              source.ts meta.interface.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.interface.ts meta.field.declaration.ts keyword.operator.optional.ts\n                ^\n                source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts\n                  ^^^^^^\n                  source.ts meta.interface.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.interface.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>class C {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>    readonly a: number;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts storage.modifier.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n                 ^^^^^^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.class.ts punctuation.terminator.statement.ts\n>    readonly b = 1;\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^^^\n     source.ts meta.class.ts meta.field.declaration.ts storage.modifier.ts\n             ^\n             source.ts meta.class.ts meta.field.declaration.ts\n              ^\n              source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n               ^\n               source.ts meta.class.ts meta.field.declaration.ts\n                ^\n                source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.class.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>var p: { readonly a: number, b: number }\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts\n          ^^^^^^^^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts storage.modifier.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                      ^^^^^^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.separator.comma.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                 ^^^^^^\n                                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>let xx: { readonly [x: string]: string };\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts\n           ^^^^^^^^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts storage.modifier.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.brace.square.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts variable.parameter.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts\n                        ^^^^^^\n                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.indexer.declaration.ts meta.brace.square.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts\n                                 ^^^^^^\n                                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts meta.type.annotation.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n                                         ^\n                                         source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/readonlyModifier.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction f1(mt: [number, number], rt: readonly [number, number]) {\n}\n\nfunction f2(ma: string[], ra: readonly string[], mt: [string, string], rt: readonly [string, string]) {\n}\n\ntype ReadWrite<T> = { -readonly [P in keyof T] : T[P] };\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function f1(mt: [number, number], rt: readonly [number, number]) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n             ^^\n             source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                  ^^^^^^\n                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts\n                          ^^^^^^\n                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                  ^\n                                  source.ts meta.function.ts meta.parameters.ts\n                                   ^^\n                                   source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                      ^\n                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                       ^^^^^^^^\n                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts storage.modifier.ts\n                                               ^\n                                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                ^\n                                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                 ^^^^^^\n                                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts\n                                                         ^^^^^^\n                                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>function f2(ma: string[], ra: readonly string[], mt: [string, string], rt: readonly [string, string]) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n             ^^\n             source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                 ^^^^^^\n                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts\n                           ^^\n                           source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                              ^\n                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                               ^^^^^^^^\n                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts storage.modifier.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                        ^^^^^^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                              ^\n                                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                               ^\n                                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                ^\n                                                source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.parameters.ts\n                                                  ^^\n                                                  source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                       ^^^^^^\n                                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts\n                                                               ^^^^^^\n                                                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                      ^\n                                                                      source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                       ^\n                                                                       source.ts meta.function.ts meta.parameters.ts\n                                                                        ^^\n                                                                        source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                                          ^\n                                                                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                           ^\n                                                                           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                                            ^^^^^^^^\n                                                                            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts storage.modifier.ts\n                                                                                    ^\n                                                                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                                                     ^\n                                                                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                      ^^^^^^\n                                                                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                                                                            ^\n                                                                                            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                                                                             ^\n                                                                                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts\n                                                                                              ^^^^^^\n                                                                                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                                                                                    ^\n                                                                                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                                     ^\n                                                                                                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                                                      ^\n                                                                                                      source.ts meta.function.ts\n                                                                                                       ^\n                                                                                                       source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>type ReadWrite<T> = { -readonly [P in keyof T] : T[P] };\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^\n                   source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.type.declaration.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.object.type.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.type.modifier.ts\n                        ^^^^^^^^\n                        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts storage.modifier.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                    ^^\n                                    source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                       ^^^^^\n                                       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.keyof.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                                                   ^\n                                                   source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                    ^\n                                                    source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                                                     ^\n                                                     source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                      ^\n                                                      source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                                       ^\n                                                       source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                                                        ^\n                                                        source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/regexp.baseline.txt",
    "content": "original file\n-----------------------------------\nvar a = /(?:([a-zA-Z_$][\\w$])*)/i;\nvar x = /\\s*\\b(async\\s+)?function\\b/g;\nvar d = /\\s*\\b(async\\s+)?function\\b/d;\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var a = /(?:([a-zA-Z_$][\\w$])*)/i;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n          ^\n          source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp\n           ^^\n           source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp punctuation.definition.group.no-capture.regexp\n             ^\n             source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp meta.group.regexp punctuation.definition.group.regexp\n              ^\n              source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp meta.group.regexp constant.other.character-class.set.regexp punctuation.definition.character-class.regexp\n               ^^^\n               source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp meta.group.regexp constant.other.character-class.set.regexp constant.other.character-class.range.regexp\n                  ^^^\n                  source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp meta.group.regexp constant.other.character-class.set.regexp constant.other.character-class.range.regexp\n                     ^^\n                     source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp meta.group.regexp constant.other.character-class.set.regexp\n                       ^\n                       source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp meta.group.regexp constant.other.character-class.set.regexp punctuation.definition.character-class.regexp\n                        ^\n                        source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp meta.group.regexp constant.other.character-class.set.regexp punctuation.definition.character-class.regexp\n                         ^^\n                         source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp meta.group.regexp constant.other.character-class.set.regexp constant.other.character-class.regexp\n                           ^\n                           source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp meta.group.regexp constant.other.character-class.set.regexp\n                            ^\n                            source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp meta.group.regexp constant.other.character-class.set.regexp punctuation.definition.character-class.regexp\n                             ^\n                             source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp meta.group.regexp punctuation.definition.group.regexp\n                              ^\n                              source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp keyword.operator.quantifier.regexp\n                               ^\n                               source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp\n                                ^\n                                source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                 ^\n                                 source.ts meta.var.expr.ts string.regexp.ts keyword.other.ts\n                                  ^\n                                  source.ts punctuation.terminator.statement.ts\n>var x = /\\s*\\b(async\\s+)?function\\b/g;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts string.regexp.ts\n         ^\n         source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n          ^^\n          source.ts meta.var.expr.ts string.regexp.ts constant.other.character-class.regexp\n            ^\n            source.ts meta.var.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n             ^^\n             source.ts meta.var.expr.ts string.regexp.ts keyword.control.anchor.regexp\n               ^\n               source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp\n                ^^^^^\n                source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp\n                     ^^\n                     source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp constant.other.character-class.regexp\n                       ^\n                       source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp keyword.operator.quantifier.regexp\n                        ^\n                        source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp\n                         ^\n                         source.ts meta.var.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                          ^^^^^^^^\n                          source.ts meta.var.expr.ts string.regexp.ts\n                                  ^^\n                                  source.ts meta.var.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                                    ^\n                                    source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                     ^\n                                     source.ts meta.var.expr.ts string.regexp.ts keyword.other.ts\n                                      ^\n                                      source.ts punctuation.terminator.statement.ts\n>var d = /\\s*\\b(async\\s+)?function\\b/d;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts string.regexp.ts\n         ^\n         source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.begin.ts\n          ^^\n          source.ts meta.var.expr.ts string.regexp.ts constant.other.character-class.regexp\n            ^\n            source.ts meta.var.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n             ^^\n             source.ts meta.var.expr.ts string.regexp.ts keyword.control.anchor.regexp\n               ^\n               source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp\n                ^^^^^\n                source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp\n                     ^^\n                     source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp constant.other.character-class.regexp\n                       ^\n                       source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp keyword.operator.quantifier.regexp\n                        ^\n                        source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp\n                         ^\n                         source.ts meta.var.expr.ts string.regexp.ts keyword.operator.quantifier.regexp\n                          ^^^^^^^^\n                          source.ts meta.var.expr.ts string.regexp.ts\n                                  ^^\n                                  source.ts meta.var.expr.ts string.regexp.ts keyword.control.anchor.regexp\n                                    ^\n                                    source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.end.ts\n                                     ^\n                                     source.ts meta.var.expr.ts string.regexp.ts keyword.other.ts\n                                      ^\n                                      source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/resolutionMode.baseline.txt",
    "content": "original file\n-----------------------------------\n/// <reference types=\"pkg\" resolution-mode=\"require\" />\n/// <reference types=\"pkg\" resolution-mode=\"import\" />\n\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>/// <reference types=\"pkg\" resolution-mode=\"require\" />\n ^^^\n source.ts comment.line.triple-slash.directive.ts punctuation.definition.comment.ts\n    ^\n    source.ts comment.line.triple-slash.directive.ts\n     ^\n     source.ts comment.line.triple-slash.directive.ts meta.tag.ts punctuation.definition.tag.directive.ts\n      ^^^^^^^^^\n      source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.name.tag.directive.ts\n               ^\n               source.ts comment.line.triple-slash.directive.ts meta.tag.ts\n                ^^^^^\n                source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.other.attribute-name.directive.ts\n                     ^\n                     source.ts comment.line.triple-slash.directive.ts meta.tag.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                       ^^^\n                       source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts\n                          ^\n                          source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                           ^\n                           source.ts comment.line.triple-slash.directive.ts meta.tag.ts\n                            ^^^^^^^^^^^^^^^\n                            source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.other.attribute-name.directive.ts\n                                           ^\n                                           source.ts comment.line.triple-slash.directive.ts meta.tag.ts keyword.operator.assignment.ts\n                                            ^\n                                            source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                             ^^^^^^^\n                                             source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts\n                                                    ^\n                                                    source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                     ^\n                                                     source.ts comment.line.triple-slash.directive.ts meta.tag.ts\n                                                      ^^\n                                                      source.ts comment.line.triple-slash.directive.ts meta.tag.ts punctuation.definition.tag.directive.ts\n>/// <reference types=\"pkg\" resolution-mode=\"import\" />\n ^^^\n source.ts comment.line.triple-slash.directive.ts punctuation.definition.comment.ts\n    ^\n    source.ts comment.line.triple-slash.directive.ts\n     ^\n     source.ts comment.line.triple-slash.directive.ts meta.tag.ts punctuation.definition.tag.directive.ts\n      ^^^^^^^^^\n      source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.name.tag.directive.ts\n               ^\n               source.ts comment.line.triple-slash.directive.ts meta.tag.ts\n                ^^^^^\n                source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.other.attribute-name.directive.ts\n                     ^\n                     source.ts comment.line.triple-slash.directive.ts meta.tag.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                       ^^^\n                       source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts\n                          ^\n                          source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                           ^\n                           source.ts comment.line.triple-slash.directive.ts meta.tag.ts\n                            ^^^^^^^^^^^^^^^\n                            source.ts comment.line.triple-slash.directive.ts meta.tag.ts entity.other.attribute-name.directive.ts\n                                           ^\n                                           source.ts comment.line.triple-slash.directive.ts meta.tag.ts keyword.operator.assignment.ts\n                                            ^\n                                            source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                             ^^^^^^\n                                             source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts\n                                                   ^\n                                                   source.ts comment.line.triple-slash.directive.ts meta.tag.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                    ^\n                                                    source.ts comment.line.triple-slash.directive.ts meta.tag.ts\n                                                     ^^\n                                                     source.ts comment.line.triple-slash.directive.ts meta.tag.ts punctuation.definition.tag.directive.ts\n>\n ^\n source.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/restAndSpreadExpression.baseline.txt",
    "content": "original file\n-----------------------------------\nfunction foo(...rest) {\n}\n// rest\nlet { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };\n[a, b, ...rest] = [1, 2, 3, 4, 5];\nvar { x, ...{ y, z } } = o;\nconst [x, ...[y, z]] = ['a', 'b', 'c'];\n// spread\nlet n = { x, y, ...z };\nfunction f<T, U>(t: T, u: U): { id: string, ...T, ...U } {\n    return { id: 'id', ...t, ...u };\n}\nfunction myFunction(v, w, x, y, z) { }\nvar args = [0, 1];\nmyFunction(-1, ...args, 2, ...[3]);\nvar parts = ['shoulders', 'knees'];\nvar lyrics = ['head', ...parts, 'and', 'toes'];\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>function foo(...rest) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^^^\n              source.ts meta.function.ts meta.parameters.ts keyword.operator.rest.ts\n                 ^^^^\n                 source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                      ^\n                      source.ts meta.function.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>// rest\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^\n   source.ts comment.line.double-slash.ts\n>let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n      ^\n      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n       ^\n       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n         ^\n         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n          ^\n          source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n            ^\n            source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n             ^^^\n             source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts keyword.operator.rest.ts\n                ^\n                source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                    ^\n                    source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.objectliteral.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.objectliteral.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                                               ^\n                                               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                ^\n                                                source.ts punctuation.terminator.statement.ts\n>[a, b, ...rest] = [1, 2, 3, 4, 5];\n ^\n source.ts meta.array.literal.ts meta.brace.square.ts\n  ^\n  source.ts meta.array.literal.ts variable.other.readwrite.ts\n   ^\n   source.ts meta.array.literal.ts punctuation.separator.comma.ts\n    ^\n    source.ts meta.array.literal.ts\n     ^\n     source.ts meta.array.literal.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.array.literal.ts punctuation.separator.comma.ts\n       ^\n       source.ts meta.array.literal.ts\n        ^^^\n        source.ts meta.array.literal.ts keyword.operator.spread.ts\n           ^^^^\n           source.ts meta.array.literal.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.array.literal.ts meta.brace.square.ts\n                ^\n                source.ts\n                 ^\n                 source.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.array.literal.ts\n                   ^\n                   source.ts meta.array.literal.ts meta.brace.square.ts\n                    ^\n                    source.ts meta.array.literal.ts constant.numeric.decimal.ts\n                     ^\n                     source.ts meta.array.literal.ts punctuation.separator.comma.ts\n                      ^\n                      source.ts meta.array.literal.ts\n                       ^\n                       source.ts meta.array.literal.ts constant.numeric.decimal.ts\n                        ^\n                        source.ts meta.array.literal.ts punctuation.separator.comma.ts\n                         ^\n                         source.ts meta.array.literal.ts\n                          ^\n                          source.ts meta.array.literal.ts constant.numeric.decimal.ts\n                           ^\n                           source.ts meta.array.literal.ts punctuation.separator.comma.ts\n                            ^\n                            source.ts meta.array.literal.ts\n                             ^\n                             source.ts meta.array.literal.ts constant.numeric.decimal.ts\n                              ^\n                              source.ts meta.array.literal.ts punctuation.separator.comma.ts\n                               ^\n                               source.ts meta.array.literal.ts\n                                ^\n                                source.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts punctuation.terminator.statement.ts\n>var { x, ...{ y, z } } = o;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n      ^\n      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n       ^\n       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n         ^\n         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n          ^^^\n          source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts keyword.operator.rest.ts\n             ^\n             source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n              ^\n              source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n               ^\n               source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                        ^\n                        source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts meta.var.expr.ts\n                          ^\n                          source.ts meta.var.expr.ts variable.other.readwrite.ts\n                           ^\n                           source.ts punctuation.terminator.statement.ts\n>const [x, ...[y, z]] = ['a', 'b', 'c'];\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n        ^\n        source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.constant.ts\n         ^\n         source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.separator.comma.ts\n          ^\n          source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n           ^^^\n           source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts keyword.operator.rest.ts\n              ^\n              source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n               ^\n               source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.separator.comma.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.constant.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n                      ^\n                      source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.array.literal.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.array.literal.ts punctuation.separator.comma.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.array.literal.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.array.literal.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                       ^\n                                       source.ts punctuation.terminator.statement.ts\n>// spread\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^\n   source.ts comment.line.double-slash.ts\n>let n = { x, y, ...z };\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts\n           ^\n           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts\n                 ^^^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.spread.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts\n>function f<T, U>(t: T, u: U): { id: string, ...T, ...U } {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n            ^\n            source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n             ^\n             source.ts meta.function.ts meta.type.parameters.ts punctuation.separator.comma.ts\n              ^\n              source.ts meta.function.ts meta.type.parameters.ts\n               ^\n               source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                ^\n                source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                           ^\n                           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                            ^\n                            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                             ^\n                             source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                              ^\n                              source.ts meta.function.ts meta.return.type.ts\n                               ^\n                               source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                                ^\n                                source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts\n                                 ^^\n                                 source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                   ^\n                                   source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                     ^^^^^^\n                                     source.ts meta.function.ts meta.return.type.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                           ^\n                                           source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.separator.comma.ts\n                                            ^\n                                            source.ts meta.function.ts meta.return.type.ts meta.object.type.ts\n                                             ^^^\n                                             source.ts meta.function.ts meta.return.type.ts meta.object.type.ts keyword.operator.spread.ts\n                                                ^\n                                                source.ts meta.function.ts meta.return.type.ts meta.object.type.ts entity.name.type.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.separator.comma.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.return.type.ts meta.object.type.ts\n                                                   ^^^\n                                                   source.ts meta.function.ts meta.return.type.ts meta.object.type.ts keyword.operator.spread.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.return.type.ts meta.object.type.ts entity.name.type.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.return.type.ts meta.object.type.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.return.type.ts meta.object.type.ts punctuation.definition.block.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.return.type.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    return { id: 'id', ...t, ...u };\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n              ^^\n              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                 ^\n                 source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                   ^^\n                   source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n                        ^^^\n                        source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.spread.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                            ^\n                            source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n                              ^^^\n                              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts keyword.operator.spread.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>function myFunction(v, w, x, y, z) { }\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts\n                           ^\n                           source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                            ^\n                            source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts\n                              ^\n                              source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                  ^\n                                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                   ^\n                                   source.ts meta.function.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>var args = [0, 1];\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n         ^\n         source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n          ^\n          source.ts meta.var.expr.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.var.expr.ts meta.array.literal.ts\n            ^\n            source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n             ^\n             source.ts meta.var.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n              ^\n              source.ts meta.var.expr.ts meta.array.literal.ts punctuation.separator.comma.ts\n               ^\n               source.ts meta.var.expr.ts meta.array.literal.ts\n                ^\n                source.ts meta.var.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n>myFunction(-1, ...args, 2, ...[3]);\n ^^^^^^^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n           ^\n           source.ts meta.brace.round.ts\n            ^\n            source.ts keyword.operator.arithmetic.ts\n             ^\n             source.ts constant.numeric.decimal.ts\n              ^\n              source.ts punctuation.separator.comma.ts\n               ^\n               source.ts\n                ^^^\n                source.ts keyword.operator.spread.ts\n                   ^^^^\n                   source.ts variable.other.readwrite.ts\n                       ^\n                       source.ts punctuation.separator.comma.ts\n                        ^\n                        source.ts\n                         ^\n                         source.ts constant.numeric.decimal.ts\n                          ^\n                          source.ts punctuation.separator.comma.ts\n                           ^\n                           source.ts\n                            ^^^\n                            source.ts keyword.operator.spread.ts\n                               ^\n                               source.ts meta.array.literal.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                 ^\n                                 source.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.brace.round.ts\n                                   ^\n                                   source.ts punctuation.terminator.statement.ts\n>var parts = ['shoulders', 'knees'];\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts meta.array.literal.ts\n             ^\n             source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n              ^\n              source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n               ^^^^^^^^^\n               source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.array.literal.ts punctuation.separator.comma.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.array.literal.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                            ^^^^^\n                            source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                   ^\n                                   source.ts punctuation.terminator.statement.ts\n>var lyrics = ['head', ...parts, 'and', 'toes'];\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n            ^\n            source.ts meta.var.expr.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.var.expr.ts meta.array.literal.ts\n              ^\n              source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n               ^\n               source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                ^^^^\n                source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.array.literal.ts punctuation.separator.comma.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.array.literal.ts\n                       ^^^\n                       source.ts meta.var.expr.ts meta.array.literal.ts keyword.operator.spread.ts\n                          ^^^^^\n                          source.ts meta.var.expr.ts meta.array.literal.ts variable.other.readwrite.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.array.literal.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                  ^^^\n                                  source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.array.literal.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                         ^^^^\n                                         source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                                               ^\n                                               source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/restInBindingPattern.baseline.txt",
    "content": "original file\n-----------------------------------\nvar [...[a, b]] = [0, 1]; \nvar [...{0: a, b }] = [0, 1];\nfunction a(...[a = 1, b = true]: string[]) { }\nfunction b(...[...foo]: string[]) { }\nfunction c(...{0: a, length, 3: d}: [boolean, string, number]) { }\nfunction d(...[a, , d]: [boolean, string, number]) { }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>var [...[a, b]] = [0, 1]; \n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n      ^^^\n      source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts keyword.operator.rest.ts\n         ^\n         source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n          ^\n          source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.separator.comma.ts\n            ^\n            source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n             ^\n             source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n               ^\n               source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n                ^\n                source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n                 ^\n                 source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.array.literal.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.array.literal.ts punctuation.separator.comma.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.array.literal.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n                          ^^\n                          source.ts\n>var [...{0: a, b }] = [0, 1];\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n      ^^^\n      source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts keyword.operator.rest.ts\n         ^\n         source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n          ^\n          source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts constant.numeric.decimal.ts\n           ^\n           source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.destructuring.ts\n            ^\n            source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n             ^\n             source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.separator.comma.ts\n               ^\n               source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n                ^\n                source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n                     ^\n                     source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.array.literal.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.array.literal.ts punctuation.separator.comma.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.array.literal.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.array.literal.ts constant.numeric.decimal.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts\n                             ^\n                             source.ts punctuation.terminator.statement.ts\n>function a(...[a = 1, b = true]: string[]) { }\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^^^\n            source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts keyword.operator.rest.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts variable.parameter.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts constant.numeric.decimal.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.separator.comma.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts variable.parameter.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts keyword.operator.assignment.ts\n                          ^\n                          source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n                           ^^^^\n                           source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts constant.language.boolean.true.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                  ^^^^^^\n                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                        ^\n                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                          ^\n                                          source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                           ^\n                                           source.ts meta.function.ts\n                                            ^\n                                            source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                             ^\n                                             source.ts meta.function.ts meta.block.ts\n                                              ^\n                                              source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>function b(...[...foo]: string[]) { }\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^^^\n            source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts keyword.operator.rest.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                ^^^\n                source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts keyword.operator.rest.ts\n                   ^^^\n                   source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts variable.parameter.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                         ^^^^^^\n                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                  ^\n                                  source.ts meta.function.ts\n                                   ^\n                                   source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                    ^\n                                    source.ts meta.function.ts meta.block.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>function c(...{0: a, length, 3: d}: [boolean, string, number]) { }\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^^^\n            source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts keyword.operator.rest.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts constant.numeric.decimal.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                      ^^^^^^\n                      source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                            ^\n                            source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.separator.comma.ts\n                             ^\n                             source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                              ^\n                              source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts constant.numeric.decimal.ts\n                               ^\n                               source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n                                ^\n                                source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n                                  ^\n                                  source.ts meta.function.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n                                   ^\n                                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                    ^\n                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                     ^\n                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                      ^^^^^^^\n                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                             ^\n                                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                              ^\n                                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts\n                                               ^^^^^^\n                                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts\n                                                       ^^^^^^\n                                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                               ^\n                                                               source.ts meta.function.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.block.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>function d(...[a, , d]: [boolean, string, number]) { }\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^^^\n            source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts keyword.operator.rest.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts variable.parameter.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.separator.comma.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.separator.comma.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts variable.parameter.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                         ^\n                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                          ^^^^^^^\n                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                 ^\n                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                  ^\n                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts\n                                   ^^^^^^\n                                   source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                         ^\n                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                          ^\n                                          source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts\n                                           ^^^^^^\n                                           source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                   ^\n                                                   source.ts meta.function.ts\n                                                    ^\n                                                    source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.block.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/baselines/satisfies.baseline.txt",
    "content": "original file\n-----------------------------------\nlet a = {} satisfies {};\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let a = {} satisfies {};\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n       ^\n       source.ts meta.var.expr.ts keyword.operator.assignment.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^\n         source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^^^^^^^^^\n            source.ts meta.var.expr.ts keyword.control.satisfies.ts\n                     ^\n                     source.ts meta.var.expr.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.object.type.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.object.type.ts punctuation.definition.block.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/specialNew.baseline.txt",
    "content": "original file\n-----------------------------------\nlet storeSomeObj = new function () {\n this.hasNoColorization = function () {\n let butThisDoes = \"yay\";\n }\n\n let noColorHereEither = \"I'm not colorized\";\n }\n\n let butOutSide = \"all color is back to normal!\";\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>let storeSomeObj = new function () {\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^^^^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.var.expr.ts\n                    ^^^\n                    source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts\n                       ^\n                       source.ts meta.var.expr.ts new.expr.ts\n                        ^^^^^^^^\n                        source.ts meta.var.expr.ts meta.function.expression.ts storage.type.function.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.function.expression.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.function.expression.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.function.expression.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n> this.hasNoColorization = function () {\n ^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n  ^^^^\n  source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts variable.language.this.ts\n      ^\n      source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.accessor.ts\n       ^^^^^^^^^^^^^^^^^\n       source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts entity.name.function.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts keyword.operator.assignment.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n                           ^^^^^^^^\n                           source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts storage.type.function.ts\n                                   ^\n                                   source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts\n                                    ^\n                                    source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                     ^\n                                     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n> let butThisDoes = \"yay\";\n ^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts meta.block.ts\n  ^^^\n  source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n     ^\n     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts\n      ^^^^^^^^^^^\n      source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                     ^^^\n                     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n> }\n ^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts meta.block.ts\n  ^\n  source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n> let noColorHereEither = \"I'm not colorized\";\n ^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n  ^^^\n  source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts storage.type.ts\n     ^\n     source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n      ^^^^^^^^^^^^^^^^^\n      source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                           ^^^^^^^^^^^^^^^^^\n                           source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.terminator.statement.ts\n> }\n ^\n source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts\n  ^\n  source.ts meta.var.expr.ts meta.function.expression.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n> let butOutSide = \"all color is back to normal!\";\n ^\n source.ts\n  ^^^\n  source.ts meta.var.expr.ts storage.type.ts\n     ^\n     source.ts meta.var.expr.ts\n      ^^^^^^^^^^\n      source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                    source.ts meta.var.expr.ts string.quoted.double.ts\n                                                ^\n                                                source.ts meta.var.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                 ^\n                                                 source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/templateLiteralType.baseline.txt",
    "content": "original file\n-----------------------------------\ntype EventName<T extends string> = `${T}Changed`;\ntype Concat<S1 extends string, S2 extends string> = `${S1}${S2}`;\ntype ToString<T extends string | number | boolean | bigint> = `${T}`;\ntype T0 = EventName<'foo'>;  // 'fooChanged'\ntype T1 = EventName<'foo' | 'bar' | 'baz'>;  // 'fooChanged' | 'barChanged' | 'bazChanged'\ntype T2 = Concat<'Hello', 'World'>;  // 'HelloWorld'\ntype T3 = `${'top' | 'bottom'}-${'left' | 'right'}`;  // 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\ntype T4 = ToString<'abc' | 42 | true | -1234n>;  // 'abc' | '42' | 'true' | '-1234'\n\ntype Digit = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;\ntype Zip = `${Digit}${Digit}${Digit}${Digit}${Digit}`;  // Error\n\ntype GetterName<T extends string> = `get${Capitalize<T>}`;\ntype Cases<T extends string> = `${Uppercase<T>} ${Lowercase<T>} ${Capitalize<T>} ${Uncapitalize<T>}`;\ntype T10 = GetterName<'foo'>;  // 'getFoo'\ntype T11 = Cases<'bar'>;  // 'BAR bar Bar bar'\ntype T12 = Cases<'BAR'>;  // 'BAR bar BAR bAR'\n\nfunction test<T extends 'foo' | 'bar'>(name: `get${Capitalize<T>}`) {\n    let s1: string = name;\n    let s2: 'getFoo' | 'getBar' = name;\n}\n\ntype MatchPair<S extends string> = S extends `[${infer A},${infer B}]` ? [A, B] : unknown;\n\ntype T20 = MatchPair<'[1,2]'>;  // ['1', '2']\ntype T21 = MatchPair<'[foo,bar]'>;  // ['foo', 'bar']\ntype T22 = MatchPair<' [1,2]'>;  // unknown\ntype T23 = MatchPair<'[123]'>;  // unknown\ntype T24 = MatchPair<'[1,2,3,4]'>;  // ['1', '2,3,4']\n\ntype FirstTwoAndRest<S extends string> = S extends `${infer A}${infer B}${infer R}` ? [`${A}${B}`, R] : unknown;\n\ntype T25 = FirstTwoAndRest<'abcde'>;  // ['ab', 'cde']\ntype T26 = FirstTwoAndRest<'ab'>;  // ['ab', '']\ntype T27 = FirstTwoAndRest<'a'>;  // unknown\n\ntype Join<T extends unknown[], D extends string> =\n    T extends [] ? '' :\n    T extends [string | number | boolean | bigint] ? `${T[0]}` :\n    T extends [string | number | boolean | bigint, ...infer U] ? `${T[0]}${D}${Join<U, D>}` :\n    string;\ntype T30 = Join<[1, 2, 3, 4], '.'>;  // '1.2.3.4'\ntype T31 = Join<['foo', 'bar', 'baz'], '-'>;  // 'foo-bar-baz'\ntype T32 = Join<[], '.'>;  // ''\n\n\ntype Split<S extends string, D extends string> =\n    string extends S ? string[] :\n    S extends '' ? [] :\n    S extends `${infer T}${D}${infer U}` ? [T, ...Split<U, D>] :\n    [S];\n\ntype T40 = Split<'foo', '.'>;  // ['foo']\ntype T41 = Split<'foo.bar.baz', '.'>;  // ['foo', 'bar', 'baz']\ntype T42 = Split<'foo.bar', ''>;  // ['f', 'o', 'o', '.', 'b', 'a', 'r']\ntype T43 = Split<any, '.'>;  // string[]\n\n\ntype PropType<T, Path extends string> =\n    string extends Path ? unknown :\n    Path extends keyof T ? T[Path] :\n    Path extends `${infer K}.${infer R}` ? K extends keyof T ? PropType<T[K], R> : unknown :\n    unknown;\n\ndeclare function getPropValue<T, P extends string>(obj: T, path: P): PropType<T, P>;\ndeclare const s: string;\n\nconst obj = { a: { b: {c: 42, d: 'hello' }}};\ngetPropValue(obj, 'a');  // { b: {c: number, d: string } }\ngetPropValue(obj, 'a.b');  // {c: number, d: string }\ngetPropValue(obj, 'a.b.d');  // string\ngetPropValue(obj, 'a.b.x');  // unknown\ngetPropValue(obj, s);  // unknown\n\n\ntype Getters<T> = { [P in keyof T & string as `get${Capitalize<P>}`]: () => T[P] };\ntype T50 = Getters<{ foo: string, bar: number }>;  // { getFoo: () => string, getBar: () => number }\n\n\ntype Methods<T> = { [P in keyof T as T[P] extends Function ? P : never]: T[P] };\ntype T60 = Methods<{ foo(): number, bar: boolean }>;  // { foo(): number }\n\ntype DoubleProp<T> = { [P in keyof T & string as `${P}1` | `${P}2`]: T[P] }\ntype T70 = DoubleProp<{ a: string, b: number }>;  // { a1: string, a2: string, b1: number, b2: number }\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type EventName<T extends string> = `${T}Changed`;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts\n                  ^^^^^^^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts\n                          ^^^^^^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                     ^^\n                                     source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                         ^^^^^^^\n                                         source.ts meta.type.declaration.ts string.template.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                 ^\n                                                 source.ts punctuation.terminator.statement.ts\n>type Concat<S1 extends string, S2 extends string> = `${S1}${S2}`;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n            ^\n            source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n             ^^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts\n                ^^^^^^^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts\n                        ^^^^^^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                ^^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                   ^^^^^^^\n                                   source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                           ^^^^^^\n                                           source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts\n                                                   ^\n                                                   source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                                    ^\n                                                    source.ts meta.type.declaration.ts\n                                                     ^\n                                                     source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                                      ^^\n                                                      source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                        ^^\n                                                        source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                                          ^\n                                                          source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                           ^^\n                                                           source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                             ^^\n                                                             source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                                               ^\n                                                               source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                ^\n                                                                source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                                 ^\n                                                                 source.ts punctuation.terminator.statement.ts\n>type ToString<T extends string | number | boolean | bigint> = `${T}`;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts\n                 ^^^^^^^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts\n                         ^^^^^^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts keyword.operator.type.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                  ^^^^^^\n                                  source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts meta.type.parameters.ts keyword.operator.type.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                           ^^^^^^^\n                                           source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                                   ^\n                                                   source.ts meta.type.declaration.ts meta.type.parameters.ts keyword.operator.type.ts\n                                                    ^\n                                                    source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                                     ^^^^^^\n                                                     source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                                           ^\n                                                           source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                            ^\n                                                            source.ts meta.type.declaration.ts\n                                                             ^\n                                                             source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                                              ^\n                                                              source.ts meta.type.declaration.ts\n                                                               ^\n                                                               source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                                                ^^\n                                                                source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                  ^\n                                                                  source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                                                   ^\n                                                                   source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                    ^\n                                                                    source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                                     ^\n                                                                     source.ts punctuation.terminator.statement.ts\n>type T0 = EventName<'foo'>;  // 'fooChanged'\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^^^^^^^^^\n           source.ts meta.type.declaration.ts entity.name.type.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                      ^^^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                           ^\n                           source.ts punctuation.terminator.statement.ts\n                            ^^\n                            source.ts\n                              ^^\n                              source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                ^^^^^^^^^^^^^\n                                source.ts comment.line.double-slash.ts\n>type T1 = EventName<'foo' | 'bar' | 'baz'>;  // 'fooChanged' | 'barChanged' | 'bazChanged'\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^^^^^^^^^\n           source.ts meta.type.declaration.ts entity.name.type.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                      ^^^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts keyword.operator.type.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                              ^^^\n                              source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.type.parameters.ts keyword.operator.type.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                      ^^^\n                                      source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                           ^\n                                           source.ts punctuation.terminator.statement.ts\n                                            ^^\n                                            source.ts\n                                              ^^\n                                              source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                source.ts comment.line.double-slash.ts\n>type T2 = Concat<'Hello', 'World'>;  // 'HelloWorld'\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^^^^^^\n           source.ts meta.type.declaration.ts entity.name.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                   ^^^^^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                            ^^^^^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                   ^\n                                   source.ts punctuation.terminator.statement.ts\n                                    ^^\n                                    source.ts\n                                      ^^\n                                      source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                        ^^^^^^^^^^^^^\n                                        source.ts comment.line.double-slash.ts\n>type T3 = `${'top' | 'bottom'}-${'left' | 'right'}`;  // 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^\n           source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.begin.ts\n            ^^\n            source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n              ^\n              source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n               ^^^\n               source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.single.ts\n                  ^\n                  source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                   ^\n                   source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts\n                    ^\n                    source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts keyword.operator.type.ts\n                     ^\n                     source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts\n                      ^\n                      source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                       ^^^^^^\n                       source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.single.ts\n                             ^\n                             source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                              ^\n                              source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                               ^\n                               source.ts meta.type.declaration.ts string.template.ts\n                                ^^\n                                source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                   ^^^^\n                                   source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.single.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts keyword.operator.type.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                            ^^^^^\n                                            source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.single.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                   ^\n                                                   source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                    ^\n                                                    source.ts punctuation.terminator.statement.ts\n                                                     ^^\n                                                     source.ts\n                                                       ^^\n                                                       source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                         source.ts comment.line.double-slash.ts\n>type T4 = ToString<'abc' | 42 | true | -1234n>;  // 'abc' | '42' | 'true' | '-1234'\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n        ^\n        source.ts meta.type.declaration.ts\n         ^\n         source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.type.declaration.ts\n           ^^^^^^^^\n           source.ts meta.type.declaration.ts entity.name.type.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                     ^^^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts keyword.operator.type.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts\n                            ^^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts constant.numeric.decimal.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.parameters.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts keyword.operator.type.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                 ^^^^\n                                 source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.builtin.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.type.parameters.ts keyword.operator.type.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                         ^^^^\n                                         source.ts meta.type.declaration.ts meta.type.parameters.ts constant.numeric.decimal.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts meta.type.parameters.ts constant.numeric.decimal.ts storage.type.numeric.bigint.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                               ^\n                                               source.ts punctuation.terminator.statement.ts\n                                                ^^\n                                                source.ts\n                                                  ^^\n                                                  source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                    source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>type Digit = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^\n            source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.type.declaration.ts\n              ^\n              source.ts meta.type.declaration.ts constant.numeric.decimal.ts\n               ^\n               source.ts meta.type.declaration.ts\n                ^\n                source.ts meta.type.declaration.ts keyword.operator.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.type.declaration.ts\n                    ^\n                    source.ts meta.type.declaration.ts keyword.operator.type.ts\n                     ^\n                     source.ts meta.type.declaration.ts\n                      ^\n                      source.ts meta.type.declaration.ts constant.numeric.decimal.ts\n                       ^\n                       source.ts meta.type.declaration.ts\n                        ^\n                        source.ts meta.type.declaration.ts keyword.operator.type.ts\n                         ^\n                         source.ts meta.type.declaration.ts\n                          ^\n                          source.ts meta.type.declaration.ts constant.numeric.decimal.ts\n                           ^\n                           source.ts meta.type.declaration.ts\n                            ^\n                            source.ts meta.type.declaration.ts keyword.operator.type.ts\n                             ^\n                             source.ts meta.type.declaration.ts\n                              ^\n                              source.ts meta.type.declaration.ts constant.numeric.decimal.ts\n                               ^\n                               source.ts meta.type.declaration.ts\n                                ^\n                                source.ts meta.type.declaration.ts keyword.operator.type.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts constant.numeric.decimal.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts keyword.operator.type.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts constant.numeric.decimal.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts keyword.operator.type.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts constant.numeric.decimal.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts keyword.operator.type.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts constant.numeric.decimal.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts keyword.operator.type.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts constant.numeric.decimal.ts\n                                                   ^\n                                                   source.ts punctuation.terminator.statement.ts\n>type Zip = `${Digit}${Digit}${Digit}${Digit}${Digit}`;  // Error\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^\n            source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.begin.ts\n             ^^\n             source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n               ^^^^^\n               source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                    ^\n                    source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                     ^^\n                     source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                       ^^^^^\n                       source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                            ^\n                            source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                             ^^\n                             source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                               ^^^^^\n                               source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                     ^^\n                                     source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                       ^^^^^\n                                       source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                             ^^\n                                             source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                               ^^^^^\n                                               source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                                    ^\n                                                    source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                     ^\n                                                     source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                      ^\n                                                      source.ts punctuation.terminator.statement.ts\n                                                       ^^\n                                                       source.ts\n                                                         ^^\n                                                         source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                           ^^^^^^\n                                                           source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>type GetterName<T extends string> = `get${Capitalize<T>}`;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts\n                   ^^^^^^^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts\n                           ^^^^^^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                      ^^^\n                                      source.ts meta.type.declaration.ts string.template.ts\n                                         ^^\n                                         source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                           ^^^^^^^^^^\n                                           source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                                     ^\n                                                     source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                      ^\n                                                      source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts entity.name.type.ts\n                                                       ^\n                                                       source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                        ^\n                                                        source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                         ^\n                                                         source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                          ^\n                                                          source.ts punctuation.terminator.statement.ts\n>type Cases<T extends string> = `${Uppercase<T>} ${Lowercase<T>} ${Capitalize<T>} ${Uncapitalize<T>}`;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n           ^\n           source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n            ^\n            source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n             ^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts\n              ^^^^^^^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts\n                      ^^^^^^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                             ^\n                             source.ts meta.type.declaration.ts\n                              ^\n                              source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                               ^\n                               source.ts meta.type.declaration.ts\n                                ^\n                                source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                 ^^\n                                 source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                   ^^^^^^^^^\n                                   source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts entity.name.type.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts string.template.ts\n                                                 ^^\n                                                 source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                   ^^^^^^^^^\n                                                   source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                                            ^\n                                                            source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                             ^\n                                                             source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts entity.name.type.ts\n                                                              ^\n                                                              source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                               ^\n                                                               source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                ^\n                                                                source.ts meta.type.declaration.ts string.template.ts\n                                                                 ^^\n                                                                 source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                   ^^^^^^^^^^\n                                                                   source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                                                             ^\n                                                                             source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                              ^\n                                                                              source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts entity.name.type.ts\n                                                                               ^\n                                                                               source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                                ^\n                                                                                source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                                 ^\n                                                                                 source.ts meta.type.declaration.ts string.template.ts\n                                                                                  ^^\n                                                                                  source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                                    ^^^^^^^^^^^^\n                                                                                    source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                                                                                ^\n                                                                                                source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                                                 ^\n                                                                                                 source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts entity.name.type.ts\n                                                                                                  ^\n                                                                                                  source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                                                   ^\n                                                                                                   source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                                                    ^\n                                                                                                    source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                                                                     ^\n                                                                                                     source.ts punctuation.terminator.statement.ts\n>type T10 = GetterName<'foo'>;  // 'getFoo'\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                        ^^^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                             ^\n                             source.ts punctuation.terminator.statement.ts\n                              ^^\n                              source.ts\n                                ^^\n                                source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                  ^^^^^^^^^\n                                  source.ts comment.line.double-slash.ts\n>type T11 = Cases<'bar'>;  // 'BAR bar Bar bar'\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                   ^^^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts\n                         ^^\n                         source.ts\n                           ^^\n                           source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                             ^^^^^^^^^^^^^^^^^^\n                             source.ts comment.line.double-slash.ts\n>type T12 = Cases<'BAR'>;  // 'BAR bar BAR bAR'\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                   ^^^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts\n                         ^^\n                         source.ts\n                           ^^\n                           source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                             ^^^^^^^^^^^^^^^^^^\n                             source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>function test<T extends 'foo' | 'bar'>(name: `get${Capitalize<T>}`) {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n              ^\n              source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n               ^\n               source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                ^\n                source.ts meta.function.ts meta.type.parameters.ts\n                 ^^^^^^^\n                 source.ts meta.function.ts meta.type.parameters.ts storage.modifier.ts\n                        ^\n                        source.ts meta.function.ts meta.type.parameters.ts\n                         ^\n                         source.ts meta.function.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                          ^^^\n                          source.ts meta.function.ts meta.type.parameters.ts string.quoted.single.ts\n                             ^\n                             source.ts meta.function.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                              ^\n                              source.ts meta.function.ts meta.type.parameters.ts\n                               ^\n                               source.ts meta.function.ts meta.type.parameters.ts keyword.operator.type.ts\n                                ^\n                                source.ts meta.function.ts meta.type.parameters.ts\n                                 ^\n                                 source.ts meta.function.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                  ^^^\n                                  source.ts meta.function.ts meta.type.parameters.ts string.quoted.single.ts\n                                     ^\n                                     source.ts meta.function.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                      ^\n                                      source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                       ^\n                                       source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                        ^^^^\n                                        source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                            ^\n                                            source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                             ^\n                                             source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                              ^\n                                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                               ^^^\n                                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts string.template.ts\n                                                  ^^\n                                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                    ^^^^^^^^^^\n                                                    source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts entity.name.type.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    let s1: string = name;\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^\n     source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n         ^^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n             ^^^^^^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                      ^^^^\n                      source.ts meta.function.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>    let s2: 'getFoo' | 'getBar' = name;\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^\n     source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n        ^\n        source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n         ^^\n         source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n              ^^^^^^\n              source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts string.quoted.single.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                         ^^^^^^\n                         source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts string.quoted.single.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                ^\n                                source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                                 ^\n                                 source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                  ^\n                                  source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n                                   ^^^^\n                                   source.ts meta.function.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>type MatchPair<S extends string> = S extends `[${infer A},${infer B}]` ? [A, B] : unknown;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts\n                  ^^^^^^^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts\n                          ^^^^^^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts entity.name.type.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts\n                                      ^^^^^^^\n                                      source.ts meta.type.declaration.ts storage.modifier.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts string.template.ts\n                                                ^^\n                                                source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                  ^^^^^\n                                                  source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                                                       ^\n                                                       source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts\n                                                        ^\n                                                        source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts entity.name.type.ts\n                                                         ^\n                                                         source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                          ^\n                                                          source.ts meta.type.declaration.ts string.template.ts\n                                                           ^^\n                                                           source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                             ^^^^^\n                                                             source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                                                                  ^\n                                                                  source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts\n                                                                   ^\n                                                                   source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts entity.name.type.ts\n                                                                    ^\n                                                                    source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                     ^\n                                                                     source.ts meta.type.declaration.ts string.template.ts\n                                                                      ^\n                                                                      source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                                       ^\n                                                                       source.ts meta.type.declaration.ts\n                                                                        ^\n                                                                        source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                                                         ^\n                                                                         source.ts meta.type.declaration.ts\n                                                                          ^\n                                                                          source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                           ^\n                                                                           source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n                                                                            ^\n                                                                            source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                                                             ^\n                                                                             source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                                                              ^\n                                                                              source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n                                                                               ^\n                                                                               source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                ^\n                                                                                source.ts meta.type.declaration.ts\n                                                                                 ^\n                                                                                 source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                                                                  ^\n                                                                                  source.ts meta.type.declaration.ts\n                                                                                   ^^^^^^^\n                                                                                   source.ts meta.type.declaration.ts support.type.primitive.ts\n                                                                                          ^\n                                                                                          source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>type T20 = MatchPair<'[1,2]'>;  // ['1', '2']\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                       ^^^^^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts\n                               ^^\n                               source.ts\n                                 ^^\n                                 source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                   ^^^^^^^^^^^\n                                   source.ts comment.line.double-slash.ts\n>type T21 = MatchPair<'[foo,bar]'>;  // ['foo', 'bar']\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                       ^^^^^^^^^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                  ^\n                                  source.ts punctuation.terminator.statement.ts\n                                   ^^\n                                   source.ts\n                                     ^^\n                                     source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                       ^^^^^^^^^^^^^^^\n                                       source.ts comment.line.double-slash.ts\n>type T22 = MatchPair<' [1,2]'>;  // unknown\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                       ^^^^^^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                               ^\n                               source.ts punctuation.terminator.statement.ts\n                                ^^\n                                source.ts\n                                  ^^\n                                  source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                    ^^^^^^^^\n                                    source.ts comment.line.double-slash.ts\n>type T23 = MatchPair<'[123]'>;  // unknown\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                       ^^^^^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts\n                               ^^\n                               source.ts\n                                 ^^\n                                 source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                   ^^^^^^^^\n                                   source.ts comment.line.double-slash.ts\n>type T24 = MatchPair<'[1,2,3,4]'>;  // ['1', '2,3,4']\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                       ^^^^^^^^^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                  ^\n                                  source.ts punctuation.terminator.statement.ts\n                                   ^^\n                                   source.ts\n                                     ^^\n                                     source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                       ^^^^^^^^^^^^^^^\n                                       source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>type FirstTwoAndRest<S extends string> = S extends `${infer A}${infer B}${infer R}` ? [`${A}${B}`, R] : unknown;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts\n                        ^^^^^^^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                ^^^^^^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts entity.name.type.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts\n                                            ^^^^^^^\n                                            source.ts meta.type.declaration.ts storage.modifier.ts\n                                                   ^\n                                                   source.ts meta.type.declaration.ts\n                                                    ^\n                                                    source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                                     ^^\n                                                     source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                       ^^^^^\n                                                       source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                                                            ^\n                                                            source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts\n                                                             ^\n                                                             source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts entity.name.type.ts\n                                                              ^\n                                                              source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                               ^^\n                                                               source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                 ^^^^^\n                                                                 source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                                                                      ^\n                                                                      source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts\n                                                                       ^\n                                                                       source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts entity.name.type.ts\n                                                                        ^\n                                                                        source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                         ^^\n                                                                         source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                           ^^^^^\n                                                                           source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                                                                                ^\n                                                                                source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts\n                                                                                 ^\n                                                                                 source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts entity.name.type.ts\n                                                                                  ^\n                                                                                  source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                                   ^\n                                                                                   source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                                                    ^\n                                                                                    source.ts meta.type.declaration.ts\n                                                                                     ^\n                                                                                     source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                                                                      ^\n                                                                                      source.ts meta.type.declaration.ts\n                                                                                       ^\n                                                                                       source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                        ^\n                                                                                        source.ts meta.type.declaration.ts meta.type.tuple.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                                                                         ^^\n                                                                                         source.ts meta.type.declaration.ts meta.type.tuple.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                                           ^\n                                                                                           source.ts meta.type.declaration.ts meta.type.tuple.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                                                                            ^\n                                                                                            source.ts meta.type.declaration.ts meta.type.tuple.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                                             ^^\n                                                                                             source.ts meta.type.declaration.ts meta.type.tuple.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                                               ^\n                                                                                               source.ts meta.type.declaration.ts meta.type.tuple.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                                                                                ^\n                                                                                                source.ts meta.type.declaration.ts meta.type.tuple.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                                                 ^\n                                                                                                 source.ts meta.type.declaration.ts meta.type.tuple.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                                                                  ^\n                                                                                                  source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                                                                                   ^\n                                                                                                   source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                                                                                    ^\n                                                                                                    source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n                                                                                                     ^\n                                                                                                     source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                                      ^\n                                                                                                      source.ts meta.type.declaration.ts\n                                                                                                       ^\n                                                                                                       source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                                                                                        ^\n                                                                                                        source.ts meta.type.declaration.ts\n                                                                                                         ^^^^^^^\n                                                                                                         source.ts meta.type.declaration.ts support.type.primitive.ts\n                                                                                                                ^\n                                                                                                                source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>type T25 = FirstTwoAndRest<'abcde'>;  // ['ab', 'cde']\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^^^^^^^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                             ^^^^^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                    ^\n                                    source.ts punctuation.terminator.statement.ts\n                                     ^^\n                                     source.ts\n                                       ^^\n                                       source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                         ^^^^^^^^^^^^^^\n                                         source.ts comment.line.double-slash.ts\n>type T26 = FirstTwoAndRest<'ab'>;  // ['ab', '']\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^^^^^^^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                             ^^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                 ^\n                                 source.ts punctuation.terminator.statement.ts\n                                  ^^\n                                  source.ts\n                                    ^^\n                                    source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                      ^^^^^^^^^^^\n                                      source.ts comment.line.double-slash.ts\n>type T27 = FirstTwoAndRest<'a'>;  // unknown\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^^^^^^^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                ^\n                                source.ts punctuation.terminator.statement.ts\n                                 ^^\n                                 source.ts\n                                   ^^\n                                   source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                     ^^^^^^^^\n                                     source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>type Join<T extends unknown[], D extends string> =\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n          ^\n          source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n           ^\n           source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n            ^\n            source.ts meta.type.declaration.ts meta.type.parameters.ts\n             ^^^^^^^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.parameters.ts\n                     ^^^^^^^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                  ^^^^^^^\n                                  source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                          ^^^^^^\n                                          source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n>    T extends [] ? '' :\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts entity.name.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^^^^^^^\n       source.ts meta.type.declaration.ts storage.modifier.ts\n              ^\n              source.ts meta.type.declaration.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                   ^\n                   source.ts meta.type.declaration.ts\n                    ^\n                    source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                     ^\n                     source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                      ^\n                      source.ts meta.type.declaration.ts\n                       ^\n                       source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n>    T extends [string | number | boolean | bigint] ? `${T[0]}` :\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts entity.name.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^^^^^^^\n       source.ts meta.type.declaration.ts storage.modifier.ts\n              ^\n              source.ts meta.type.declaration.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                ^^^^^^\n                source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.tuple.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.type.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.tuple.ts\n                         ^^^^^^\n                         source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.type.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                  ^^^^^^^\n                                  source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.type.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                            ^^^^^^\n                                            source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                   ^\n                                                   source.ts meta.type.declaration.ts\n                                                    ^\n                                                    source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                                     ^\n                                                     source.ts meta.type.declaration.ts\n                                                      ^\n                                                      source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                                       ^^\n                                                       source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                         ^\n                                                         source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                                          ^\n                                                          source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.tuple.ts meta.brace.square.ts\n                                                           ^\n                                                           source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.tuple.ts constant.numeric.decimal.ts\n                                                            ^\n                                                            source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.tuple.ts meta.brace.square.ts\n                                                             ^\n                                                             source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                              ^\n                                                              source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                               ^\n                                                               source.ts meta.type.declaration.ts\n                                                                ^\n                                                                source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n>    T extends [string | number | boolean | bigint, ...infer U] ? `${T[0]}${D}${Join<U, D>}` :\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts entity.name.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^^^^^^^\n       source.ts meta.type.declaration.ts storage.modifier.ts\n              ^\n              source.ts meta.type.declaration.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                ^^^^^^\n                source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.tuple.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.type.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.tuple.ts\n                         ^^^^^^\n                         source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.type.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                  ^^^^^^^\n                                  source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.type.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                            ^^^^^^\n                                            source.ts meta.type.declaration.ts meta.type.tuple.ts support.type.primitive.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                                   ^\n                                                   source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                                    ^^^\n                                                    source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.rest.ts\n                                                       ^^^^^\n                                                       source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                                                            ^\n                                                            source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.infer.ts\n                                                             ^\n                                                             source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.infer.ts entity.name.type.ts\n                                                              ^\n                                                              source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                               ^\n                                                               source.ts meta.type.declaration.ts\n                                                                ^\n                                                                source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                                                 ^\n                                                                 source.ts meta.type.declaration.ts\n                                                                  ^\n                                                                  source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                                                   ^^\n                                                                   source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                     ^\n                                                                     source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                                                      ^\n                                                                      source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                       ^\n                                                                       source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.tuple.ts constant.numeric.decimal.ts\n                                                                        ^\n                                                                        source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                         ^\n                                                                         source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                          ^^\n                                                                          source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                            ^\n                                                                            source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                                                             ^\n                                                                             source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                              ^^\n                                                                              source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                                                ^^^^\n                                                                                source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                                                                    ^\n                                                                                    source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                                     ^\n                                                                                     source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts entity.name.type.ts\n                                                                                      ^\n                                                                                      source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                                                                       ^\n                                                                                       source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts\n                                                                                        ^\n                                                                                        source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts entity.name.type.ts\n                                                                                         ^\n                                                                                         source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                                          ^\n                                                                                          source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                                           ^\n                                                                                           source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                                                            ^\n                                                                                            source.ts meta.type.declaration.ts\n                                                                                             ^\n                                                                                             source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n>    string;\n ^^^^\n source.ts meta.type.declaration.ts\n     ^^^^^^\n     source.ts meta.type.declaration.ts support.type.primitive.ts\n           ^\n           source.ts punctuation.terminator.statement.ts\n>type T30 = Join<[1, 2, 3, 4], '.'>;  // '1.2.3.4'\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts constant.numeric.decimal.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts constant.numeric.decimal.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts constant.numeric.decimal.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts constant.numeric.decimal.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.parameters.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                   ^\n                                   source.ts punctuation.terminator.statement.ts\n                                    ^^\n                                    source.ts\n                                      ^^\n                                      source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                        ^^^^^^^^^^\n                                        source.ts comment.line.double-slash.ts\n>type T31 = Join<['foo', 'bar', 'baz'], '-'>;  // 'foo-bar-baz'\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                   ^^^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts string.quoted.single.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                          ^^^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts string.quoted.single.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                 ^^^\n                                 source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts string.quoted.single.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                            ^\n                                            source.ts punctuation.terminator.statement.ts\n                                             ^^\n                                             source.ts\n                                               ^^\n                                               source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                 ^^^^^^^^^^^^^^\n                                                 source.ts comment.line.double-slash.ts\n>type T32 = Join<[], '.'>;  // ''\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.parameters.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n                          ^^\n                          source.ts\n                            ^^\n                            source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                              ^^^\n                              source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>\n ^\n source.ts\n>type Split<S extends string, D extends string> =\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n           ^\n           source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n            ^\n            source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n             ^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts\n              ^^^^^^^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts\n                      ^^^^^^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                ^^^^^^^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                        ^^^^^^\n                                        source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n>    string extends S ? string[] :\n ^^^^\n source.ts meta.type.declaration.ts\n     ^^^^^^\n     source.ts meta.type.declaration.ts support.type.primitive.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^^^\n            source.ts meta.type.declaration.ts storage.modifier.ts\n                   ^\n                   source.ts meta.type.declaration.ts\n                    ^\n                    source.ts meta.type.declaration.ts entity.name.type.ts\n                     ^\n                     source.ts meta.type.declaration.ts\n                      ^\n                      source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                       ^\n                       source.ts meta.type.declaration.ts\n                        ^^^^^^\n                        source.ts meta.type.declaration.ts support.type.primitive.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                ^\n                                source.ts meta.type.declaration.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n>    S extends '' ? [] :\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts entity.name.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^^^^^^^\n       source.ts meta.type.declaration.ts storage.modifier.ts\n              ^\n              source.ts meta.type.declaration.ts\n               ^\n               source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                ^\n                source.ts meta.type.declaration.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                   ^\n                   source.ts meta.type.declaration.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                      ^\n                      source.ts meta.type.declaration.ts\n                       ^\n                       source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n>    S extends `${infer T}${D}${infer U}` ? [T, ...Split<U, D>] :\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts entity.name.type.ts\n      ^\n      source.ts meta.type.declaration.ts\n       ^^^^^^^\n       source.ts meta.type.declaration.ts storage.modifier.ts\n              ^\n              source.ts meta.type.declaration.ts\n               ^\n               source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.begin.ts\n                ^^\n                source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                  ^^^^^\n                  source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                       ^\n                       source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts\n                        ^\n                        source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts entity.name.type.ts\n                         ^\n                         source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                          ^^\n                          source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                            ^\n                            source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                             ^\n                             source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                              ^^\n                              source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                ^^^^^\n                                source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts entity.name.type.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.end.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts meta.type.tuple.ts\n                                                ^^^\n                                                source.ts meta.type.declaration.ts meta.type.tuple.ts keyword.operator.rest.ts\n                                                   ^^^^^\n                                                   source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n                                                        ^\n                                                        source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                         ^\n                                                         source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.parameters.ts entity.name.type.ts\n                                                          ^\n                                                          source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                                           ^\n                                                           source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.parameters.ts\n                                                            ^\n                                                            source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.parameters.ts entity.name.type.ts\n                                                             ^\n                                                             source.ts meta.type.declaration.ts meta.type.tuple.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                              ^\n                                                              source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                                               ^\n                                                               source.ts meta.type.declaration.ts\n                                                                ^\n                                                                source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n>    [S];\n ^^^^\n source.ts meta.type.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n      ^\n      source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n       ^\n       source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n        ^\n        source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>type T40 = Split<'foo', '.'>;  // ['foo']\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                   ^^^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                             ^\n                             source.ts punctuation.terminator.statement.ts\n                              ^^\n                              source.ts\n                                ^^\n                                source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                  ^^^^^^^^\n                                  source.ts comment.line.double-slash.ts\n>type T41 = Split<'foo.bar.baz', '.'>;  // ['foo', 'bar', 'baz']\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                   ^^^^^^^^^^^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                     ^\n                                     source.ts punctuation.terminator.statement.ts\n                                      ^^\n                                      source.ts\n                                        ^^\n                                        source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                          ^^^^^^^^^^^^^^^^^^^^^^\n                                          source.ts comment.line.double-slash.ts\n>type T42 = Split<'foo.bar', ''>;  // ['f', 'o', 'o', '.', 'b', 'a', 'r']\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                   ^^^^^^^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                ^\n                                source.ts punctuation.terminator.statement.ts\n                                 ^^\n                                 source.ts\n                                   ^^\n                                   source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                     source.ts comment.line.double-slash.ts\n>type T43 = Split<any, '.'>;  // string[]\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                  ^^^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                           ^\n                           source.ts punctuation.terminator.statement.ts\n                            ^^\n                            source.ts\n                              ^^\n                              source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                ^^^^^^^^^\n                                source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>\n ^\n source.ts\n>type PropType<T, Path extends string> =\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts\n                  ^^^^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts\n                       ^^^^^^^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.parameters.ts\n                               ^^^^^^\n                               source.ts meta.type.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n>    string extends Path ? unknown :\n ^^^^\n source.ts meta.type.declaration.ts\n     ^^^^^^\n     source.ts meta.type.declaration.ts support.type.primitive.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^^^\n            source.ts meta.type.declaration.ts storage.modifier.ts\n                   ^\n                   source.ts meta.type.declaration.ts\n                    ^^^^\n                    source.ts meta.type.declaration.ts entity.name.type.ts\n                        ^\n                        source.ts meta.type.declaration.ts\n                         ^\n                         source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                          ^\n                          source.ts meta.type.declaration.ts\n                           ^^^^^^^\n                           source.ts meta.type.declaration.ts support.type.primitive.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n>    Path extends keyof T ? T[Path] :\n ^^^^\n source.ts meta.type.declaration.ts\n     ^^^^\n     source.ts meta.type.declaration.ts entity.name.type.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^^^^^^^\n          source.ts meta.type.declaration.ts storage.modifier.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^^^^^\n                  source.ts meta.type.declaration.ts keyword.operator.expression.keyof.ts\n                       ^\n                       source.ts meta.type.declaration.ts\n                        ^\n                        source.ts meta.type.declaration.ts entity.name.type.ts\n                         ^\n                         source.ts meta.type.declaration.ts\n                          ^\n                          source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                           ^\n                           source.ts meta.type.declaration.ts\n                            ^\n                            source.ts meta.type.declaration.ts entity.name.type.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                              ^^^^\n                              source.ts meta.type.declaration.ts meta.type.tuple.ts entity.name.type.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n>    Path extends `${infer K}.${infer R}` ? K extends keyof T ? PropType<T[K], R> : unknown :\n ^^^^\n source.ts meta.type.declaration.ts\n     ^^^^\n     source.ts meta.type.declaration.ts entity.name.type.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^^^^^^^\n          source.ts meta.type.declaration.ts storage.modifier.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.begin.ts\n                   ^^\n                   source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                     ^^^^^\n                     source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                          ^\n                          source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts\n                           ^\n                           source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts entity.name.type.ts\n                            ^\n                            source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                             ^\n                             source.ts meta.type.declaration.ts string.template.ts\n                              ^^\n                              source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                ^^^^^\n                                source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts keyword.operator.expression.infer.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.infer.ts entity.name.type.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts string.template.ts punctuation.definition.string.template.end.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts\n                                            ^\n                                            source.ts meta.type.declaration.ts entity.name.type.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts\n                                              ^^^^^^^\n                                              source.ts meta.type.declaration.ts storage.modifier.ts\n                                                     ^\n                                                     source.ts meta.type.declaration.ts\n                                                      ^^^^^\n                                                      source.ts meta.type.declaration.ts keyword.operator.expression.keyof.ts\n                                                           ^\n                                                           source.ts meta.type.declaration.ts\n                                                            ^\n                                                            source.ts meta.type.declaration.ts entity.name.type.ts\n                                                             ^\n                                                             source.ts meta.type.declaration.ts\n                                                              ^\n                                                              source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                                               ^\n                                                               source.ts meta.type.declaration.ts\n                                                                ^^^^^^^^\n                                                                source.ts meta.type.declaration.ts entity.name.type.ts\n                                                                        ^\n                                                                        source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                         ^\n                                                                         source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                                                                          ^\n                                                                          source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                           ^\n                                                                           source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts entity.name.type.ts\n                                                                            ^\n                                                                            source.ts meta.type.declaration.ts meta.type.parameters.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                             ^\n                                                                             source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                                                              ^\n                                                                              source.ts meta.type.declaration.ts meta.type.parameters.ts\n                                                                               ^\n                                                                               source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                                                                                ^\n                                                                                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                                 ^\n                                                                                 source.ts meta.type.declaration.ts\n                                                                                  ^\n                                                                                  source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n                                                                                   ^\n                                                                                   source.ts meta.type.declaration.ts\n                                                                                    ^^^^^^^\n                                                                                    source.ts meta.type.declaration.ts support.type.primitive.ts\n                                                                                           ^\n                                                                                           source.ts meta.type.declaration.ts\n                                                                                            ^\n                                                                                            source.ts meta.type.declaration.ts keyword.operator.ternary.ts\n>    unknown;\n ^^^^\n source.ts meta.type.declaration.ts\n     ^^^^^^^\n     source.ts meta.type.declaration.ts support.type.primitive.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>declare function getPropValue<T, P extends string>(obj: T, path: P): PropType<T, P>;\n ^^^^^^^\n source.ts meta.function.ts storage.modifier.ts\n        ^\n        source.ts meta.function.ts\n         ^^^^^^^^\n         source.ts meta.function.ts storage.type.function.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^^^^^^^^^^^^\n                  source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n                              ^\n                              source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                               ^\n                               source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                                ^\n                                source.ts meta.function.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                 ^\n                                 source.ts meta.function.ts meta.type.parameters.ts\n                                  ^\n                                  source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts\n                                   ^\n                                   source.ts meta.function.ts meta.type.parameters.ts\n                                    ^^^^^^^\n                                    source.ts meta.function.ts meta.type.parameters.ts storage.modifier.ts\n                                           ^\n                                           source.ts meta.function.ts meta.type.parameters.ts\n                                            ^^^^^^\n                                            source.ts meta.function.ts meta.type.parameters.ts support.type.primitive.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                   ^\n                                                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                    ^^^\n                                                    source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.parameters.ts\n                                                            ^^^^\n                                                            source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                 ^\n                                                                 source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                                  ^\n                                                                  source.ts meta.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.return.type.ts\n                                                                      ^^^^^^^^\n                                                                      source.ts meta.function.ts meta.return.type.ts entity.name.type.ts\n                                                                              ^\n                                                                              source.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                               ^\n                                                                               source.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts entity.name.type.ts\n                                                                                ^\n                                                                                source.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                                                                                 ^\n                                                                                 source.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts\n                                                                                  ^\n                                                                                  source.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts entity.name.type.ts\n                                                                                   ^\n                                                                                   source.ts meta.function.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                                    ^\n                                                                                    source.ts punctuation.terminator.statement.ts\n>declare const s: string;\n ^^^^^^^\n source.ts meta.var.expr.ts storage.modifier.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^\n         source.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                  ^^^^^^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts support.type.primitive.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>const obj = { a: { b: {c: 42, d: 'hello' }}};\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.var.expr.ts meta.objectliteral.ts\n               ^\n               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                ^\n                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                           ^^\n                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.separator.comma.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                 ^\n                                 source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                  ^\n                                  source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                                   ^^^^^\n                                   source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                             ^\n                                             source.ts punctuation.terminator.statement.ts\n>getPropValue(obj, 'a');  // { b: {c: number, d: string } }\n ^^^^^^^^^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n             ^\n             source.ts meta.brace.round.ts\n              ^^^\n              source.ts variable.other.readwrite.ts\n                 ^\n                 source.ts punctuation.separator.comma.ts\n                  ^\n                  source.ts\n                   ^\n                   source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                    ^\n                    source.ts string.quoted.single.ts\n                     ^\n                     source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                      ^\n                      source.ts meta.brace.round.ts\n                       ^\n                       source.ts punctuation.terminator.statement.ts\n                        ^^\n                        source.ts\n                          ^^\n                          source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                            source.ts comment.line.double-slash.ts\n>getPropValue(obj, 'a.b');  // {c: number, d: string }\n ^^^^^^^^^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n             ^\n             source.ts meta.brace.round.ts\n              ^^^\n              source.ts variable.other.readwrite.ts\n                 ^\n                 source.ts punctuation.separator.comma.ts\n                  ^\n                  source.ts\n                   ^\n                   source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                    ^^^\n                    source.ts string.quoted.single.ts\n                       ^\n                       source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                        ^\n                        source.ts meta.brace.round.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n                          ^^\n                          source.ts\n                            ^^\n                            source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                              ^^^^^^^^^^^^^^^^^^^^^^^^\n                              source.ts comment.line.double-slash.ts\n>getPropValue(obj, 'a.b.d');  // string\n ^^^^^^^^^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n             ^\n             source.ts meta.brace.round.ts\n              ^^^\n              source.ts variable.other.readwrite.ts\n                 ^\n                 source.ts punctuation.separator.comma.ts\n                  ^\n                  source.ts\n                   ^\n                   source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                    ^^^^^\n                    source.ts string.quoted.single.ts\n                         ^\n                         source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                          ^\n                          source.ts meta.brace.round.ts\n                           ^\n                           source.ts punctuation.terminator.statement.ts\n                            ^^\n                            source.ts\n                              ^^\n                              source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                ^^^^^^^\n                                source.ts comment.line.double-slash.ts\n>getPropValue(obj, 'a.b.x');  // unknown\n ^^^^^^^^^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n             ^\n             source.ts meta.brace.round.ts\n              ^^^\n              source.ts variable.other.readwrite.ts\n                 ^\n                 source.ts punctuation.separator.comma.ts\n                  ^\n                  source.ts\n                   ^\n                   source.ts string.quoted.single.ts punctuation.definition.string.begin.ts\n                    ^^^^^\n                    source.ts string.quoted.single.ts\n                         ^\n                         source.ts string.quoted.single.ts punctuation.definition.string.end.ts\n                          ^\n                          source.ts meta.brace.round.ts\n                           ^\n                           source.ts punctuation.terminator.statement.ts\n                            ^^\n                            source.ts\n                              ^^\n                              source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                ^^^^^^^^\n                                source.ts comment.line.double-slash.ts\n>getPropValue(obj, s);  // unknown\n ^^^^^^^^^^^^\n source.ts meta.function-call.ts entity.name.function.ts\n             ^\n             source.ts meta.brace.round.ts\n              ^^^\n              source.ts variable.other.readwrite.ts\n                 ^\n                 source.ts punctuation.separator.comma.ts\n                  ^\n                  source.ts\n                   ^\n                   source.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.brace.round.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n                      ^^\n                      source.ts\n                        ^^\n                        source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                          ^^^^^^^^\n                          source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>\n ^\n source.ts\n>type Getters<T> = { [P in keyof T & string as `get${Capitalize<P>}`]: () => T[P] };\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n             ^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                ^\n                source.ts meta.type.declaration.ts\n                 ^\n                 source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                        ^^\n                        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                           ^^^^^\n                           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.keyof.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.type.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                     ^^^^^^\n                                     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts support.type.primitive.ts\n                                           ^\n                                           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                            ^^\n                                            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.control.as.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                                ^^^\n                                                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts\n                                                   ^^\n                                                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                     ^^^^^^^^^^\n                                                     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                                               ^\n                                                               source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                ^\n                                                                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts entity.name.type.ts\n                                                                 ^\n                                                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                  ^\n                                                                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                   ^\n                                                                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                                    ^\n                                                                    source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                                                                     ^\n                                                                     source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                      ^\n                                                                      source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                                                       ^\n                                                                       source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                                        ^\n                                                                        source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                         ^\n                                                                         source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                                                          ^^\n                                                                          source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                                            ^\n                                                                            source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.return.ts\n                                                                             ^\n                                                                             source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.return.ts entity.name.type.ts\n                                                                              ^\n                                                                              source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.return.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                               ^\n                                                                               source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.return.ts meta.type.tuple.ts entity.name.type.ts\n                                                                                ^\n                                                                                source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.return.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                                 ^\n                                                                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.function.return.ts\n                                                                                  ^\n                                                                                  source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                                                                                   ^\n                                                                                   source.ts punctuation.terminator.statement.ts\n>type T50 = Getters<{ foo: string, bar: number }>;  // { getFoo: () => string, getBar: () => number }\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts\n                      ^^^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                           ^^^^^^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts punctuation.separator.comma.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts\n                                   ^^^\n                                   source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                        ^^^^^^\n                                        source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts punctuation.definition.block.ts\n                                                ^\n                                                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                 ^\n                                                 source.ts punctuation.terminator.statement.ts\n                                                  ^^\n                                                  source.ts\n                                                    ^^\n                                                    source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                      source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>\n ^\n source.ts\n>type Methods<T> = { [P in keyof T as T[P] extends Function ? P : never]: T[P] };\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n             ^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                ^\n                source.ts meta.type.declaration.ts\n                 ^\n                 source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                        ^^\n                        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                           ^^^^^\n                           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.keyof.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                   ^^\n                                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.control.as.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.type.tuple.ts entity.name.type.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.type.tuple.ts meta.brace.square.ts\n                                          ^\n                                          source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                           ^^^^^^^\n                                           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts storage.modifier.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                                   ^^^^^^^^\n                                                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                                                           ^\n                                                           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                                            ^\n                                                            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.ternary.ts\n                                                             ^\n                                                             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                                              ^\n                                                              source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                                                               ^\n                                                               source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                                                ^\n                                                                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.ternary.ts\n                                                                 ^\n                                                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                                                  ^^^^^\n                                                                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts support.type.primitive.ts\n                                                                       ^\n                                                                       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                                                                        ^\n                                                                        source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                         ^\n                                                                         source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                                                          ^\n                                                                          source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                                                                           ^\n                                                                           source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                            ^\n                                                                            source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                                                                             ^\n                                                                             source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                              ^\n                                                                              source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                                                               ^\n                                                                               source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                                                                                ^\n                                                                                source.ts punctuation.terminator.statement.ts\n>type T60 = Methods<{ foo(): number, bar: boolean }>;  // { foo(): number }\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.method.declaration.ts\n                      ^^^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts\n                             ^^^^^^\n                             source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts punctuation.separator.comma.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts\n                                     ^^^\n                                     source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                        ^\n                                        source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                         ^\n                                         source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                          ^^^^^^^\n                                          source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts punctuation.definition.block.ts\n                                                   ^\n                                                   source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                    ^\n                                                    source.ts punctuation.terminator.statement.ts\n                                                     ^^\n                                                     source.ts\n                                                       ^^\n                                                       source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                         ^^^^^^^^^^^^^^^^^^\n                                                         source.ts comment.line.double-slash.ts\n>\n ^\n source.ts\n>type DoubleProp<T> = { [P in keyof T & string as `${P}1` | `${P}2`]: T[P] }\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                   ^\n                   source.ts meta.type.declaration.ts\n                    ^\n                    source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                     ^\n                     source.ts meta.type.declaration.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                           ^^\n                           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.in.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                              ^^^^^\n                              source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.expression.keyof.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts entity.name.type.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.type.ts\n                                       ^\n                                       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                        ^^^^^^\n                                        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts support.type.primitive.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                               ^^\n                                               source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.control.as.ts\n                                                 ^\n                                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                                  ^\n                                                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                                   ^^\n                                                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                     ^\n                                                     source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                                      ^\n                                                      source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                       ^\n                                                       source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts\n                                                        ^\n                                                        source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                         ^\n                                                         source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                                          ^\n                                                          source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts keyword.operator.type.ts\n                                                           ^\n                                                           source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts\n                                                            ^\n                                                            source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts punctuation.definition.string.template.begin.ts\n                                                             ^^\n                                                             source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts\n                                                               ^\n                                                               source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts entity.name.type.ts\n                                                                ^\n                                                                source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts\n                                                                 ^\n                                                                 source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts\n                                                                  ^\n                                                                  source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts string.template.ts punctuation.definition.string.template.end.ts\n                                                                   ^\n                                                                   source.ts meta.type.declaration.ts meta.object.type.ts meta.indexer.mappedtype.declaration.ts meta.brace.square.ts\n                                                                    ^\n                                                                    source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                     ^\n                                                                     source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                                                      ^\n                                                                      source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts entity.name.type.ts\n                                                                       ^\n                                                                       source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                        ^\n                                                                        source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts entity.name.type.ts\n                                                                         ^\n                                                                         source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                                          ^\n                                                                          source.ts meta.type.declaration.ts meta.object.type.ts meta.type.annotation.ts\n                                                                           ^\n                                                                           source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>type T70 = DoubleProp<{ a: string, b: number }>;  // { a1: string, a2: string, b1: number, b2: number }\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^^^^^^\n            source.ts meta.type.declaration.ts entity.name.type.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                            ^^^^^^\n                            source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts punctuation.separator.comma.ts\n                                   ^\n                                   source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts\n                                    ^\n                                    source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                       ^^^^^^\n                                       source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                             ^\n                                             source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                              ^\n                                              source.ts meta.type.declaration.ts meta.type.parameters.ts meta.object.type.ts punctuation.definition.block.ts\n                                               ^\n                                               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                ^\n                                                source.ts punctuation.terminator.statement.ts\n                                                 ^^\n                                                 source.ts\n                                                   ^^\n                                                   source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                                     source.ts comment.line.double-slash.ts"
  },
  {
    "path": "tests/baselines/typeofClass.baseline.txt",
    "content": "original file\n-----------------------------------\ntype TC1 = typeof class {\n    constructor(s: string);\n    static n: number;\n    s: string;\n};\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type TC1 = typeof class {\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts\n          ^\n          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^^^^^^\n            source.ts meta.type.declaration.ts keyword.operator.expression.typeof.ts\n                  ^\n                  source.ts meta.type.declaration.ts\n                   ^^^^^\n                   source.ts meta.type.declaration.ts meta.class.ts storage.type.class.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.class.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.class.ts punctuation.definition.block.ts\n>    constructor(s: string);\n ^^^^\n source.ts meta.type.declaration.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^^^^^\n     source.ts meta.type.declaration.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n                ^\n                source.ts meta.type.declaration.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                    ^^^^^^\n                    source.ts meta.type.declaration.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.class.ts punctuation.terminator.statement.ts\n>    static n: number;\n ^^^^\n source.ts meta.type.declaration.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.type.declaration.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.type.declaration.ts meta.class.ts meta.field.declaration.ts\n            ^\n            source.ts meta.type.declaration.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n             ^\n             source.ts meta.type.declaration.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n              ^\n              source.ts meta.type.declaration.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n               ^^^^^^\n               source.ts meta.type.declaration.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                     ^\n                     source.ts meta.type.declaration.ts meta.class.ts punctuation.terminator.statement.ts\n>    s: string;\n ^^^^\n source.ts meta.type.declaration.ts meta.class.ts meta.field.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.type.declaration.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.type.declaration.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^^^^^^\n        source.ts meta.type.declaration.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n              ^\n              source.ts meta.type.declaration.ts meta.class.ts punctuation.terminator.statement.ts\n>};\n ^\n source.ts meta.type.declaration.ts meta.class.ts punctuation.definition.block.ts\n  ^\n  source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/typeparameterDefault.baseline.txt",
    "content": "original file\n-----------------------------------\ninterface PromiseLike<T> { \n    /** \n      * Attaches callbacks for the resolution and/or rejection of the Promise. \n      * @param onfulfilled The callback to execute when the Promise is resolved. \n      * @param onrejected The callback to execute when the Promise is rejected.  \n      * @returns A Promise for the completion of which ever callback is executed.  \n      */\n    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2>;  \n}  \n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>interface PromiseLike<T> { \n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^^^^^^^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n                      ^\n                      source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                       ^\n                       source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                        ^\n                        source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                         ^\n                         source.ts meta.interface.ts\n                          ^\n                          source.ts meta.interface.ts punctuation.definition.block.ts\n                           ^^\n                           source.ts meta.interface.ts\n>    /** \n ^^^^\n source.ts meta.interface.ts\n     ^^^\n     source.ts meta.interface.ts comment.block.documentation.ts punctuation.definition.comment.ts\n        ^^\n        source.ts meta.interface.ts comment.block.documentation.ts\n>      * Attaches callbacks for the resolution and/or rejection of the Promise. \n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n source.ts meta.interface.ts comment.block.documentation.ts\n>      * @param onfulfilled The callback to execute when the Promise is resolved. \n ^^^^^^^^\n source.ts meta.interface.ts comment.block.documentation.ts\n         ^\n         source.ts meta.interface.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n          ^^^^^\n          source.ts meta.interface.ts comment.block.documentation.ts storage.type.class.jsdoc\n               ^\n               source.ts meta.interface.ts comment.block.documentation.ts\n                ^^^^^^^^^^^\n                source.ts meta.interface.ts comment.block.documentation.ts variable.other.jsdoc\n                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                           source.ts meta.interface.ts comment.block.documentation.ts\n>      * @param onrejected The callback to execute when the Promise is rejected.  \n ^^^^^^^^\n source.ts meta.interface.ts comment.block.documentation.ts\n         ^\n         source.ts meta.interface.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n          ^^^^^\n          source.ts meta.interface.ts comment.block.documentation.ts storage.type.class.jsdoc\n               ^\n               source.ts meta.interface.ts comment.block.documentation.ts\n                ^^^^^^^^^^\n                source.ts meta.interface.ts comment.block.documentation.ts variable.other.jsdoc\n                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                          source.ts meta.interface.ts comment.block.documentation.ts\n>      * @returns A Promise for the completion of which ever callback is executed.  \n ^^^^^^^^\n source.ts meta.interface.ts comment.block.documentation.ts\n         ^\n         source.ts meta.interface.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc\n          ^^^^^^^\n          source.ts meta.interface.ts comment.block.documentation.ts storage.type.class.jsdoc\n                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n                 source.ts meta.interface.ts comment.block.documentation.ts\n>      */\n ^^^^^^\n source.ts meta.interface.ts comment.block.documentation.ts\n       ^^\n       source.ts meta.interface.ts comment.block.documentation.ts punctuation.definition.comment.ts\n>    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2>;  \n ^^^^\n source.ts meta.interface.ts meta.method.declaration.ts\n     ^^^^\n     source.ts meta.interface.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n         ^\n         source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n          ^^^^^^^^\n          source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                  ^\n                  source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts\n                   ^\n                   source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts keyword.operator.assignment.ts\n                    ^\n                    source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts\n                     ^\n                     source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                      ^\n                      source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                       ^\n                       source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts\n                        ^^^^^^^^\n                        source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                                ^\n                                source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts\n                                 ^\n                                 source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts keyword.operator.assignment.ts\n                                  ^\n                                  source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts\n                                   ^^^^^\n                                   source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts support.type.primitive.ts\n                                        ^\n                                        source.ts meta.interface.ts meta.method.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                         ^\n                                         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                          ^^^^^^^^^^^\n                                          source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                                     ^\n                                                     source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts keyword.operator.optional.ts\n                                                      ^\n                                                      source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                       ^\n                                                       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                        ^\n                                                        source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                         ^\n                                                         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                          ^^^^^\n                                                          source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                                               ^\n                                                               source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                ^\n                                                                source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                                 ^\n                                                                 source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                                                  ^\n                                                                  source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                   ^\n                                                                   source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts\n                                                                    ^^\n                                                                    source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                                      ^\n                                                                      source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                                                       ^^^^^^^^\n                                                                       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts entity.name.type.ts\n                                                                               ^\n                                                                               source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                                                                ^\n                                                                                source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts keyword.operator.type.ts\n                                                                                 ^\n                                                                                 source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                                                                  ^^^^^^^^^^^\n                                                                                  source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts entity.name.type.ts\n                                                                                             ^\n                                                                                             source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                                              ^^^^^^^^\n                                                                                              source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts meta.type.parameters.ts entity.name.type.ts\n                                                                                                      ^\n                                                                                                      source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                                                       ^\n                                                                                                       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                                                                        ^\n                                                                                                        source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                                                                         ^\n                                                                                                         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n                                                                                                          ^\n                                                                                                          source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                                                                           ^^^^^^^^^\n                                                                                                           source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.builtin.ts\n                                                                                                                    ^\n                                                                                                                    source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                                                                                     ^\n                                                                                                                     source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n                                                                                                                      ^\n                                                                                                                      source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                                                                                       ^^^^\n                                                                                                                       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.builtin.ts\n                                                                                                                           ^\n                                                                                                                           source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts\n                                                                                                                            ^\n                                                                                                                            source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts\n                                                                                                                             ^^^^^^^^^^\n                                                                                                                             source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                                                                                                                       ^\n                                                                                                                                       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts keyword.operator.optional.ts\n                                                                                                                                        ^\n                                                                                                                                        source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                                                                                         ^\n                                                                                                                                         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                                                                                                          ^\n                                                                                                                                          source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                                                                                                           ^\n                                                                                                                                           source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                                                                                                                            ^^^^^^\n                                                                                                                                            source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                                                                                                                                                  ^\n                                                                                                                                                  source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                                                                                                                                   ^\n                                                                                                                                                   source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                                                                                                                                    ^^^\n                                                                                                                                                    source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts\n                                                                                                                                                       ^\n                                                                                                                                                       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                                                                                                        ^\n                                                                                                                                                        source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts\n                                                                                                                                                         ^^\n                                                                                                                                                         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                                                                                                                                           ^\n                                                                                                                                                           source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                                                                                                                                            ^^^^^^^^\n                                                                                                                                                            source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts entity.name.type.ts\n                                                                                                                                                                    ^\n                                                                                                                                                                    source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                                                                                                                                                     ^\n                                                                                                                                                                     source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts keyword.operator.type.ts\n                                                                                                                                                                      ^\n                                                                                                                                                                      source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts\n                                                                                                                                                                       ^^^^^^^^^^^\n                                                                                                                                                                       source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts entity.name.type.ts\n                                                                                                                                                                                  ^\n                                                                                                                                                                                  source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                                                                                                                                   ^^^^^^^^\n                                                                                                                                                                                   source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts meta.type.parameters.ts entity.name.type.ts\n                                                                                                                                                                                           ^\n                                                                                                                                                                                           source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.type.function.return.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                                                                                                                                            ^\n                                                                                                                                                                                            source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts meta.type.paren.cover.ts meta.brace.round.ts\n                                                                                                                                                                                             ^\n                                                                                                                                                                                             source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                                                                                                                                                              ^\n                                                                                                                                                                                              source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n                                                                                                                                                                                               ^\n                                                                                                                                                                                               source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                                                                                                                                                                ^^^^^^^^^\n                                                                                                                                                                                                source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.builtin.ts\n                                                                                                                                                                                                         ^\n                                                                                                                                                                                                         source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                                                                                                                                                                          ^\n                                                                                                                                                                                                          source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.ts\n                                                                                                                                                                                                           ^\n                                                                                                                                                                                                           source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts\n                                                                                                                                                                                                            ^^^^\n                                                                                                                                                                                                            source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.builtin.ts\n                                                                                                                                                                                                                ^\n                                                                                                                                                                                                                source.ts meta.interface.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                                                                                                                                                                                                 ^\n                                                                                                                                                                                                                 source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts\n                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                  source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts\n                                                                                                                                                                                                                   ^^^^^^^^^^^\n                                                                                                                                                                                                                   source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts entity.name.type.ts\n                                                                                                                                                                                                                              ^\n                                                                                                                                                                                                                              source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                                                                                                                                                                                                                               ^^^^^^^^\n                                                                                                                                                                                                                               source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts entity.name.type.ts\n                                                                                                                                                                                                                                       ^\n                                                                                                                                                                                                                                       source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts\n                                                                                                                                                                                                                                        ^\n                                                                                                                                                                                                                                        source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts keyword.operator.type.ts\n                                                                                                                                                                                                                                         ^\n                                                                                                                                                                                                                                         source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts\n                                                                                                                                                                                                                                          ^^^^^^^^\n                                                                                                                                                                                                                                          source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts entity.name.type.ts\n                                                                                                                                                                                                                                                  ^\n                                                                                                                                                                                                                                                  source.ts meta.interface.ts meta.method.declaration.ts meta.return.type.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                                                                                                                                                                                                                                                   ^\n                                                                                                                                                                                                                                                   source.ts meta.interface.ts punctuation.terminator.statement.ts\n                                                                                                                                                                                                                                                    ^^^\n                                                                                                                                                                                                                                                    source.ts meta.interface.ts\n>}  \n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n  ^^^\n  source.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/using.baseline.txt",
    "content": "original file\n-----------------------------------\n// using as identifier\nusing;\nusing = a;\nusing[x];\nusing[x] = a;\nusing.x;\nusing.x = a;\n[using];\n[using] = a;\n({using});\n({using} = a);\n({using: x});\n({using: x} = a);\n({x: using});\n({x: using} = a);\na = using;\na = using[x];\na = [using];\na = {using};\na = {using: x};\na = {x: using};\nvar using;\nvar using = a;\nvar [using];\nvar [using] = a;\nlet using;\nlet using = a;\nlet [using];\nlet [using] = a;\nconst using;\nconst using = a;\nconst [using];\nconst [using] = a;\nfunction using() {}\nfunction f(using) {}\nfunction f(using = a) {}\nfunction f(using[x]) {}\nfunction f(using[x] = a) {}\nfunction f(a = using) {}\nusing => {};\n(using) => {};\n([using]) => {};\n({using}) => {};\n({using: x}) => {};\n({x: using}) => {};\n() => using;\nasync using => {};\nasync (using) => {};\nclass using {}\nclass C extends using {}\nclass C<using> {}\nclass C { using; }\nclass C { static using; }\nclass C { readonly using; }\nclass C { declare using; }\nclass C { abstract using; }\nclass C { accessor using; }\nclass C { static accessor using; }\nclass C { readonly accessor using; }\nclass C { using() {} }\nclass C { static using() {} }\nclass C { abstract using() }\nclass C { get using() {} }\nclass C { static get using() {} }\nclass C { abstract get using(); }\nclass C { set using() {} }\nclass C { static set using(v) {} }\nclass C { abstract set using(v); }\nclass C { [using]; }\nclass C { static [using]; }\nclass C { readonly [using]; }\nclass C { declare [using]; }\nclass C { abstract [using]; }\nclass C { accessor [using]; }\nclass C { static accessor [using]; }\nclass C { readonly accessor [using]; }\nclass C { [using]() {} }\nclass C { static [using]() {} }\nclass C { abstract [using]() }\nclass C { get [using]() {} }\nclass C { static get [using]() {} }\nclass C { abstract get [using](); }\nclass C { set [using]() {} }\nclass C { static set [using](v) {} }\nclass C { abstract set [using](v); }\nnamespace using {}\nnamespace using.x {}\ninterface using {}\ninterface I { [using: string]: using; }\ntype using = never;\ntype X<using> = never;\nenum using {}\nenum E { using };\nenum E { a = using };\nusing: {};\nbreak using;\ncontinue using;\nswitch (using) {\n    case using:\n}\nexport { using };\nexport { using as x };\nexport { x as using };\nimport using from \"\";\nimport * as using from \"\";\nimport { using } from \"\";\nimport { using as x } from \"\";\nimport { x as using } from \"\";\nfor (using;;);\nfor (using = a;;);\nfor (using[x];;);\nfor (using[x] = a;;);\nfor (using in a);\nfor (using of a);\n\nusing\nx = a;\n\nusing\n[x] = a;\n\n// using as keyword\nusing x = a;\nusing x = a, y = b;\n\nusing x\n= a;\n\nusing x\n= a, y = b;\n\nusing x = a\n    , y = b;\n\nusing x = a,\n      y = b;\n\nfor (using x of a);\nfor (using x = a;;);\nfor (using x = a, y = b;;);\n\nfor (using x\n= a;;);\n\nfor (using x\n= a, y = b;;);\n\nfor (using x = a\n         , y = b;;);\n\nfor (using x = a,\n           y = b;;);\n\nfunction f() {\n    using x = a;\n}\n\n(() => {\n    using x = a;\n})\n\nnamespace N {\n    using x = a;\n}\n\nclass C {\n    constructor() {\n        using x = a;\n    }\n    method() {\n        using x = a;\n    }\n    get p() {\n        using x = a;\n    }\n    set p(v) {\n        using x = a;\n    }\n    static {\n        using x = a;\n    }\n}\n\n// using as identifier, illegal syntax\nusing {x};\nusing {x: y};\n\n// using as keyword, illegal syntax\nusing x;\nusing x, y;\nusing x, [y];\nusing x, {y};\nusing x, {y: z};\nusing x = a, y;\nusing x = a, [y];\nusing x = a, {y};\nusing x = a, {y: z};\ndeclare using x;\ndeclare using x = a;\nexport using x;\nexport using x = a;\n\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// using as identifier\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>using;\n ^^^^^\n source.ts variable.other.readwrite.ts\n      ^\n      source.ts punctuation.terminator.statement.ts\n>using = a;\n ^^^^^\n source.ts variable.other.readwrite.ts\n      ^\n      source.ts\n       ^\n       source.ts keyword.operator.assignment.ts\n        ^\n        source.ts\n         ^\n         source.ts variable.other.readwrite.ts\n          ^\n          source.ts punctuation.terminator.statement.ts\n>using[x];\n ^^^^^\n source.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.array.literal.ts meta.brace.square.ts\n       ^\n       source.ts meta.array.literal.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.array.literal.ts meta.brace.square.ts\n         ^\n         source.ts punctuation.terminator.statement.ts\n>using[x] = a;\n ^^^^^\n source.ts variable.other.readwrite.ts\n      ^\n      source.ts meta.array.literal.ts meta.brace.square.ts\n       ^\n       source.ts meta.array.literal.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.array.literal.ts meta.brace.square.ts\n         ^\n         source.ts\n          ^\n          source.ts keyword.operator.assignment.ts\n           ^\n           source.ts\n            ^\n            source.ts variable.other.readwrite.ts\n             ^\n             source.ts punctuation.terminator.statement.ts\n>using.x;\n ^^^^^\n source.ts variable.other.object.ts\n      ^\n      source.ts punctuation.accessor.ts\n       ^\n       source.ts support.variable.property.dom.ts\n        ^\n        source.ts punctuation.terminator.statement.ts\n>using.x = a;\n ^^^^^\n source.ts variable.other.object.ts\n      ^\n      source.ts punctuation.accessor.ts\n       ^\n       source.ts support.variable.property.dom.ts\n        ^\n        source.ts\n         ^\n         source.ts keyword.operator.assignment.ts\n          ^\n          source.ts\n           ^\n           source.ts variable.other.readwrite.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>[using];\n ^\n source.ts meta.array.literal.ts meta.brace.square.ts\n  ^^^^^\n  source.ts meta.array.literal.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.array.literal.ts meta.brace.square.ts\n        ^\n        source.ts punctuation.terminator.statement.ts\n>[using] = a;\n ^\n source.ts meta.array.literal.ts meta.brace.square.ts\n  ^^^^^\n  source.ts meta.array.literal.ts variable.other.readwrite.ts\n       ^\n       source.ts meta.array.literal.ts meta.brace.square.ts\n        ^\n        source.ts\n         ^\n         source.ts keyword.operator.assignment.ts\n          ^\n          source.ts\n           ^\n           source.ts variable.other.readwrite.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>({using});\n ^\n source.ts meta.brace.round.ts\n  ^\n  source.ts meta.objectliteral.ts punctuation.definition.block.ts\n   ^^^^^\n   source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.objectliteral.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.brace.round.ts\n          ^\n          source.ts punctuation.terminator.statement.ts\n>({using} = a);\n ^\n source.ts meta.brace.round.ts\n  ^\n  source.ts meta.objectliteral.ts punctuation.definition.block.ts\n   ^^^^^\n   source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n        ^\n        source.ts meta.objectliteral.ts punctuation.definition.block.ts\n         ^\n         source.ts\n          ^\n          source.ts keyword.operator.assignment.ts\n           ^\n           source.ts\n            ^\n            source.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.brace.round.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>({using: x});\n ^\n source.ts meta.brace.round.ts\n  ^\n  source.ts meta.objectliteral.ts punctuation.definition.block.ts\n   ^^^^^\n   source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n        ^\n        source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n         ^\n         source.ts meta.objectliteral.ts meta.object.member.ts\n          ^\n          source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.objectliteral.ts punctuation.definition.block.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts punctuation.terminator.statement.ts\n>({using: x} = a);\n ^\n source.ts meta.brace.round.ts\n  ^\n  source.ts meta.objectliteral.ts punctuation.definition.block.ts\n   ^^^^^\n   source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n        ^\n        source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n         ^\n         source.ts meta.objectliteral.ts meta.object.member.ts\n          ^\n          source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.objectliteral.ts punctuation.definition.block.ts\n            ^\n            source.ts\n             ^\n             source.ts keyword.operator.assignment.ts\n              ^\n              source.ts\n               ^\n               source.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.brace.round.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n>({x: using});\n ^\n source.ts meta.brace.round.ts\n  ^\n  source.ts meta.objectliteral.ts punctuation.definition.block.ts\n   ^\n   source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n    ^\n    source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n     ^\n     source.ts meta.objectliteral.ts meta.object.member.ts\n      ^^^^^\n      source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.objectliteral.ts punctuation.definition.block.ts\n            ^\n            source.ts meta.brace.round.ts\n             ^\n             source.ts punctuation.terminator.statement.ts\n>({x: using} = a);\n ^\n source.ts meta.brace.round.ts\n  ^\n  source.ts meta.objectliteral.ts punctuation.definition.block.ts\n   ^\n   source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n    ^\n    source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n     ^\n     source.ts meta.objectliteral.ts meta.object.member.ts\n      ^^^^^\n      source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.objectliteral.ts punctuation.definition.block.ts\n            ^\n            source.ts\n             ^\n             source.ts keyword.operator.assignment.ts\n              ^\n              source.ts\n               ^\n               source.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.brace.round.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n>a = using;\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts\n     ^^^^^\n     source.ts variable.other.readwrite.ts\n          ^\n          source.ts punctuation.terminator.statement.ts\n>a = using[x];\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts\n     ^^^^^\n     source.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.array.literal.ts meta.brace.square.ts\n           ^\n           source.ts meta.array.literal.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.array.literal.ts meta.brace.square.ts\n             ^\n             source.ts punctuation.terminator.statement.ts\n>a = [using];\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts meta.array.literal.ts\n     ^\n     source.ts meta.array.literal.ts meta.brace.square.ts\n      ^^^^^\n      source.ts meta.array.literal.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.array.literal.ts meta.brace.square.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>a = {using};\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts meta.objectliteral.ts\n     ^\n     source.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^^^^^\n      source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.objectliteral.ts punctuation.definition.block.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>a = {using: x};\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts meta.objectliteral.ts\n     ^\n     source.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^^^^^\n      source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n           ^\n           source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n            ^\n            source.ts meta.objectliteral.ts meta.object.member.ts\n             ^\n             source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.objectliteral.ts punctuation.definition.block.ts\n               ^\n               source.ts punctuation.terminator.statement.ts\n>a = {x: using};\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts meta.objectliteral.ts\n     ^\n     source.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n       ^\n       source.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n        ^\n        source.ts meta.objectliteral.ts meta.object.member.ts\n         ^^^^^\n         source.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts\n              ^\n              source.ts meta.objectliteral.ts punctuation.definition.block.ts\n               ^\n               source.ts punctuation.terminator.statement.ts\n>var using;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts punctuation.terminator.statement.ts\n>var using = a;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts variable.other.readwrite.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>var [using];\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n      ^^^^^\n      source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>var [using] = a;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n      ^^^^^\n      source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n            ^\n            source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts variable.other.readwrite.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>let using;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts punctuation.terminator.statement.ts\n>let using = a;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^^^\n     source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n           ^\n           source.ts meta.var.expr.ts keyword.operator.assignment.ts\n            ^\n            source.ts meta.var.expr.ts\n             ^\n             source.ts meta.var.expr.ts variable.other.readwrite.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>let [using];\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n      ^^^^^\n      source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>let [using] = a;\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n      ^^^^^\n      source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n            ^\n            source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts variable.other.readwrite.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>const using;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>const using = a;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^^^^^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts variable.other.readwrite.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>const [using];\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n        ^^^^^\n        source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.constant.ts\n             ^\n             source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>const [using] = a;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n        ^^^^^\n        source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.constant.ts\n             ^\n             source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n              ^\n              source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n               ^\n               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.var.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts variable.other.readwrite.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n>function using() {}\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                ^\n                source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                 ^\n                 source.ts meta.function.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>function f(using) {}\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^^^^^\n            source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts meta.function.ts\n                   ^\n                   source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>function f(using = a) {}\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^^^^^\n            source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts keyword.operator.assignment.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                      ^\n                      source.ts meta.function.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>function f(using[x]) {}\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^^^^^\n            source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts variable.parameter.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                     ^\n                     source.ts meta.function.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>function f(using[x] = a) {}\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^^^^^\n            source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n                 ^\n                 source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                  ^\n                  source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts variable.parameter.ts\n                   ^\n                   source.ts meta.function.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n                    ^\n                    source.ts meta.function.ts meta.parameters.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.function.ts meta.parameters.ts\n                       ^\n                       source.ts meta.function.ts meta.parameters.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                         ^\n                         source.ts meta.function.ts\n                          ^\n                          source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                           ^\n                           source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>function f(a = using) {}\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts variable.parameter.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.function.ts meta.parameters.ts\n                ^^^^^\n                source.ts meta.function.ts meta.parameters.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                      ^\n                      source.ts meta.function.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>using => {};\n ^^^^^\n source.ts meta.arrow.ts variable.parameter.ts\n      ^\n      source.ts meta.arrow.ts\n       ^^\n       source.ts meta.arrow.ts storage.type.function.arrow.ts\n         ^\n         source.ts meta.arrow.ts\n          ^\n          source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n           ^\n           source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>(using) => {};\n ^\n source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n  ^^^^^\n  source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n       ^\n       source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n        ^\n        source.ts meta.arrow.ts\n         ^^\n         source.ts meta.arrow.ts storage.type.function.arrow.ts\n           ^\n           source.ts meta.arrow.ts\n            ^\n            source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n             ^\n             source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>([using]) => {};\n ^\n source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n  ^\n  source.ts meta.arrow.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n   ^^^^^\n   source.ts meta.arrow.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts variable.parameter.ts\n        ^\n        source.ts meta.arrow.ts meta.parameters.ts meta.paramter.array-binding-pattern.ts punctuation.definition.binding-pattern.array.ts\n         ^\n         source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n          ^\n          source.ts meta.arrow.ts\n           ^^\n           source.ts meta.arrow.ts storage.type.function.arrow.ts\n             ^\n             source.ts meta.arrow.ts\n              ^\n              source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n               ^\n               source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>({using}) => {};\n ^\n source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n  ^\n  source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n   ^^^^^\n   source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n        ^\n        source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n         ^\n         source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n          ^\n          source.ts meta.arrow.ts\n           ^^\n           source.ts meta.arrow.ts storage.type.function.arrow.ts\n             ^\n             source.ts meta.arrow.ts\n              ^\n              source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n               ^\n               source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>({using: x}) => {};\n ^\n source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n  ^\n  source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n   ^^^^^\n   source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n        ^\n        source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n         ^\n         source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n          ^\n          source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n           ^\n           source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n            ^\n            source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.arrow.ts\n              ^^\n              source.ts meta.arrow.ts storage.type.function.arrow.ts\n                ^\n                source.ts meta.arrow.ts\n                 ^\n                 source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>({x: using}) => {};\n ^\n source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n  ^\n  source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n   ^\n   source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts\n    ^\n    source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts\n     ^\n     source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts\n      ^^^^^\n      source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts variable.parameter.ts\n           ^\n           source.ts meta.arrow.ts meta.parameters.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts\n            ^\n            source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.arrow.ts\n              ^^\n              source.ts meta.arrow.ts storage.type.function.arrow.ts\n                ^\n                source.ts meta.arrow.ts\n                 ^\n                 source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>() => using;\n ^\n source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n  ^\n  source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n   ^\n   source.ts meta.arrow.ts\n    ^^\n    source.ts meta.arrow.ts storage.type.function.arrow.ts\n      ^\n      source.ts meta.arrow.ts\n       ^^^^^\n       source.ts variable.other.readwrite.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>async using => {};\n ^^^^^\n source.ts meta.arrow.ts storage.modifier.async.ts\n      ^\n      source.ts meta.arrow.ts\n       ^^^^^\n       source.ts meta.arrow.ts variable.parameter.ts\n            ^\n            source.ts meta.arrow.ts\n             ^^\n             source.ts meta.arrow.ts storage.type.function.arrow.ts\n               ^\n               source.ts meta.arrow.ts\n                ^\n                source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                 ^\n                 source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n>async (using) => {};\n ^^^^^\n source.ts meta.arrow.ts storage.modifier.async.ts\n      ^\n      source.ts meta.arrow.ts\n       ^\n       source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n        ^^^^^\n        source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts\n             ^\n             source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n              ^\n              source.ts meta.arrow.ts\n               ^^\n               source.ts meta.arrow.ts storage.type.function.arrow.ts\n                 ^\n                 source.ts meta.arrow.ts\n                  ^\n                  source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                   ^\n                   source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n>class using {}\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^^^^^\n       source.ts meta.class.ts entity.name.type.class.ts\n            ^\n            source.ts meta.class.ts\n             ^\n             source.ts meta.class.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.class.ts punctuation.definition.block.ts\n>class C extends using {}\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^^^^^^^\n         source.ts meta.class.ts storage.modifier.ts\n                ^\n                source.ts meta.class.ts\n                 ^^^^^\n                 source.ts meta.class.ts entity.other.inherited-class.ts\n                      ^\n                      source.ts meta.class.ts\n                       ^\n                       source.ts meta.class.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.class.ts punctuation.definition.block.ts\n>class C<using> {}\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n         ^^^^^\n         source.ts meta.class.ts meta.type.parameters.ts entity.name.type.ts\n              ^\n              source.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n               ^\n               source.ts meta.class.ts\n                ^\n                source.ts meta.class.ts punctuation.definition.block.ts\n                 ^\n                 source.ts meta.class.ts punctuation.definition.block.ts\n>class C { using; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts\n           ^^^^^\n           source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                ^\n                source.ts meta.class.ts punctuation.terminator.statement.ts\n                 ^\n                 source.ts meta.class.ts\n                  ^\n                  source.ts meta.class.ts punctuation.definition.block.ts\n>class C { static using; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts\n                  ^^^^^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                       ^\n                       source.ts meta.class.ts punctuation.terminator.statement.ts\n                        ^\n                        source.ts meta.class.ts\n                         ^\n                         source.ts meta.class.ts punctuation.definition.block.ts\n>class C { readonly using; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts meta.field.declaration.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts\n                    ^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                         ^\n                         source.ts meta.class.ts punctuation.terminator.statement.ts\n                          ^\n                          source.ts meta.class.ts\n                           ^\n                           source.ts meta.class.ts punctuation.definition.block.ts\n>class C { declare using; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts\n                   ^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                        ^\n                        source.ts meta.class.ts punctuation.terminator.statement.ts\n                         ^\n                         source.ts meta.class.ts\n                          ^\n                          source.ts meta.class.ts punctuation.definition.block.ts\n>class C { abstract using; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts\n                    ^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                         ^\n                         source.ts meta.class.ts punctuation.terminator.statement.ts\n                          ^\n                          source.ts meta.class.ts\n                           ^\n                           source.ts meta.class.ts punctuation.definition.block.ts\n>class C { accessor using; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts storage.type.property.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts\n                    ^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                         ^\n                         source.ts meta.class.ts punctuation.terminator.statement.ts\n                          ^\n                          source.ts meta.class.ts\n                           ^\n                           source.ts meta.class.ts punctuation.definition.block.ts\n>class C { static accessor using; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                 ^\n                 source.ts meta.class.ts\n                  ^^^^^^^^\n                  source.ts meta.class.ts storage.type.property.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts\n                           ^^^^^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                ^\n                                source.ts meta.class.ts punctuation.terminator.statement.ts\n                                 ^\n                                 source.ts meta.class.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.definition.block.ts\n>class C { readonly accessor using; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts\n                    ^^^^^^^^\n                    source.ts meta.class.ts storage.type.property.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts\n                             ^^^^^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.terminator.statement.ts\n                                   ^\n                                   source.ts meta.class.ts\n                                    ^\n                                    source.ts meta.class.ts punctuation.definition.block.ts\n>class C { using() {} }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts\n           ^^^^^\n           source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                     ^\n                     source.ts meta.class.ts\n                      ^\n                      source.ts meta.class.ts punctuation.definition.block.ts\n>class C { static using() {} }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                 ^\n                 source.ts meta.class.ts\n                  ^^^^^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                            ^\n                            source.ts meta.class.ts\n                             ^\n                             source.ts meta.class.ts punctuation.definition.block.ts\n>class C { abstract using() }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts\n                    ^^^^^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts\n                            ^\n                            source.ts meta.class.ts punctuation.definition.block.ts\n>class C { get using() {} }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^\n           source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts\n               ^^^^^\n               source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                         ^\n                         source.ts meta.class.ts\n                          ^\n                          source.ts meta.class.ts punctuation.definition.block.ts\n>class C { static get using() {} }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                 ^\n                 source.ts meta.class.ts\n                  ^^^\n                  source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts\n                      ^^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                ^\n                                source.ts meta.class.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.definition.block.ts\n>class C { abstract get using(); }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts\n                    ^^^\n                    source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts\n                        ^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                               ^\n                               source.ts meta.class.ts punctuation.terminator.statement.ts\n                                ^\n                                source.ts meta.class.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.definition.block.ts\n>class C { set using() {} }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^\n           source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts\n               ^^^^^\n               source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                         ^\n                         source.ts meta.class.ts\n                          ^\n                          source.ts meta.class.ts punctuation.definition.block.ts\n>class C { static set using(v) {} }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                 ^\n                 source.ts meta.class.ts\n                  ^^^\n                  source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts\n                      ^^^^^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                 ^\n                                 source.ts meta.class.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.definition.block.ts\n>class C { abstract set using(v); }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts\n                    ^^^\n                    source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts\n                        ^^^^^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                ^\n                                source.ts meta.class.ts punctuation.terminator.statement.ts\n                                 ^\n                                 source.ts meta.class.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.definition.block.ts\n>class C { [using]; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n           ^\n           source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n            ^^^^^\n            source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                  ^\n                  source.ts meta.class.ts punctuation.terminator.statement.ts\n                   ^\n                   source.ts meta.class.ts\n                    ^\n                    source.ts meta.class.ts punctuation.definition.block.ts\n>class C { static [using]; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                 ^\n                 source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                   ^^^^^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                         ^\n                         source.ts meta.class.ts punctuation.terminator.statement.ts\n                          ^\n                          source.ts meta.class.ts\n                           ^\n                           source.ts meta.class.ts punctuation.definition.block.ts\n>class C { readonly [using]; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts meta.field.declaration.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                     ^^^^^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                           ^\n                           source.ts meta.class.ts punctuation.terminator.statement.ts\n                            ^\n                            source.ts meta.class.ts\n                             ^\n                             source.ts meta.class.ts punctuation.definition.block.ts\n>class C { declare [using]; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                  ^\n                  source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                    ^^^^^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                         ^\n                         source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                          ^\n                          source.ts meta.class.ts punctuation.terminator.statement.ts\n                           ^\n                           source.ts meta.class.ts\n                            ^\n                            source.ts meta.class.ts punctuation.definition.block.ts\n>class C { abstract [using]; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                     ^^^^^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                           ^\n                           source.ts meta.class.ts punctuation.terminator.statement.ts\n                            ^\n                            source.ts meta.class.ts\n                             ^\n                             source.ts meta.class.ts punctuation.definition.block.ts\n>class C { accessor [using]; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts storage.type.property.ts\n                   ^\n                   source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                    ^\n                    source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                     ^^^^^\n                     source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                           ^\n                           source.ts meta.class.ts punctuation.terminator.statement.ts\n                            ^\n                            source.ts meta.class.ts\n                             ^\n                             source.ts meta.class.ts punctuation.definition.block.ts\n>class C { static accessor [using]; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                 ^\n                 source.ts meta.class.ts\n                  ^^^^^^^^\n                  source.ts meta.class.ts storage.type.property.ts\n                          ^\n                          source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                           ^\n                           source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                            ^^^^^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                                 ^\n                                 source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.terminator.statement.ts\n                                   ^\n                                   source.ts meta.class.ts\n                                    ^\n                                    source.ts meta.class.ts punctuation.definition.block.ts\n>class C { readonly accessor [using]; }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts\n                    ^^^^^^^^\n                    source.ts meta.class.ts storage.type.property.ts\n                            ^\n                            source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts\n                             ^\n                             source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                              ^^^^^\n                              source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                                   ^\n                                   source.ts meta.class.ts meta.field.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                                    ^\n                                    source.ts meta.class.ts punctuation.terminator.statement.ts\n                                     ^\n                                     source.ts meta.class.ts\n                                      ^\n                                      source.ts meta.class.ts punctuation.definition.block.ts\n>class C { [using]() {} }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n            ^^^^^\n            source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.class.ts\n                        ^\n                        source.ts meta.class.ts punctuation.definition.block.ts\n>class C { static [using]() {} }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                 ^\n                 source.ts meta.class.ts meta.array.literal.ts\n                  ^\n                  source.ts meta.class.ts meta.array.literal.ts meta.brace.square.ts\n                   ^^^^^\n                   source.ts meta.class.ts meta.array.literal.ts variable.other.readwrite.ts\n                        ^\n                        source.ts meta.class.ts meta.array.literal.ts meta.brace.square.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                              ^\n                              source.ts meta.class.ts\n                               ^\n                               source.ts meta.class.ts punctuation.definition.block.ts\n>class C { abstract [using]() }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                     ^^^^^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                           ^\n                           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts\n                              ^\n                              source.ts meta.class.ts punctuation.definition.block.ts\n>class C { get [using]() {} }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^\n           source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                ^^^^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                           ^\n                           source.ts meta.class.ts\n                            ^\n                            source.ts meta.class.ts punctuation.definition.block.ts\n>class C { static get [using]() {} }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                 ^\n                 source.ts meta.class.ts\n                  ^^^\n                  source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                       ^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                  ^\n                                  source.ts meta.class.ts\n                                   ^\n                                   source.ts meta.class.ts punctuation.definition.block.ts\n>class C { abstract get [using](); }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts\n                    ^^^\n                    source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                         ^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                 ^\n                                 source.ts meta.class.ts punctuation.terminator.statement.ts\n                                  ^\n                                  source.ts meta.class.ts\n                                   ^\n                                   source.ts meta.class.ts punctuation.definition.block.ts\n>class C { set [using]() {} }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^\n           source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                ^^^^^\n                source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts\n                         ^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                          ^\n                          source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                           ^\n                           source.ts meta.class.ts\n                            ^\n                            source.ts meta.class.ts punctuation.definition.block.ts\n>class C { static set [using](v) {} }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^\n           source.ts meta.class.ts storage.modifier.ts\n                 ^\n                 source.ts meta.class.ts\n                  ^^^\n                  source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n                     ^\n                     source.ts meta.class.ts meta.method.declaration.ts\n                      ^\n                      source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                       ^^^^^\n                       source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                            ^\n                            source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                             ^\n                             source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                  ^\n                                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n                                   ^\n                                   source.ts meta.class.ts\n                                    ^\n                                    source.ts meta.class.ts punctuation.definition.block.ts\n>class C { abstract set [using](v); }\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.class.ts\n           ^^^^^^^^\n           source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts\n                    ^^^\n                    source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n                       ^\n                       source.ts meta.class.ts meta.method.declaration.ts\n                        ^\n                        source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                         ^^^^^\n                         source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts variable.other.readwrite.ts\n                              ^\n                              source.ts meta.class.ts meta.method.declaration.ts meta.array.literal.ts meta.brace.square.ts\n                               ^\n                               source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                                ^\n                                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n                                 ^\n                                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                  ^\n                                  source.ts meta.class.ts punctuation.terminator.statement.ts\n                                   ^\n                                   source.ts meta.class.ts\n                                    ^\n                                    source.ts meta.class.ts punctuation.definition.block.ts\n>namespace using {}\n ^^^^^^^^^\n source.ts meta.namespace.declaration.ts storage.type.namespace.ts\n          ^\n          source.ts meta.namespace.declaration.ts\n           ^^^^^\n           source.ts meta.namespace.declaration.ts entity.name.type.module.ts\n                ^\n                source.ts meta.namespace.declaration.ts\n                 ^\n                 source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>namespace using.x {}\n ^^^^^^^^^\n source.ts meta.namespace.declaration.ts storage.type.namespace.ts\n          ^\n          source.ts meta.namespace.declaration.ts\n           ^^^^^\n           source.ts meta.namespace.declaration.ts entity.name.type.module.ts\n                ^\n                source.ts meta.namespace.declaration.ts punctuation.accessor.ts\n                 ^\n                 source.ts meta.namespace.declaration.ts entity.name.type.module.ts\n                  ^\n                  source.ts meta.namespace.declaration.ts\n                   ^\n                   source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n                    ^\n                    source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>interface using {}\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n                ^\n                source.ts meta.interface.ts\n                 ^\n                 source.ts meta.interface.ts punctuation.definition.block.ts\n                  ^\n                  source.ts meta.interface.ts punctuation.definition.block.ts\n>interface I { [using: string]: using; }\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n            ^\n            source.ts meta.interface.ts\n             ^\n             source.ts meta.interface.ts punctuation.definition.block.ts\n              ^\n              source.ts meta.interface.ts meta.indexer.declaration.ts\n               ^\n               source.ts meta.interface.ts meta.indexer.declaration.ts meta.brace.square.ts\n                ^^^^^\n                source.ts meta.interface.ts meta.indexer.declaration.ts variable.parameter.ts\n                     ^\n                     source.ts meta.interface.ts meta.indexer.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.interface.ts meta.indexer.declaration.ts meta.type.annotation.ts\n                       ^^^^^^\n                       source.ts meta.interface.ts meta.indexer.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                             ^\n                             source.ts meta.interface.ts meta.indexer.declaration.ts meta.brace.square.ts\n                              ^\n                              source.ts meta.interface.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.interface.ts meta.type.annotation.ts\n                                ^^^^^\n                                source.ts meta.interface.ts meta.type.annotation.ts entity.name.type.ts\n                                     ^\n                                     source.ts meta.interface.ts punctuation.terminator.statement.ts\n                                      ^\n                                      source.ts meta.interface.ts\n                                       ^\n                                       source.ts meta.interface.ts punctuation.definition.block.ts\n>type using = never;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n           ^\n           source.ts meta.type.declaration.ts\n            ^\n            source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.type.declaration.ts\n              ^^^^^\n              source.ts meta.type.declaration.ts support.type.primitive.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>type X<using> = never;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n       ^\n       source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n        ^^^^^\n        source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n             ^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n              ^\n              source.ts meta.type.declaration.ts\n               ^\n               source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                ^\n                source.ts meta.type.declaration.ts\n                 ^^^^^\n                 source.ts meta.type.declaration.ts support.type.primitive.ts\n                      ^\n                      source.ts punctuation.terminator.statement.ts\n>enum using {}\n ^^^^\n source.ts meta.enum.declaration.ts storage.type.enum.ts\n     ^\n     source.ts meta.enum.declaration.ts\n      ^^^^^\n      source.ts meta.enum.declaration.ts entity.name.type.enum.ts\n           ^\n           source.ts meta.enum.declaration.ts\n            ^\n            source.ts meta.enum.declaration.ts punctuation.definition.block.ts\n             ^\n             source.ts meta.enum.declaration.ts punctuation.definition.block.ts\n>enum E { using };\n ^^^^\n source.ts meta.enum.declaration.ts storage.type.enum.ts\n     ^\n     source.ts meta.enum.declaration.ts\n      ^\n      source.ts meta.enum.declaration.ts entity.name.type.enum.ts\n       ^\n       source.ts meta.enum.declaration.ts\n        ^\n        source.ts meta.enum.declaration.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.enum.declaration.ts\n          ^^^^^\n          source.ts meta.enum.declaration.ts variable.other.enummember.ts\n               ^\n               source.ts meta.enum.declaration.ts\n                ^\n                source.ts meta.enum.declaration.ts punctuation.definition.block.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n>enum E { a = using };\n ^^^^\n source.ts meta.enum.declaration.ts storage.type.enum.ts\n     ^\n     source.ts meta.enum.declaration.ts\n      ^\n      source.ts meta.enum.declaration.ts entity.name.type.enum.ts\n       ^\n       source.ts meta.enum.declaration.ts\n        ^\n        source.ts meta.enum.declaration.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.enum.declaration.ts\n          ^\n          source.ts meta.enum.declaration.ts variable.other.enummember.ts\n           ^\n           source.ts meta.enum.declaration.ts\n            ^\n            source.ts meta.enum.declaration.ts keyword.operator.assignment.ts\n             ^\n             source.ts meta.enum.declaration.ts\n              ^^^^^\n              source.ts meta.enum.declaration.ts variable.other.readwrite.ts\n                   ^\n                   source.ts meta.enum.declaration.ts\n                    ^\n                    source.ts meta.enum.declaration.ts punctuation.definition.block.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n>using: {};\n ^^^^^\n source.ts entity.name.label.ts\n      ^\n      source.ts punctuation.separator.label.ts\n       ^\n       source.ts\n        ^\n        source.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.block.ts punctuation.definition.block.ts\n          ^\n          source.ts punctuation.terminator.statement.ts\n>break using;\n ^^^^^\n source.ts keyword.control.loop.ts\n      ^\n      source.ts\n       ^^^^^\n       source.ts entity.name.label.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>continue using;\n ^^^^^^^^\n source.ts keyword.control.loop.ts\n         ^\n         source.ts\n          ^^^^^\n          source.ts entity.name.label.ts\n               ^\n               source.ts punctuation.terminator.statement.ts\n>switch (using) {\n ^^^^^^\n source.ts switch-statement.expr.ts switch-expression.expr.ts keyword.control.switch.ts\n       ^\n       source.ts switch-statement.expr.ts switch-expression.expr.ts\n        ^\n        source.ts switch-statement.expr.ts switch-expression.expr.ts meta.brace.round.ts\n         ^^^^^\n         source.ts switch-statement.expr.ts switch-expression.expr.ts variable.other.readwrite.ts\n              ^\n              source.ts switch-statement.expr.ts switch-expression.expr.ts meta.brace.round.ts\n               ^\n               source.ts switch-statement.expr.ts\n                ^\n                source.ts switch-statement.expr.ts switch-block.expr.ts punctuation.definition.block.ts\n>    case using:\n ^^^^\n source.ts switch-statement.expr.ts switch-block.expr.ts\n     ^^^^\n     source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts keyword.control.switch.ts\n         ^\n         source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts\n          ^^^^^\n          source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts variable.other.readwrite.ts\n               ^\n               source.ts switch-statement.expr.ts switch-block.expr.ts case-clause.expr.ts punctuation.definition.section.case-statement.ts\n>}\n ^\n source.ts switch-statement.expr.ts punctuation.definition.block.ts\n>export { using };\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^^^^^\n          source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n               ^\n               source.ts meta.export.ts meta.block.ts\n                ^\n                source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n>export { using as x };\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^^^^^\n          source.ts meta.export.ts meta.block.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.export.ts meta.block.ts\n                ^^\n                source.ts meta.export.ts meta.block.ts keyword.control.as.ts\n                  ^\n                  source.ts meta.export.ts meta.block.ts\n                   ^\n                   source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n                    ^\n                    source.ts meta.export.ts meta.block.ts\n                     ^\n                     source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                      ^\n                      source.ts punctuation.terminator.statement.ts\n>export { x as using };\n ^^^^^^\n source.ts meta.export.ts keyword.control.export.ts\n       ^\n       source.ts meta.export.ts\n        ^\n        source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.export.ts meta.block.ts\n          ^\n          source.ts meta.export.ts meta.block.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.export.ts meta.block.ts\n            ^^\n            source.ts meta.export.ts meta.block.ts keyword.control.as.ts\n              ^\n              source.ts meta.export.ts meta.block.ts\n               ^^^^^\n               source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts\n                    ^\n                    source.ts meta.export.ts meta.block.ts\n                     ^\n                     source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts\n                      ^\n                      source.ts punctuation.terminator.statement.ts\n>import using from \"\";\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^^^^^\n        source.ts meta.import.ts variable.other.readwrite.alias.ts\n             ^\n             source.ts meta.import.ts\n              ^^^^\n              source.ts meta.import.ts keyword.control.from.ts\n                  ^\n                  source.ts meta.import.ts\n                   ^\n                   source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                    ^\n                    source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n>import * as using from \"\";\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts constant.language.import-export-all.ts\n         ^\n         source.ts meta.import.ts\n          ^^\n          source.ts meta.import.ts keyword.control.as.ts\n            ^\n            source.ts meta.import.ts\n             ^^^^^\n             source.ts meta.import.ts variable.other.readwrite.alias.ts\n                  ^\n                  source.ts meta.import.ts\n                   ^^^^\n                   source.ts meta.import.ts keyword.control.from.ts\n                       ^\n                       source.ts meta.import.ts\n                        ^\n                        source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                         ^\n                         source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                          ^\n                          source.ts punctuation.terminator.statement.ts\n>import { using } from \"\";\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.import.ts meta.block.ts\n          ^^^^^\n          source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n               ^\n               source.ts meta.import.ts meta.block.ts\n                ^\n                source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                 ^\n                 source.ts meta.import.ts\n                  ^^^^\n                  source.ts meta.import.ts keyword.control.from.ts\n                      ^\n                      source.ts meta.import.ts\n                       ^\n                       source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                        ^\n                        source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n>import { using as x } from \"\";\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.import.ts meta.block.ts\n          ^^^^^\n          source.ts meta.import.ts meta.block.ts variable.other.readwrite.ts\n               ^\n               source.ts meta.import.ts meta.block.ts\n                ^^\n                source.ts meta.import.ts meta.block.ts keyword.control.as.ts\n                  ^\n                  source.ts meta.import.ts meta.block.ts\n                   ^\n                   source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                    ^\n                    source.ts meta.import.ts meta.block.ts\n                     ^\n                     source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                      ^\n                      source.ts meta.import.ts\n                       ^^^^\n                       source.ts meta.import.ts keyword.control.from.ts\n                           ^\n                           source.ts meta.import.ts\n                            ^\n                            source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                             ^\n                             source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts\n>import { x as using } from \"\";\n ^^^^^^\n source.ts meta.import.ts keyword.control.import.ts\n       ^\n       source.ts meta.import.ts\n        ^\n        source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n         ^\n         source.ts meta.import.ts meta.block.ts\n          ^\n          source.ts meta.import.ts meta.block.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.import.ts meta.block.ts\n            ^^\n            source.ts meta.import.ts meta.block.ts keyword.control.as.ts\n              ^\n              source.ts meta.import.ts meta.block.ts\n               ^^^^^\n               source.ts meta.import.ts meta.block.ts variable.other.readwrite.alias.ts\n                    ^\n                    source.ts meta.import.ts meta.block.ts\n                     ^\n                     source.ts meta.import.ts meta.block.ts punctuation.definition.block.ts\n                      ^\n                      source.ts meta.import.ts\n                       ^^^^\n                       source.ts meta.import.ts keyword.control.from.ts\n                           ^\n                           source.ts meta.import.ts\n                            ^\n                            source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                             ^\n                             source.ts meta.import.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                              ^\n                              source.ts punctuation.terminator.statement.ts\n>for (using;;);\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^\n      source.ts variable.other.readwrite.ts\n           ^\n           source.ts punctuation.terminator.statement.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n             ^\n             source.ts meta.brace.round.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>for (using = a;;);\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^\n      source.ts variable.other.readwrite.ts\n           ^\n           source.ts\n            ^\n            source.ts keyword.operator.assignment.ts\n             ^\n             source.ts\n              ^\n              source.ts variable.other.readwrite.ts\n               ^\n               source.ts punctuation.terminator.statement.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n                 ^\n                 source.ts meta.brace.round.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n>for (using[x];;);\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^\n      source.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.array.literal.ts meta.brace.square.ts\n            ^\n            source.ts meta.array.literal.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.array.literal.ts meta.brace.square.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n               ^\n               source.ts punctuation.terminator.statement.ts\n                ^\n                source.ts meta.brace.round.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n>for (using[x] = a;;);\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^\n      source.ts variable.other.readwrite.ts\n           ^\n           source.ts meta.array.literal.ts meta.brace.square.ts\n            ^\n            source.ts meta.array.literal.ts variable.other.readwrite.ts\n             ^\n             source.ts meta.array.literal.ts meta.brace.square.ts\n              ^\n              source.ts\n               ^\n               source.ts keyword.operator.assignment.ts\n                ^\n                source.ts\n                 ^\n                 source.ts variable.other.readwrite.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n                    ^\n                    source.ts meta.brace.round.ts\n                     ^\n                     source.ts punctuation.terminator.statement.ts\n>for (using in a);\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^\n      source.ts variable.other.readwrite.ts\n           ^\n           source.ts\n            ^^\n            source.ts keyword.operator.expression.in.ts\n              ^\n              source.ts\n               ^\n               source.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.brace.round.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n>for (using of a);\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^\n      source.ts variable.other.readwrite.ts\n           ^\n           source.ts\n            ^^\n            source.ts keyword.operator.expression.of.ts\n              ^\n              source.ts\n               ^\n               source.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.brace.round.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>using\n ^^^^^\n source.ts variable.other.readwrite.ts\n>x = a;\n ^\n source.ts variable.other.readwrite.ts\n  ^\n  source.ts\n   ^\n   source.ts keyword.operator.assignment.ts\n    ^\n    source.ts\n     ^\n     source.ts variable.other.readwrite.ts\n      ^\n      source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>using\n ^^^^^\n source.ts variable.other.readwrite.ts\n>[x] = a;\n ^\n source.ts meta.array.literal.ts meta.brace.square.ts\n  ^\n  source.ts meta.array.literal.ts variable.other.readwrite.ts\n   ^\n   source.ts meta.array.literal.ts meta.brace.square.ts\n    ^\n    source.ts\n     ^\n     source.ts keyword.operator.assignment.ts\n      ^\n      source.ts\n       ^\n       source.ts variable.other.readwrite.ts\n        ^\n        source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>// using as keyword\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>using x = a;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts variable.other.readwrite.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>using x = a, y = b;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts punctuation.separator.comma.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts variable.other.readwrite.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>using x\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n>= a;\n ^\n source.ts keyword.operator.assignment.ts\n  ^\n  source.ts\n   ^\n   source.ts variable.other.readwrite.ts\n    ^\n    source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>using x\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n>= a, y = b;\n ^\n source.ts keyword.operator.assignment.ts\n  ^\n  source.ts\n   ^\n   source.ts variable.other.readwrite.ts\n    ^\n    source.ts punctuation.separator.comma.ts\n     ^\n     source.ts\n      ^\n      source.ts variable.other.readwrite.ts\n       ^\n       source.ts\n        ^\n        source.ts keyword.operator.assignment.ts\n         ^\n         source.ts\n          ^\n          source.ts variable.other.readwrite.ts\n           ^\n           source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>using x = a\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts variable.other.readwrite.ts\n>    , y = b;\n ^^^^\n source.ts\n     ^\n     source.ts punctuation.separator.comma.ts\n      ^\n      source.ts\n       ^\n       source.ts variable.other.readwrite.ts\n        ^\n        source.ts\n         ^\n         source.ts keyword.operator.assignment.ts\n          ^\n          source.ts\n           ^\n           source.ts variable.other.readwrite.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>using x = a,\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts punctuation.separator.comma.ts\n>      y = b;\n ^^^^^^\n source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts variable.other.readwrite.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>for (using x of a);\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^\n      source.ts meta.var.expr.ts storage.type.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^^\n              source.ts keyword.operator.expression.of.ts\n                ^\n                source.ts\n                 ^\n                 source.ts variable.other.readwrite.ts\n                  ^\n                  source.ts meta.brace.round.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>for (using x = a;;);\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^\n      source.ts meta.var.expr.ts storage.type.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^\n                source.ts meta.var.expr.ts variable.other.readwrite.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n                   ^\n                   source.ts meta.brace.round.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n>for (using x = a, y = b;;);\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^\n      source.ts meta.var.expr.ts storage.type.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^\n                source.ts meta.var.expr.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.var.expr.ts punctuation.separator.comma.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                     ^\n                     source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.var.expr.ts\n                       ^\n                       source.ts meta.var.expr.ts variable.other.readwrite.ts\n                        ^\n                        source.ts punctuation.terminator.statement.ts\n                         ^\n                         source.ts punctuation.terminator.statement.ts\n                          ^\n                          source.ts meta.brace.round.ts\n                           ^\n                           source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>for (using x\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^\n      source.ts meta.var.expr.ts storage.type.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n>= a;;);\n ^\n source.ts keyword.operator.assignment.ts\n  ^\n  source.ts\n   ^\n   source.ts variable.other.readwrite.ts\n    ^\n    source.ts punctuation.terminator.statement.ts\n     ^\n     source.ts punctuation.terminator.statement.ts\n      ^\n      source.ts meta.brace.round.ts\n       ^\n       source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>for (using x\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^\n      source.ts meta.var.expr.ts storage.type.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n>= a, y = b;;);\n ^\n source.ts keyword.operator.assignment.ts\n  ^\n  source.ts\n   ^\n   source.ts variable.other.readwrite.ts\n    ^\n    source.ts punctuation.separator.comma.ts\n     ^\n     source.ts\n      ^\n      source.ts variable.other.readwrite.ts\n       ^\n       source.ts\n        ^\n        source.ts keyword.operator.assignment.ts\n         ^\n         source.ts\n          ^\n          source.ts variable.other.readwrite.ts\n           ^\n           source.ts punctuation.terminator.statement.ts\n            ^\n            source.ts punctuation.terminator.statement.ts\n             ^\n             source.ts meta.brace.round.ts\n              ^\n              source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>for (using x = a\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^\n      source.ts meta.var.expr.ts storage.type.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^\n                source.ts meta.var.expr.ts variable.other.readwrite.ts\n>         , y = b;;);\n ^^^^^^^^^\n source.ts\n          ^\n          source.ts punctuation.separator.comma.ts\n           ^\n           source.ts\n            ^\n            source.ts variable.other.readwrite.ts\n             ^\n             source.ts\n              ^\n              source.ts keyword.operator.assignment.ts\n               ^\n               source.ts\n                ^\n                source.ts variable.other.readwrite.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n                   ^\n                   source.ts meta.brace.round.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>for (using x = a,\n ^^^\n source.ts keyword.control.loop.ts\n    ^\n    source.ts\n     ^\n     source.ts meta.brace.round.ts\n      ^^^^^\n      source.ts meta.var.expr.ts storage.type.ts\n           ^\n           source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^\n                source.ts meta.var.expr.ts variable.other.readwrite.ts\n                 ^\n                 source.ts meta.var.expr.ts punctuation.separator.comma.ts\n>           y = b;;);\n ^^^^^^^^^^^\n source.ts meta.var.expr.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n              ^\n              source.ts meta.var.expr.ts keyword.operator.assignment.ts\n               ^\n               source.ts meta.var.expr.ts\n                ^\n                source.ts meta.var.expr.ts variable.other.readwrite.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n                  ^\n                  source.ts punctuation.terminator.statement.ts\n                   ^\n                   source.ts meta.brace.round.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>function f() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n           ^\n           source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.function.ts\n              ^\n              source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    using x = a;\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^\n     source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>(() => {\n ^\n source.ts meta.brace.round.ts\n  ^\n  source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n   ^\n   source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n    ^\n    source.ts meta.arrow.ts\n     ^^\n     source.ts meta.arrow.ts storage.type.function.arrow.ts\n       ^\n       source.ts meta.arrow.ts\n        ^\n        source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n>    using x = a;\n ^^^^\n source.ts meta.arrow.ts meta.block.ts\n     ^^^^^\n     source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n           ^\n           source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts\n>})\n ^\n source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.brace.round.ts\n>\n ^\n source.ts\n>namespace N {\n ^^^^^^^^^\n source.ts meta.namespace.declaration.ts storage.type.namespace.ts\n          ^\n          source.ts meta.namespace.declaration.ts\n           ^\n           source.ts meta.namespace.declaration.ts entity.name.type.module.ts\n            ^\n            source.ts meta.namespace.declaration.ts\n             ^\n             source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    using x = a;\n ^^^^\n source.ts meta.namespace.declaration.ts meta.block.ts\n     ^^^^^\n     source.ts meta.namespace.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n          ^\n          source.ts meta.namespace.declaration.ts meta.block.ts meta.var.expr.ts\n           ^\n           source.ts meta.namespace.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.namespace.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts meta.namespace.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n              ^\n              source.ts meta.namespace.declaration.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.namespace.declaration.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                ^\n                source.ts meta.namespace.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>class C {\n ^^^^^\n source.ts meta.class.ts storage.type.class.ts\n      ^\n      source.ts meta.class.ts\n       ^\n       source.ts meta.class.ts entity.name.type.class.ts\n        ^\n        source.ts meta.class.ts\n         ^\n         source.ts meta.class.ts punctuation.definition.block.ts\n>    constructor() {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.type.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        using x = a;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    method() {\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts\n     ^^^^^^\n     source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        using x = a;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    get p() {\n ^^^^\n source.ts meta.class.ts\n     ^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        using x = a;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    set p(v) {\n ^^^^\n source.ts meta.class.ts\n     ^^^\n     source.ts meta.class.ts meta.method.declaration.ts storage.type.property.ts\n        ^\n        source.ts meta.class.ts meta.method.declaration.ts\n         ^\n         source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts\n          ^\n          source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n           ^\n           source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts\n            ^\n            source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n             ^\n             source.ts meta.class.ts meta.method.declaration.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>        using x = a;\n ^^^^^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n         ^^^^^\n         source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.method.declaration.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts\n>    static {\n ^^^^\n source.ts meta.class.ts\n     ^^^^^^\n     source.ts meta.class.ts storage.modifier.ts\n           ^\n           source.ts meta.class.ts\n            ^\n            source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>        using x = a;\n ^^^^^^^^\n source.ts meta.class.ts meta.block.ts\n         ^^^^^\n         source.ts meta.class.ts meta.block.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts meta.class.ts meta.block.ts meta.var.expr.ts\n               ^\n               source.ts meta.class.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.class.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.class.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.class.ts meta.block.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.class.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.class.ts meta.block.ts punctuation.terminator.statement.ts\n>    }\n ^^^^\n source.ts meta.class.ts meta.block.ts\n     ^\n     source.ts meta.class.ts meta.block.ts punctuation.definition.block.ts\n>}\n ^\n source.ts meta.class.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>// using as identifier, illegal syntax\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>using {x};\n ^^^^^\n source.ts variable.other.readwrite.ts\n      ^\n      source.ts\n       ^\n       source.ts meta.block.ts punctuation.definition.block.ts\n        ^\n        source.ts meta.block.ts variable.other.readwrite.ts\n         ^\n         source.ts meta.block.ts punctuation.definition.block.ts\n          ^\n          source.ts punctuation.terminator.statement.ts\n>using {x: y};\n ^^^^^\n source.ts variable.other.readwrite.ts\n      ^\n      source.ts\n       ^\n       source.ts meta.block.ts punctuation.definition.block.ts\n        ^\n        source.ts meta.block.ts entity.name.label.ts\n         ^\n         source.ts meta.block.ts punctuation.separator.label.ts\n          ^\n          source.ts meta.block.ts\n           ^\n           source.ts meta.block.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.block.ts punctuation.definition.block.ts\n             ^\n             source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>// using as keyword, illegal syntax\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>using x;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts punctuation.terminator.statement.ts\n>using x, y;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts punctuation.separator.comma.ts\n         ^\n         source.ts meta.var.expr.ts\n          ^\n          source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n           ^\n           source.ts punctuation.terminator.statement.ts\n>using x, [y];\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts punctuation.separator.comma.ts\n         ^^\n         source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n             ^\n             source.ts punctuation.terminator.statement.ts\n>using x, {y};\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts punctuation.separator.comma.ts\n         ^^\n         source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts\n             ^\n             source.ts punctuation.terminator.statement.ts\n>using x, {y: z};\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts punctuation.separator.comma.ts\n         ^^\n         source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n            ^\n            source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n             ^\n             source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n               ^\n               source.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>using x = a, y;\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts punctuation.separator.comma.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^\n               source.ts punctuation.terminator.statement.ts\n>using x = a, [y];\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts punctuation.separator.comma.ts\n             ^^\n             source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n>using x = a, {y};\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts punctuation.separator.comma.ts\n             ^^\n             source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts\n                 ^\n                 source.ts punctuation.terminator.statement.ts\n>using x = a, {y: z};\n ^^^^^\n source.ts meta.var.expr.ts storage.type.ts\n      ^\n      source.ts meta.var.expr.ts\n       ^\n       source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n        ^\n        source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n         ^\n         source.ts meta.var.expr.ts keyword.operator.assignment.ts\n          ^\n          source.ts meta.var.expr.ts\n           ^\n           source.ts meta.var.expr.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts punctuation.separator.comma.ts\n             ^^\n             source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts\n                   ^\n                   source.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n>declare using x;\n ^^^^^^^\n source.ts meta.var.expr.ts storage.modifier.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^\n         source.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts punctuation.terminator.statement.ts\n>declare using x = a;\n ^^^^^^^\n source.ts meta.var.expr.ts storage.modifier.ts\n        ^\n        source.ts meta.var.expr.ts\n         ^^^^^\n         source.ts meta.var.expr.ts storage.type.ts\n              ^\n              source.ts meta.var.expr.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n                ^\n                source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                 ^\n                 source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                  ^\n                  source.ts meta.var.expr.ts\n                   ^\n                   source.ts meta.var.expr.ts variable.other.readwrite.ts\n                    ^\n                    source.ts punctuation.terminator.statement.ts\n>export using x;\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^^^\n        source.ts meta.var.expr.ts storage.type.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^\n               source.ts punctuation.terminator.statement.ts\n>export using x = a;\n ^^^^^^\n source.ts meta.var.expr.ts keyword.control.export.ts\n       ^\n       source.ts meta.var.expr.ts\n        ^^^^^\n        source.ts meta.var.expr.ts storage.type.ts\n             ^\n             source.ts meta.var.expr.ts\n              ^\n              source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts\n               ^\n               source.ts meta.var.expr.ts meta.var-single-variable.expr.ts\n                ^\n                source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.var.expr.ts\n                  ^\n                  source.ts meta.var.expr.ts variable.other.readwrite.ts\n                   ^\n                   source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts"
  },
  {
    "path": "tests/baselines/variableBindingPattern.baseline.txt",
    "content": "original file\n-----------------------------------\n// @onlyOwnGrammar - As this has type assertion\nfunction foo() {\n    return {\n        x: {\n            a: 10,\n            b: 20\n        },\n        y: {\n            c: \"hello\",\n            d: \"world\"\n        },\n        z: <[number, { hello: string }]>[10, { hello: \"Hello\" }]\n    };\n}\n\nvar {x: k, y: { c: d}, z: [e, { hello }], x } = foo();\nvar {x: k, y: { c: d}, z: [e, { hello }], x }: {\n    x: {\n        a: number;\n        b: number;\n    };\n    y: {\n        c: string;\n        d: string;\n    };\n    z: [number, {\n        hello: string;\n    }];\n} = foo();\n\nfunction bar() {\n    return <[{ hello: string },string]>[{ hello: \"Hello\" }, \"world\"];\n}\n\nvar [{hello}, world] = bar();\nvar [{hello}, world]: [{ hello: string }, string] = bar();\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>// @onlyOwnGrammar - As this has type assertion\n ^^\n source.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   source.ts comment.line.double-slash.ts\n>function foo() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.function.ts\n                ^\n                source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    return {\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n>        x: {\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n>            a: 10,\n ^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                ^^\n                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n                  ^\n                  source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>            b: 20\n ^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                ^^\n                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts\n>        },\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        y: {\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n>            c: \"hello\",\n ^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                 ^^^^^\n                 source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>            d: \"world\"\n ^^^^^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n              ^\n              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n               ^\n               source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n                ^\n                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                 ^^^^^\n                 source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n>        },\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.separator.comma.ts\n>        z: <[number, { hello: string }]>[10, { hello: \"Hello\" }]\n ^^^^^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts\n         ^\n         source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n          ^\n          source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n           ^\n           source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts\n            ^\n            source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.brace.angle.ts\n             ^\n             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.brace.square.ts\n              ^^^^^^\n              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts support.type.primitive.ts\n                    ^\n                    source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts punctuation.definition.block.ts\n                       ^\n                       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts\n                        ^^^^^\n                        source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                               ^^^^^^\n                               source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                     ^\n                                     source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts punctuation.definition.block.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.tuple.ts meta.brace.square.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.brace.angle.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.brace.square.ts\n                                          ^^\n                                          source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts constant.numeric.decimal.ts\n                                            ^\n                                            source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                             ^\n                                             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts\n                                              ^\n                                              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                               ^\n                                               source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts\n                                                ^^^^^\n                                                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                     ^\n                                                     source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                      ^\n                                                      source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                                       ^\n                                                       source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                        ^^^^^\n                                                        source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                              ^\n                                                              source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                                               ^\n                                                               source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                                ^\n                                                                source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts meta.array.literal.ts meta.brace.square.ts\n>    };\n ^^^^\n source.ts meta.function.ts meta.block.ts meta.objectliteral.ts meta.object.member.ts\n     ^\n     source.ts meta.function.ts meta.block.ts meta.objectliteral.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>var {x: k, y: { c: d}, z: [e, { hello }], x } = foo();\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n      ^\n      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts variable.object.property.ts\n       ^\n       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.destructuring.ts\n        ^\n        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n         ^\n         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n           ^\n           source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n            ^\n            source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts variable.object.property.ts\n             ^\n             source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.destructuring.ts\n              ^\n              source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n               ^\n               source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n                ^\n                source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts variable.object.property.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.destructuring.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts variable.object.property.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.destructuring.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                                 ^^^^^\n                                 source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                                               ^\n                                               source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                                ^\n                                                source.ts meta.var.expr.ts\n                                                 ^^^\n                                                 source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts meta.brace.round.ts\n                                                     ^\n                                                     source.ts meta.var.expr.ts meta.brace.round.ts\n                                                      ^\n                                                      source.ts punctuation.terminator.statement.ts\n>var {x: k, y: { c: d}, z: [e, { hello }], x }: {\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n      ^\n      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts variable.object.property.ts\n       ^\n       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.destructuring.ts\n        ^\n        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n         ^\n         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n          ^\n          source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n           ^\n           source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n            ^\n            source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts variable.object.property.ts\n             ^\n             source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.destructuring.ts\n              ^\n              source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n               ^\n               source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n                ^\n                source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts variable.object.property.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.destructuring.ts\n                   ^\n                   source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts variable.object.property.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.destructuring.ts\n                          ^\n                          source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                             ^\n                             source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n                              ^\n                              source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                                 ^^^^^\n                                 source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                                      ^\n                                      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.separator.comma.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                                           ^\n                                           source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                                            ^\n                                            source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts\n                                             ^\n                                             source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n                                              ^\n                                              source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                               ^\n                                               source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts\n                                                ^\n                                                source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>    x: {\n ^^^^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n     ^\n     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>        a: number;\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n         ^\n         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n            ^^^^^^\n            source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n>        b: number;\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n         ^\n         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n            ^^^^^^\n            source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n>    };\n ^^^^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts\n     ^\n     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n>    y: {\n ^^^^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n     ^\n     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n>        c: string;\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n         ^\n         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n            ^^^^^^\n            source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n>        d: string;\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n         ^\n         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n          ^\n          source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n            ^^^^^^\n            source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                  ^\n                  source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n>    };\n ^^^^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts\n     ^\n     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n>    z: [number, {\n ^^^^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts\n     ^\n     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^\n        source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n         ^^^^^^\n         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n               ^\n               source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                ^\n                source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts\n                 ^\n                 source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts punctuation.definition.block.ts\n>        hello: string;\n ^^^^^^^^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts\n         ^^^^^\n         source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n              ^\n              source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n               ^\n               source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                ^^^^^^\n                source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts punctuation.terminator.statement.ts\n>    }];\n ^^^^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts\n     ^\n     source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts punctuation.definition.block.ts\n      ^\n      source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n       ^\n       source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts punctuation.terminator.statement.ts\n>} = foo();\n ^\n source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts meta.object.type.ts punctuation.definition.block.ts\n  ^\n  source.ts meta.var.expr.ts meta.object-binding-pattern-variable.ts meta.type.annotation.ts\n   ^\n   source.ts meta.var.expr.ts keyword.operator.assignment.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^^^\n     source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n        ^\n        source.ts meta.var.expr.ts meta.brace.round.ts\n         ^\n         source.ts meta.var.expr.ts meta.brace.round.ts\n          ^\n          source.ts punctuation.terminator.statement.ts\n>\n ^\n source.ts\n>function bar() {\n ^^^^^^^^\n source.ts meta.function.ts storage.type.function.ts\n         ^\n         source.ts meta.function.ts\n          ^^^\n          source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts\n             ^\n             source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n              ^\n              source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n               ^\n               source.ts meta.function.ts\n                ^\n                source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>    return <[{ hello: string },string]>[{ hello: \"Hello\" }, \"world\"];\n ^^^^\n source.ts meta.function.ts meta.block.ts\n     ^^^^^^\n     source.ts meta.function.ts meta.block.ts keyword.control.flow.ts\n           ^\n           source.ts meta.function.ts meta.block.ts cast.expr.ts\n            ^\n            source.ts meta.function.ts meta.block.ts cast.expr.ts meta.brace.angle.ts\n             ^\n             source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.brace.square.ts\n              ^\n              source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts punctuation.definition.block.ts\n               ^\n               source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts\n                ^^^^^\n                source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                     ^\n                     source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                       ^^^^^^\n                       source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                             ^\n                             source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                              ^\n                              source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.object.type.ts punctuation.definition.block.ts\n                               ^\n                               source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                ^^^^^^\n                                source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts support.type.primitive.ts\n                                      ^\n                                      source.ts meta.function.ts meta.block.ts cast.expr.ts meta.type.tuple.ts meta.brace.square.ts\n                                       ^\n                                       source.ts meta.function.ts meta.block.ts cast.expr.ts meta.brace.angle.ts\n                                        ^\n                                        source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                         ^\n                                         source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                          ^\n                                          source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts\n                                           ^^^^^\n                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts\n                                                ^\n                                                source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts\n                                                 ^\n                                                 source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                                  ^\n                                                  source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                   ^^^^^\n                                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts\n                                                        ^\n                                                        source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                         ^\n                                                         source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts meta.object.member.ts\n                                                          ^\n                                                          source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.objectliteral.ts punctuation.definition.block.ts\n                                                           ^\n                                                           source.ts meta.function.ts meta.block.ts meta.array.literal.ts punctuation.separator.comma.ts\n                                                            ^\n                                                            source.ts meta.function.ts meta.block.ts meta.array.literal.ts\n                                                             ^\n                                                             source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.begin.ts\n                                                              ^^^^^\n                                                              source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts\n                                                                   ^\n                                                                   source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.double.ts punctuation.definition.string.end.ts\n                                                                    ^\n                                                                    source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts\n                                                                     ^\n                                                                     source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>var [{hello}, world] = bar();\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n      ^\n      source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n       ^^^^^\n       source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n             ^\n             source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.separator.comma.ts\n              ^\n              source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n               ^^^^^\n               source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n                      ^\n                      source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                       ^\n                       source.ts meta.var.expr.ts\n                        ^^^\n                        source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                           ^\n                           source.ts meta.var.expr.ts meta.brace.round.ts\n                            ^\n                            source.ts meta.var.expr.ts meta.brace.round.ts\n                             ^\n                             source.ts punctuation.terminator.statement.ts\n>var [{hello}, world]: [{ hello: string }, string] = bar();\n ^^^\n source.ts meta.var.expr.ts storage.type.ts\n    ^\n    source.ts meta.var.expr.ts\n     ^\n     source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n      ^\n      source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n       ^^^^^\n       source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n            ^\n            source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.object.ts\n             ^\n             source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.separator.comma.ts\n              ^\n              source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts\n               ^^^^^\n               source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.definition.variable.ts variable.other.readwrite.ts\n                    ^\n                    source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts punctuation.definition.binding-pattern.array.ts\n                     ^\n                     source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                      ^\n                      source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.type.annotation.ts\n                       ^\n                       source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                        ^\n                        source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts punctuation.definition.block.ts\n                         ^\n                         source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts\n                          ^^^^^\n                          source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n                               ^\n                               source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                                ^\n                                source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                 ^^^^^^\n                                 source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts\n                                       ^\n                                       source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n                                        ^\n                                        source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.type.annotation.ts meta.type.tuple.ts meta.object.type.ts punctuation.definition.block.ts\n                                         ^\n                                         source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.type.annotation.ts meta.type.tuple.ts punctuation.separator.comma.ts\n                                          ^\n                                          source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.type.annotation.ts meta.type.tuple.ts\n                                           ^^^^^^\n                                           source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.type.annotation.ts meta.type.tuple.ts support.type.primitive.ts\n                                                 ^\n                                                 source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.type.annotation.ts meta.type.tuple.ts meta.brace.square.ts\n                                                  ^\n                                                  source.ts meta.var.expr.ts meta.array-binding-pattern-variable.ts meta.type.annotation.ts\n                                                   ^\n                                                   source.ts meta.var.expr.ts keyword.operator.assignment.ts\n                                                    ^\n                                                    source.ts meta.var.expr.ts\n                                                     ^^^\n                                                     source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts\n                                                        ^\n                                                        source.ts meta.var.expr.ts meta.brace.round.ts\n                                                         ^\n                                                         source.ts meta.var.expr.ts meta.brace.round.ts\n                                                          ^\n                                                          source.ts punctuation.terminator.statement.ts"
  },
  {
    "path": "tests/baselines/varianceAnnotations.baseline.txt",
    "content": "original file\n-----------------------------------\ntype Provider<out T> = () => T;\ntype Consumer<in T> = (x: T) => void;\ntype Mapper<in T, out U> = (x: T) => U;\ntype Processor<in out T> = (x: T) => T;\ntype Foo<in T> = {\n    x: T;\n    f: (x: T) => void;\n}\ninterface Bar<T> {\n    // ...\n}\n\ninterface Bar<out T> {\n    // ...\n}\n\ninterface Bar<in T> {\n    // ...\n}\n-----------------------------------\n\nGrammar: TypeScript.tmLanguage\n-----------------------------------\n>type Provider<out T> = () => T;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n               ^^^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                    ^\n                    source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                     ^\n                     source.ts meta.type.declaration.ts\n                      ^\n                      source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                       ^\n                       source.ts meta.type.declaration.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                          ^\n                          source.ts meta.type.declaration.ts\n                           ^^\n                           source.ts meta.type.declaration.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.function.return.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.function.return.ts entity.name.type.ts\n                               ^\n                               source.ts punctuation.terminator.statement.ts\n>type Consumer<in T> = (x: T) => void;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n               ^^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                   ^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                    ^\n                    source.ts meta.type.declaration.ts\n                     ^\n                     source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                      ^\n                      source.ts meta.type.declaration.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                         ^\n                         source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                          ^\n                          source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                           ^\n                           source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                             ^\n                             source.ts meta.type.declaration.ts\n                              ^^\n                              source.ts meta.type.declaration.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.function.return.ts\n                                 ^^^^\n                                 source.ts meta.type.declaration.ts meta.type.function.return.ts support.type.primitive.ts\n                                     ^\n                                     source.ts punctuation.terminator.statement.ts\n>type Mapper<in T, out U> = (x: T) => U;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n            ^\n            source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n             ^^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts\n                ^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.separator.comma.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts\n                   ^^^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                         ^\n                         source.ts meta.type.declaration.ts\n                          ^\n                          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                           ^\n                           source.ts meta.type.declaration.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts\n                                   ^^\n                                   source.ts meta.type.declaration.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.type.function.return.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.type.function.return.ts entity.name.type.ts\n                                       ^\n                                       source.ts punctuation.terminator.statement.ts\n>type Processor<in out T> = (x: T) => T;\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^^^^^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n               ^\n               source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n                ^^\n                source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.type.parameters.ts\n                   ^^^\n                   source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.type.parameters.ts\n                       ^\n                       source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n                        ^\n                        source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                         ^\n                         source.ts meta.type.declaration.ts\n                          ^\n                          source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                           ^\n                           source.ts meta.type.declaration.ts\n                            ^\n                            source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n                             ^\n                             source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n                              ^\n                              source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n                               ^\n                               source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n                                ^\n                                source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n                                 ^\n                                 source.ts meta.type.declaration.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n                                  ^\n                                  source.ts meta.type.declaration.ts\n                                   ^^\n                                   source.ts meta.type.declaration.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                                     ^\n                                     source.ts meta.type.declaration.ts meta.type.function.return.ts\n                                      ^\n                                      source.ts meta.type.declaration.ts meta.type.function.return.ts entity.name.type.ts\n                                       ^\n                                       source.ts punctuation.terminator.statement.ts\n>type Foo<in T> = {\n ^^^^\n source.ts meta.type.declaration.ts storage.type.type.ts\n     ^\n     source.ts meta.type.declaration.ts\n      ^^^\n      source.ts meta.type.declaration.ts entity.name.type.alias.ts\n         ^\n         source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n          ^^\n          source.ts meta.type.declaration.ts meta.type.parameters.ts storage.modifier.ts\n            ^\n            source.ts meta.type.declaration.ts meta.type.parameters.ts\n             ^\n             source.ts meta.type.declaration.ts meta.type.parameters.ts entity.name.type.ts\n              ^\n              source.ts meta.type.declaration.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n               ^\n               source.ts meta.type.declaration.ts\n                ^\n                source.ts meta.type.declaration.ts keyword.operator.assignment.ts\n                 ^\n                 source.ts meta.type.declaration.ts\n                  ^\n                  source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>    x: T;\n ^^^^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts\n      ^\n      source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^\n        source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts entity.name.type.ts\n         ^\n         source.ts meta.type.declaration.ts meta.object.type.ts punctuation.terminator.statement.ts\n>    f: (x: T) => void;\n ^^^^\n source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts\n     ^\n     source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts\n      ^\n      source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n       ^\n       source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n        ^\n        source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts\n         ^\n         source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts\n          ^\n          source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts\n           ^\n           source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts\n            ^\n            source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts\n             ^\n             source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts\n              ^\n              source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts\n               ^^\n               source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts\n                 ^\n                 source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts\n                  ^^^^\n                  source.ts meta.type.declaration.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts support.type.primitive.ts\n                      ^\n                      source.ts meta.type.declaration.ts meta.object.type.ts punctuation.terminator.statement.ts\n>}\n ^\n source.ts meta.type.declaration.ts meta.object.type.ts punctuation.definition.block.ts\n>interface Bar<T> {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n              ^\n              source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n               ^\n               source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                ^\n                source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                 ^\n                 source.ts meta.interface.ts\n                  ^\n                  source.ts meta.interface.ts punctuation.definition.block.ts\n>    // ...\n ^^^^\n source.ts meta.interface.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.interface.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^\n       source.ts meta.interface.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>interface Bar<out T> {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n              ^\n              source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n               ^^^\n               source.ts meta.interface.ts meta.type.parameters.ts storage.modifier.ts\n                  ^\n                  source.ts meta.interface.ts meta.type.parameters.ts\n                   ^\n                   source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                    ^\n                    source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                     ^\n                     source.ts meta.interface.ts\n                      ^\n                      source.ts meta.interface.ts punctuation.definition.block.ts\n>    // ...\n ^^^^\n source.ts meta.interface.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.interface.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^\n       source.ts meta.interface.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts\n>\n ^\n source.ts\n>interface Bar<in T> {\n ^^^^^^^^^\n source.ts meta.interface.ts storage.type.interface.ts\n          ^\n          source.ts meta.interface.ts\n           ^^^\n           source.ts meta.interface.ts entity.name.type.interface.ts\n              ^\n              source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\n               ^^\n               source.ts meta.interface.ts meta.type.parameters.ts storage.modifier.ts\n                 ^\n                 source.ts meta.interface.ts meta.type.parameters.ts\n                  ^\n                  source.ts meta.interface.ts meta.type.parameters.ts entity.name.type.ts\n                   ^\n                   source.ts meta.interface.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\n                    ^\n                    source.ts meta.interface.ts\n                     ^\n                     source.ts meta.interface.ts punctuation.definition.block.ts\n>    // ...\n ^^^^\n source.ts meta.interface.ts punctuation.whitespace.comment.leading.ts\n     ^^\n     source.ts meta.interface.ts comment.line.double-slash.ts punctuation.definition.comment.ts\n       ^^^^\n       source.ts meta.interface.ts comment.line.double-slash.ts\n>}\n ^\n source.ts meta.interface.ts punctuation.definition.block.ts"
  },
  {
    "path": "tests/build.ts",
    "content": "import * as vt from 'vscode-textmate';\nimport path = require('path');\nimport fs = require('fs');\nimport oniguruma = require('vscode-oniguruma');\n\nenum GrammarKind {\n    ts = 'source.ts',\n    tsx = 'source.tsx'\n}\nconst grammarFileNames: Record<GrammarKind, string> = {\n    [GrammarKind.ts]: \"TypeScript.tmLanguage\",\n    [GrammarKind.tsx]: \"TypeScriptReact.tmLanguage\"\n};\nfunction grammarPath(kind: GrammarKind) {\n    return path.join(__dirname, '..', grammarFileNames[kind]);\n}\nconst grammarPaths = {\n    [GrammarKind.ts]: grammarPath(GrammarKind.ts),\n    [GrammarKind.tsx]: grammarPath(GrammarKind.tsx)\n};\n\nconst wasmBin = fs.readFileSync(path.join(__dirname, '../node_modules/vscode-oniguruma/release/onig.wasm')).buffer;\nconst vscodeOnigurumaLib: Promise<vt.IOnigLib> = oniguruma.loadWASM(wasmBin).then(() => {\n    return {\n        createOnigScanner(patterns) { return new oniguruma.OnigScanner(patterns); },\n        createOnigString(s) { return new oniguruma.OnigString(s); }\n    };\n});\n\nconst registery = new vt.Registry({\n    onigLib: vscodeOnigurumaLib,\n    loadGrammar: function (scopeName: GrammarKind) {\n        const path = grammarPaths[scopeName];\n        if (path) {\n            return new Promise((resolve, reject) => {\n                fs.readFile(path, (error, content) => {\n                    if (error) {\n                        reject(error);\n                    } else {\n                        const rawGrammar = vt.parseRawGrammar(content.toString(), path);\n                        resolve(rawGrammar);\n                    }\n                });\n            });\n        }\n\n        return Promise.resolve(null);\n    }\n});\n\ninterface ThenableGrammar {\n    kind: GrammarKind;\n    grammar: Promise<vt.IGrammar | null>;\n}\nfunction thenableGrammar(kind: GrammarKind): ThenableGrammar {\n    return { kind, grammar: registery.loadGrammar(kind) };\n}\nconst tsGrammar = thenableGrammar(GrammarKind.ts);\nconst tsReactGrammar = thenableGrammar(GrammarKind.tsx);\n\nfunction getInputFile(oriLines: string[]): string {\n    return \"original file\\n-----------------------------------\\n\" +\n        oriLines.join(\"\\n\") + \n        \"\\n-----------------------------------\\n\\n\";\n}\n\nfunction getGrammarInfo(kind: GrammarKind) {\n    return \"Grammar: \" + grammarFileNames[kind] + \"\\n-----------------------------------\\n\";\n}\n\ninterface Grammar {\n    kind: GrammarKind;\n    grammar: vt.IGrammar;\n    ruleStack:  Parameters<vt.IGrammar[\"tokenizeLine\"]>[1];\n}\nfunction initGrammar(kind: GrammarKind, grammar: vt.IGrammar): Grammar {\n    return { kind, grammar, ruleStack: null };\n}\n\nfunction tokenizeLine(grammar: Grammar, line: string) {\n    const lineTokens = grammar.grammar.tokenizeLine(line, grammar.ruleStack);\n    grammar.ruleStack = lineTokens.ruleStack;\n    return lineTokens.tokens;\n}\n\nfunction hasDiff<T>(first: T[], second: T[], hasDiffT: (first: T, second: T) => boolean): boolean {\n    if (first.length != second.length) {\n        return true;\n    }\n\n    for (let i = 0; i < first.length; i++) {\n        if (hasDiffT(first[i], second[i])) {\n            return true;\n        }\n    }\n\n    return false;\n}\n\nfunction makeTsScope(scope: string) {\n    return scope.replace(/\\.tsx/g, '.ts');\n}\n\nfunction hasDiffScope(first: string, second: string) {\n    return makeTsScope(first) !== makeTsScope(second);\n}\n\nfunction hasDiffLineToken(first: vt.IToken, second: vt.IToken) {\n    return first.startIndex != second.startIndex ||\n        first.endIndex != second.endIndex ||\n        hasDiff(first.scopes, second.scopes, hasDiffScope);\n}\n\nfunction getBaseline(grammar: Grammar, outputLines: string[]) {\n    return getGrammarInfo(grammar.kind) + outputLines.join('\\n');\n}\n\nexport function generateScopes(text: string, parsedFileName: path.ParsedPath) {\n    const mainGrammar = parsedFileName.ext === '.tsx' ? tsReactGrammar : tsGrammar;\n    const oriLines = text.split(/\\r\\n|\\r|\\n/);\n    const otherGrammar = oriLines[0].search(/\\/\\/\\s*@onlyOwnGrammar/i) < 0 ?\n        mainGrammar === tsGrammar ? tsReactGrammar : tsGrammar :\n        undefined;\n\n    return Promise.all([\n        mainGrammar.grammar,\n        otherGrammar ?\n            otherGrammar.grammar :\n            Promise.resolve(undefined)\n    ]).then(([mainIGrammar, otherIGrammar]) => generateScopesWorker(\n        initGrammar(mainGrammar.kind, mainIGrammar!),\n        otherIGrammar && initGrammar(otherGrammar!.kind, otherIGrammar),\n        oriLines\n    ));\n}\n\nfunction validateTokenScopeExtension(grammar: Grammar, token: vt.IToken) {\n    return !token.scopes.some(scope => !isValidScopeExtension(grammar, scope));\n}\n\nfunction isValidScopeExtension(grammar: Grammar, scope: string) {\n    return scope.endsWith(grammar.kind === GrammarKind.ts ? \".ts\" : \".tsx\") ||\n        scope.endsWith(\".jsdoc\") ||\n        scope.endsWith(\".regexp\");\n}\n\nfunction generateScopesWorker(mainGrammar: Grammar, otherGrammar: Grammar | null |undefined, oriLines: string[]): string {\n    let cleanLines: string[] = [];\n    let baselineLines: string[] = [];\n    let otherBaselines: string[] = [];\n    let markers = 0;\n    let foundDiff = false;\n    for (const i in oriLines) {\n        let line = oriLines[i];\n\n        const mainLineTokens = tokenizeLine(mainGrammar, line);\n\n        cleanLines.push(line);\n        baselineLines.push(\">\" + line);\n        otherBaselines.push(\">\" + line);\n\n        for (let token of mainLineTokens) {\n            writeTokenLine(mainGrammar, token, baselineLines);\n        }\n\n        if (otherGrammar) {\n            const otherLineTokens = tokenizeLine(otherGrammar, line);\n            if (otherLineTokens.some(token => !validateTokenScopeExtension(otherGrammar, token)) ||\n                hasDiff(mainLineTokens, otherLineTokens, hasDiffLineToken)) {\n                foundDiff = true;\n                for (let token of otherLineTokens) {\n                    writeTokenLine(otherGrammar, token, otherBaselines);\n                }\n            }\n        }\n    }\n\n    const otherDiffBaseline = foundDiff ? \"\\n\\n\\n\" + getBaseline(otherGrammar!, otherBaselines) : \"\";\n    return getInputFile(cleanLines) + getBaseline(mainGrammar, baselineLines) + otherDiffBaseline;\n}\n\nfunction writeTokenLine(grammar: Grammar, token: vt.IToken, outputLines: string[]) {\n    let startingSpaces = \" \";\n    for (let j = 0; j < token.startIndex; j++) {\n        startingSpaces += \" \";\n    }\n\n    let locatingString = \"\";\n    for (let j = token.startIndex; j < token.endIndex; j++) {\n        locatingString += \"^\";\n    }\n    outputLines.push(startingSpaces + locatingString);\n    outputLines.push(`${startingSpaces}${token.scopes.join(' ')}${validateTokenScopeExtension(grammar, token) ? \"\" : \" INCORRECT_SCOPE_EXTENSION\"}`);\n}\n"
  },
  {
    "path": "tests/cases/Abstracts.ts",
    "content": "abstract class Animal {\n\t  public age: number;\n\t  public yearsLeft() { return 20 - this.age; }\n\t  abstract makeSound(): string;\n}\n\nclass Cow extends Animal {\n\t  makeSound() { return \"Moo\"; }\n}\n\nclass Cat extends Animal {\n\t  makeSound() { return \"Meow\"; }\n}\n\nlet cow = new Cow();\ncow.makeSound();"
  },
  {
    "path": "tests/cases/ArrowFunctionInsideTypeAssertion.ts",
    "content": "// @onlyOwnGrammar - As this has type assertion\n// Issue: https://github.com/Microsoft/TypeScript-Sublime-Plugin/issues/292\n\nvar object = {\n    setTransform: <(domNode: HTMLElement, desiredValue: string) => void>null,\n    setDisplay: (domNode: HTMLElement, desiredValue: string) => {\n        if (domNode.style.display !== desiredValue) {\n            domNode.style.display = desiredValue;\n        }\n    }\n}\n\nfunction f(x: string | ((value: string) => number)) {\n    if (typeof x === \"string\") {\n        return +x\n    }\n    else {\n        let f = <(v: string) => number> x\n        return f(\"hello world\")\n    }\n}\n\n"
  },
  {
    "path": "tests/cases/AsConstSatisfies.ts",
    "content": "let a = {} as const satisfies {};\n"
  },
  {
    "path": "tests/cases/Comments.ts",
    "content": "/*\nTests for comments in general.\n\nPull requests:\n\t- https://github.com/Microsoft/TypeScript-Sublime-Plugin/pull/307\n\t- https://github.com/Microsoft/TypeScript-Sublime-Plugin/pull/308\n*/\n\nvar /* comment */ x: string = \"yahoo\";\nvar x /* comment */: string = \"yahoo\";\nvar x: /* comment */ string = \"yahoo\";\nvar x: string /* comment */ = \"yahoo\";\nvar x: string = /* comment */ \"yahoo\";\nvar x: string = \"yahoo\" /* comment */;\nvar x: string = \"yahoo\"; /* comment */\n\nvar /* comment */ x: string = \"yahoo\"\nvar x /* comment */: string = \"yahoo\"\nvar x: /* comment */ string = \"yahoo\"\nvar x: string /* comment */ = \"yahoo\"\nvar x: string = /* comment */ \"yahoo\"\nvar x: string = \"yahoo\" /* comment */\n\n/**/ interface i extends i1, i2, i3 {}\ninterface /**/ i extends i1, i2, i3 {}\ninterface i /**/ extends i1, i2, i3 {}\ninterface i extends /**/ i1, i2, i3 {}\ninterface i extends i1 /**/, i2, i3 {}\ninterface i extends i1, /**/ i2, i3 {}\ninterface i extends i1, i2 /**/, i3 {}\ninterface i extends i1, i2, /**/ i3 {}\ninterface i extends i1, i2, i3 /**/ {}\n/**/ interface /**/ i /**/ extends /**/ i1, /**/ i2, /**/ i3 /**/ {}\n/**/ interface /**/ i /**/ extends /**/ i1 /**/ , /**/ i2 /**/ , /**/ i3 /**/ {}\n\n/**/class i extends c1,c2,c3{}\nclass/**/i extends c1,c2,c3{}\nclass i/**/extends c1,c2,c3{}\nclass i extends/**/c1,c2,c3{}\nclass i extends c1/**/,c2,c3{}\nclass i extends c1,/**/c2,c3{}\nclass i extends c1,c2/**/,c3{}\nclass i extends c1,c2,/**/c3{}\nclass i extends c1,c2,c3/**/{}\n/**/class/**/i/**/extends/**/c1,/**/c2,/**/c3/**/{}\n/**/class/**/i/**/extends/**/c1/**/,/**/c2/**/,/**/c3/**/{}\n\ninterface KeyValuePair/**/<K, V> extends Array<K | V> { 0: K; 1: V; }\ninterface KeyValuePair<K, V>/**/extends Array<K | V> { 0: K; 1: V; }\ninterface KeyValuePair<K, V> extends/**/Array<K | V> { 0: K; 1: V; }\ninterface KeyValuePair<K, V> extends Array/**/<K | V> { 0: K; 1: V; }\ninterface KeyValuePair<K, V> extends Array<K | V>/**/{ 0: K; 1: V; }\n\ninterface G/**/<extends_, _extends extends Function> {\n    f<V extends U>(x: V): V;\n}\ninterface G<extends_, _extends/**/extends Function> {\n    f<V extends U>(x: V): V;\n}\ninterface G<extends_, _extends extends/**/Function> {\n    f<V extends U>(x: V): V;\n}\n\nvar x/*comments*/=new String();\nvar x=/*comments*/new String();\nvar x= new/*comments*/String();\n\nvar x /* comments */ = new String();\nvar x = /* comments */ new String();\nvar x = new /* comments */ String();"
  },
  {
    "path": "tests/cases/FunctionMethodOverloads.ts",
    "content": "/* Function overload tests */\nexport function testFunctionOverload(p: number): new() => any\nexport function testFunctionOverload(p: string)\nexport function testFunctionOverload(p: string [])\nexport function testFunctionOverload(p: {})\nexport function testFunctionOverload(p: {a: A, b:B} | string [])\nexport function testFunctionOverload(p: any): new() => any {\n    throw new Error(\"\")\n}\n\nexport function testFunctionOverloadWithSemicolon(p: number): new () => any;\nexport function testFunctionOverloadWithSemicolon(p: string);\nexport function testFunctionOverloadWithSemicolon(p: string[]);\nexport function testFunctionOverloadWithSemicolon(p: {});\nexport function testFunctionOverloadWithSemicolon(p: { a: A, b: B } | string[]);\nexport function testFunctionOverloadWithSemicolon(p: any): new () => any {\n    throw new Error(\"\")\n}\n\n\nclass testClass {\n    /* Function overload tests */\n    public testMethodOverload(p: number): new() => any\n    public testMethodOverload(p: string)\n    public testMethodOverload(p: string [])\n    public testMethodOverload(p: {})\n    public testMethodOverload(p: {a: A, b:B} | string [])\n    public testMethodOverload(p: any): new() => any {\n        throw new Error(\"\")\n    }\n\n    public testMethodOverloadWithSemicolon(p: number): new () => any;\n    public testMethodOverloadWithSemicolon(p: string);\n    public testMethodOverloadWithSemicolon(p: string[]);\n    public testMethodOverloadWithSemicolon(p: {});\n    public testMethodOverloadWithSemicolon(p: { a: A, b: B } | string[]);\n    public testMethodOverloadWithSemicolon(p: any): new () => any {\n        throw new Error(\"\")\n    }\n}\n\ninterface I {\n    foo(): number\n    bar(): string;\n}\n\nabstract class C {\n    abstract foo()\n    abstract bar()\n}"
  },
  {
    "path": "tests/cases/FunctionMethodParameters.ts",
    "content": "/* Function parameter tests */\nfunction testFunctionParamType(\n    m1: string, \n    m2: {},\n    m3: any [],\n    m4: {a: A, b: B},\n    m5: () => void,\n    m6: (x:(string), y:[number, string]) => number,\n    m7: Array<number>,\n    m8: [number, number],\n    m9: {a: A, b: B} | [number, number], \n    m10: (() => void) | string[]): number {\n    return m6.length;\n}\n\nclass testClass {\n    /* method param type tests */\n    public testMethodParamType(\n        m1: string, \n        m2: {},\n        m3: any [],\n        m4: {a: A, b: B},\n        m5: () => void,\n        m6: (x:(string), y:[number, string]) => number,\n        m7: Array<number>,\n        m8: [number, number],\n        m9: {a: A, b: B} | [number, number], \n        m10: (() => void) | string[]): number {\n        return m6.length;\n    }\n}"
  },
  {
    "path": "tests/cases/FunctionMethodReturnTypes.ts",
    "content": "/* Function return type tests */\nexport function testFunctionReturnType1(): string [] { return [\"\"] }\nexport function testFunctionReturnType2(): {} { return {} }\nexport function testFunctionReturnType3(): {a: A, b: B} { return {a: {m: \"\" }, b: {m1: \"\" }} }\nexport function testFunctionReturnType4(): [number, number] { return [1, 1] }\nexport function testFunctionReturnType5(): Array<A> { return [{ m: \"\" }] }\nexport function testFunctionReturnType6(): new () => number { throw new Error(\"\"); }\nexport function testFunctionReturnType7(): (() => number) { throw new Error(\"\"); }\nexport function testFunctionReturnType8(): (() => number) [] { throw new Error(\"\"); }\nexport function testFunctionReturnType9(): (() => number) | (() => string) { throw new Error(\"\"); }\nexport function testFunctionReturnType10(): {a: A, b: B} [] { return [{a: {m: \"\" }, b: {m1: \"\" }}] }\nexport function testFunctionReturnType11(): number | string { return 1 }\nexport function testFunctionReturnType12(): number | string [] { return }\nexport function testFunctionReturnType13(): [number, number] | string [] { return [\"\"] }\n\nclass TestClass {\n    /* method return type tests */\n    public testMethodReturnType1(): string [] { return [\"\"] }\n    public testMethodReturnType2(): {} { return {} }\n    public testMethodReturnType3(): {a: A, b: B} { return {a: {m: \"\" }, b: {m1: \"\" }} }\n    public testMethodReturnType4(): [number, number] { return [1, 1] }\n    public testMethodReturnType5(): Array<A> { return [{ m: \"\" }] }\n    public testMethodReturnType6(): new () => number { throw new Error(\"\"); }\n    public testMethodReturnType7(): (() => number) { throw new Error(\"\"); }\n    public testMethodReturnType8(): (() => number) [] { throw new Error(\"\"); }\n    public testMethodReturnType9(): (() => number) | (() => string) { throw new Error(\"\"); }\n    public testMethodReturnType10(): {a: A, b: B} [] { return [{a: {m: \"\" }, b: {m1: \"\" }}] }\n    public testMethodReturnType11(): number | string { return 1 }\n    public testMethodReturnType12(): number | string [] { return }\n    public testMethodReturnType13(): [number, number] | string [] { return [\"\"] }\n}"
  },
  {
    "path": "tests/cases/Issue10.ts",
    "content": "enum Hello {\r\n    A,\r\n    B\r\n}\r\n\r\nclass World {\r\n    normal() {\r\n        let x = 5;\r\n        console.log(\"hello\");\r\n    }\r\n\r\n    [Hello.A]() {\r\n        let x = 5;\r\n        console.log(\"hello\");\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue1006.ts",
    "content": "const a = /.*/v;\n"
  },
  {
    "path": "tests/cases/Issue11.ts",
    "content": "for (var i=0; i<10; i++) {\r\n    var x = 1;\r\n    var p = \"\";\r\n}"
  },
  {
    "path": "tests/cases/Issue110.ts",
    "content": "let number1 = 0x100   \nlet number2 = 14e15\nlet number3 = 10.42e41.5 \nlet number4 = 4\nlet number5 = 51.4\nlet number6 = 12.4E10.2\nlet number7 = 14.6e+10\nlet number8 = 12E4\nlet number9 = 10e10\nlet number10 = 14e14.5\nlet number11 = 12E-10\nlet number12 = 13.4e-14.2\nlet number13 = 14.12\nlet number14 = 10.2E+4\nlet number6 = 5.00567789e+2\nlet i = 1, j = 1e3\n\n/*\n\n  Testing comments\n*/"
  },
  {
    "path": "tests/cases/Issue112.ts",
    "content": "return new vscode.Variable(property.name, displayValue, variablesReference);\r\nangular.module('app')\r\nthis._connections.delete(connection.id);\r\nthis._waitingConnections.delete(connection);"
  },
  {
    "path": "tests/cases/Issue114.ts",
    "content": "export type BreakpointType = 'line' | 'call' | 'return' | 'exception' | 'conditional' | 'watch'\r\ninterface Test {\r\n  type: 'line' | 'call' | 'return';\r\n}"
  },
  {
    "path": "tests/cases/Issue115.ts",
    "content": "class Foo {\r\n    bar(a: Foo, b: string) { }\r\n}\r\n\r\nfunction foo(a: Foo, b: string) { }\r\n\r\nconst bar = function (a: Foo, b: string) { }\r\n\r\nconst baz = (a: Foo, b: string) => { };\r\n\r\nconst qux = {\r\n    bar(a: Foo, b: string) { },\r\n    set bar2(x: string) { }\r\n}"
  },
  {
    "path": "tests/cases/Issue119.ts",
    "content": "class x {\r\n    public SomeMethod() {\r\n    }\r\n    public OtherMethod() { }\r\n\r\n    public SomeMethod = () => { }\r\n}"
  },
  {
    "path": "tests/cases/Issue124.ts",
    "content": "/*\n\tSolving Issue #124, #80, #81\n\tAdding capability of ternary strings.\n*/\n\nlet a = true ? true : true;  \nlet b = true ? true : `this is ${} highlighted`\nlet c = true ? `hello` : `this ${DEPENDENCY_SEPARATOR}${moduleName} is highlighted`;\n\nvar newVar = a ? (b == `hello`) : true;\n\nvar debArch = arch === 'x64' ? 'amd64' : 'i386';\n\n/*\n\tComment\n*/"
  },
  {
    "path": "tests/cases/Issue131.ts",
    "content": "foo.namespace\r\nfoo.any\r\nvar number, string;\r\nnumber\r\nstring"
  },
  {
    "path": "tests/cases/Issue133.ts",
    "content": "interface I {\r\n  $fieldName: string;\r\n  $getFieldViewCtrl: () => FieldView;\r\n}"
  },
  {
    "path": "tests/cases/Issue135.ts",
    "content": "import http = require('http');"
  },
  {
    "path": "tests/cases/Issue139.ts",
    "content": "new new Proxy(function fn() {\r\n    console.log(this.constructor.name);\r\n}, {});"
  },
  {
    "path": "tests/cases/Issue142.ts",
    "content": "class x {\r\n  abc = () =>\r\n    this.func(this.arr.concat(['one 1', 'two 2', 'three 3']));\r\n}\r\n"
  },
  {
    "path": "tests/cases/Issue143.ts",
    "content": "import {Component, HostListener, Directive} from 'angular2/core';\r\n\r\n@Directive({selector: 'button[counting]'})\r\nclass CountClicks {\r\n  numberOfClicks = 0;\r\n  @HostListener('click', ['$event.target']) onClick(btn) {\r\n    console.log(\"button\", btn, \"number of clicks:\", this.numberOfClicks++);\r\n  }\r\n}\r\n@Component({\r\n  selector: 'my-app',\r\n  template: `<button counting>Increment</button>`,\r\n  directives: [CountClicks]\r\n})\r\nexport class AppComponent {\r\n  constructor() { console.clear(); }\r\n}"
  },
  {
    "path": "tests/cases/Issue146.ts",
    "content": "function foo() {\r\n    return 'bar';\r\n}\r\n\r\nfunction* foo() {\r\n    yield 'bar';\r\n    yield* ['bar'];\r\n}"
  },
  {
    "path": "tests/cases/Issue148.ts",
    "content": "class Test {\r\n    constructor(\r\n        @inject private test: string,\r\n        @inject(\"test\") private test2: string,\r\n        @inject(\"test\") test3: string,\r\n        public test4: string\r\n    ) { }\r\n}"
  },
  {
    "path": "tests/cases/Issue149.ts",
    "content": "export function fn(s: string): new() => View\nexport function fn(s: string)\nexport function fn(n: number)\nexport function fn(s: any) {\n    return \"\";\n}\n\nexport function fn(s: string): new () => View;\nexport function fn(s: string);\nexport function fn(n: number);\nexport function fn(s: any) {\n    return \"\";\n}"
  },
  {
    "path": "tests/cases/Issue152.ts",
    "content": "var node;\r\nfor(var i; i< 45;i++) {\r\n    node = 234;\r\n\r\n    node.a = 122;\r\n    node.b += 122;\r\n    node.b += '1'+1+'2';\r\n}"
  },
  {
    "path": "tests/cases/Issue153.ts",
    "content": "import {Vector3, Vector} from 'vectors';\r\n\r\n/**\r\n * A simple 3x3 matrix structure.\r\n * \r\n * @export\r\n * @class Matrix3x3\r\n */\r\nclass Matrix {\r\n    public M11 : number;\r\n    public M12 : number;\r\n    public M13 : number;\r\n    public M21 : number;\r\n    public M22 : number;\r\n    public M23 : number;\r\n    public M31 : number;\r\n    public M32 : number;\r\n    public M33 : number;\r\n\r\n\r\n    /**\r\n     * Gets a column as a new vector.\r\n     * \r\n     * @param {number} index The index of the column (0 .. 2).\r\n     * @returns {Vector3} A vector representing the column.\r\n     */\r\n    public getColumn_Breaks(index : number) : Vector3 {\r\n        if (index == 0) {\r\n            return new Vector3(this.M11, this.M21, this.M31);\r\n        } else if (index == 1) {\r\n            return new Vector3(this.M12, this.M22, this.M32);\r\n        } else if (index == 2) {\r\n            return new Vector3(this.M13, this.M23, this.M33);\r\n        } else {\r\n            throw new RangeError('Invalid matrix 3x3 column index: ' + index);\r\n        }\r\n    }\r\n\r\n    /**\r\n     * Gets a column as a new vector.\r\n     * \r\n     * @param {number} index The index of the column (0 .. 2).\r\n     * @returns {Vector3} A vector representing the column.\r\n     */\r\n    public getColumn_Works(index : number) : Vector {\r\n        if (index == 0) {\r\n            return new Vector(this.M11, this.M21, this.M31);\r\n        } else if (index == 1) {\r\n            return new Vector(this.M12, this.M22, this.M32);\r\n        } else if (index == 2) {\r\n            return new Vector(this.M13, this.M23, this.M33);\r\n        } else {\r\n            throw new RangeError('Invalid matrix 3x3 column index: ' + index);\r\n        }\r\n    }\r\n\r\n}"
  },
  {
    "path": "tests/cases/Issue154.ts",
    "content": "class TestCase {\r\n    ['foo']() {\r\n        this.registerComponent('foo-bar');\r\n    }\r\n}\r\n\r\nclass TestCase2 {\r\n    foo() {\r\n        this.registerComponent('foo-bar');\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue155.ts",
    "content": "matchQuery.find().then(function (results) {\r\n        for (i=0;i<results.length;i++){\r\n            notificationQuery.find().then(function (notifications){\r\n                var j;\r\n                for (j=0;j<notifications.length;j++){\r\n                    console.log('safeDeleteRoute notification result'+j);\r\n                    notifications[j].destroy();\r\n                }\r\n                res.destroy();\r\n            });\r\n        }\r\n    },function(error){\r\n        alert(\"Error: \"+error.code + \" \" + error.message);\r\n    });"
  },
  {
    "path": "tests/cases/Issue156.ts",
    "content": "class Test {\n\tmmm(p1: string | {}, p2: string) \n\t{\n        \n\t}\n}"
  },
  {
    "path": "tests/cases/Issue157.ts",
    "content": "const items = new Set<string>([ 'foo', 'bar' ]);\r\nitems.delete('foo');"
  },
  {
    "path": "tests/cases/Issue158.ts",
    "content": "class Test\r\n{\r\n    public constructor()\r\n    {\r\n        for (let it=0; it<10; it++)\r\n        {\r\n        } \r\n    }\r\n\r\n    private doSomething()\r\n    {\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue161.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\r\nlet root: React.ReactElement<{}>;\r\nlet page: PageName;\r\nif (isViaPage) {\r\n  root = <ViaView/>;\r\n  page = 'via';\r\n}"
  },
  {
    "path": "tests/cases/Issue163.ts",
    "content": "const o = {\r\n    async f() {\r\n\r\n    }\r\n};"
  },
  {
    "path": "tests/cases/Issue166.ts",
    "content": "type x = string | \"aaa\" | \"bbb\" | \"ccc\" | number;\r\ntype x1 = string |\r\n    \"aaa\" |\r\n    \"bbb\" | \"ccc\" | number;\r\ntype x2 = string | /*comment*/ \"aaa\" | \"bbb\" | \"ccc\" | number; /*comment*/\r\ntype x3 = string | \"aaa\" | //comment\r\n    \"bbb\" | \"ccc\" | number; //comment"
  },
  {
    "path": "tests/cases/Issue171.ts",
    "content": "class c {\r\n    constructor \r\n    (\r\n        private parameters: {\r\n            stringContent: string;\r\n            minLength: number;\r\n            maxLength: number,\r\n            validationErrorMessage: string\r\n        }) {\r\n\r\n    }\r\n    private x: number = Date.now() // TODO: momentjs?\r\n    private link_visits_counter: number = 0;\r\n}\r\n\r\nfunction foo() {\r\n  new c\r\n  ({\r\n      stringContent: \"something\",\r\n      minLength: 1,\r\n      maxLength: 5,\r\n      validationErrorMessage: \"something else\"\r\n  });\r\n}"
  },
  {
    "path": "tests/cases/Issue172.ts",
    "content": "let f = async (x) => {};\r\nlet f2 = async function(x) {};"
  },
  {
    "path": "tests/cases/Issue175.ts",
    "content": "var $ = '';\r\nvar $foo = '';\r\n"
  },
  {
    "path": "tests/cases/Issue177.ts",
    "content": "() => (/s/);\r\n() => /s/;"
  },
  {
    "path": "tests/cases/Issue178.ts",
    "content": "const a: { [key: string]: () => string } = null;\r\nconst b: { [key: string]: [string, () => string] } = null;\r\nconst c = \"foobar\";\r\nconst d = 5;\r\nconst e: any = null;"
  },
  {
    "path": "tests/cases/Issue180.ts",
    "content": "if (typeof oSettings.aanFeatures.f != 'undefined')\r\n{\r\n    var n = oSettings.aanFeatures.f;\r\n    for ( i=0, iLen=n.length ; i<iLen ; i++ )\r\n    {\r\n        $('input', n[i]).val( '' );\r\n    }\r\n}\r\n\r\n/* some comment\r\n *\r\n */\r\nfor ( i=0, iLen=oSettings.aoPreSearchCols.length ; i<iLen ; i++)\r\n{\r\n    oSetttings.something = \"\";\r\n}\r\n\r\n/* redraw */"
  },
  {
    "path": "tests/cases/Issue182.ts",
    "content": "if (this.PListCells.length<value && (!this.ListList || !this.DelayedUpdate))\r\n{\r\n}"
  },
  {
    "path": "tests/cases/Issue183.ts",
    "content": "class Sample2\r\n{\r\n    constructor()\r\n    {\r\n    }\r\n\r\n    callback = (): void =>\r\n    {\r\n    }\r\n\r\n    public method1(): void\r\n    {\r\n    }\r\n    private method2 () : number\r\n    {\r\n        return 2;\r\n    }\r\n    method3 () : string\r\n    {\r\n        return \"method3\";\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue186.ts",
    "content": "function myFunction(param1, param2, number, string, boolean) {\n  let y = (number) => {\n    console.log(param1);\n  }\n  console.log(param1);\n  console.log(param1 + number);\n  console.log(string);\n  console.log(boolean);\n  let x = param1 ? 2 : param2;\n}"
  },
  {
    "path": "tests/cases/Issue187.ts",
    "content": "const trim = module.exports = str => trim.trailing(trim.leading(str));\r\n\r\nconst trim = module.exports = function(str) {\r\n    return  trim.trailing(trim.leading(str));\r\n}"
  },
  {
    "path": "tests/cases/Issue191.ts",
    "content": "class Thing {\n    constructor(public content: string){\n        var prop = Q.defer<boolean>();\n        this.store = new Data();\n        gaze(path.join(this.content, \"**/*.json\"), (err, watch) => {\n            process.stuout.write(`Watching for changes in:`);\n        })\n    };\n}\n\nclass Thing<T, U> {\n    constructor(public content: string){\n        var prop = Q.defer<boolean>();\n        this.store = new Data();\n        gaze(path.join(this.content, \"**/*.json\"), (err, watch) => {\n            process.stuout.write(`Watching for changes in:`);\n        })\n    };\n}\n"
  },
  {
    "path": "tests/cases/Issue193.ts",
    "content": "﻿function Main_Функция(s: string)\r\n{\r\n}\r\n\r\nfunction Функция_Main(s: string)\r\n{\r\n}\r\n\r\nlet item = \"value1\";\r\nlet элемент = \"value2\";"
  },
  {
    "path": "tests/cases/Issue197.ts",
    "content": " export class sampleClass  {\r\n        public equipmentTypeList: string[] = [\"FAX\", \"OFFICE PHONE\"];\r\n        public pbxEquipmentType = \"FAX\";\r\n        public spliceRightStripName = \"TE\"; \r\n        public cablePairStatusValues: any[] =  \r\n            [       \r\n                { statusText: \"Assigned\" },\r\n                { statusText: \"Faulty\" }, \r\n                { statusText: \"Not in Use\" },\r\n            ];\r\n        public cablePairStatusValueForAssigned = \"Assigned\";\r\n        public cablePairStatusValueForFaulty = \"Faulty\";\r\n        public phoneCircuitType = \"Phone\";\r\n }"
  },
  {
    "path": "tests/cases/Issue198.ts",
    "content": "let a = 0, b = 0, c = 0;\r\nlet value = a / b\r\n    / c;\r\nlet value2 = a / b\r\n    / c * a + b / a / b / c;\r\nlet value2 = a / b / c * a + b / a / b / c;"
  },
  {
    "path": "tests/cases/Issue200.ts",
    "content": "\r\n\r\ndeclare module 'goog:goog.i18n.NumberFormatSymbols_en_TT' {\r\n  import alias = lool.clutz.goog.i18n.NumberFormatSymbols_en_TT;\r\n  export default alias;\r\n}"
  },
  {
    "path": "tests/cases/Issue202.tsx",
    "content": "interface Test<T> {\r\n    test: T;\r\n}\r\n\r\ninterface Props {\r\n    prop: Test<T>;\r\n}\r\n\r\nclass Whatever {\r\n}"
  },
  {
    "path": "tests/cases/Issue203.ts",
    "content": "var [] = 'fafa'.replace('blah');\r\nconsole.log('hello');\r\n\r\nvar [] = 'fafa'.replace('<blah>');\r\nconsole.log('hello');\r\nwhile { while() {} }"
  },
  {
    "path": "tests/cases/Issue206.ts",
    "content": "interface A {}\r\ninterface B {}\r\ninterface C {}\r\n\r\ntype D = A | B | C\r\ntype D1 = A\r\n    | B\r\n    | C\r\ntype D3 = \r\n      A\r\n    | B\r\n    | C\r\ntype D2\r\n    = A\r\n    | B\r\n    | C\r\n\r\ntype E = 'e1' | 'e2' | 'e3'\r\ntype E1 = 'e1' \r\n    | 'e2' \r\n    | 'e3'\r\ntype E2 = \r\n      'e1' \r\n    | 'e2' \r\n    | 'e3'\r\ntype E3 \r\n    = 'e1' \r\n    | 'e2' \r\n    | 'e3'\r\n\r\ntype F = A & B & C\r\ntype F1 = A\r\n    & B\r\n    & C\r\ntype F2 =\r\n      A\r\n    & B\r\n    & C\r\ntype F3\r\n    = A\r\n    & B\r\n    & C"
  },
  {
    "path": "tests/cases/Issue208.ts",
    "content": "var someVar = new Thing<number, string>('data');\nvar someVar = makeThing<number, string>('data');\n\nclass MyClass {\n    static someProp = new Thing<number, string>('data');\n    static someProp = makeThing<number, string>('data');\n\n    someProp = new Thing<number, string>('data');\n    someProp = makeThing<number, string>('data');\n}"
  },
  {
    "path": "tests/cases/Issue212.ts",
    "content": "let from = neki;\r\nfrom = a; // is a variable and should be in white color like other variables\r\n\r\nexports.myVar = async (ctx, next) => {} // this is all in white but exports and async should be e.g. in red or blue\r\n\r\nt.me = 1;\r\nt.is = 2; // `is` is in blue but should be the same color as the above (1)\r\nt.in = 3; // `in` is in blue but should be the same color as the above (1)\r\nt.of = 4; // `of` is in blue but should be the same color as the above (1)"
  },
  {
    "path": "tests/cases/Issue215.ts",
    "content": "function test() {\r\n    for (var i=0 ; i<l ; ++i) {\r\n\r\n    }\r\n}\r\n\r\nfor (var i=0 ; i<l ; ++i) {\r\n\r\n}"
  },
  {
    "path": "tests/cases/Issue216.ts",
    "content": "class MyType\r\n{\r\n    public myFunction = (): void =>\r\n    {\r\n        // From this point on the syntax highlighting will be confused as to where it is.\r\n        var myVar = 5;\r\n        console.log(\"Hello there!\");\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue217.ts",
    "content": "export class StatusSelector {\r\n  @Output() select = new EventEmitter()\r\n  statuses = [\"started\", \"completed\"]\r\n}\r\n\r\nexport class StatusSelector2 {\r\n  @Output() select = new EventEmitter();\r\n  statuses = [\"started\", \"completed\"]\r\n}"
  },
  {
    "path": "tests/cases/Issue218.ts",
    "content": "class A {\r\n    foo(a, b) {\r\n    }\r\n    [foo](a, b) {\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue219.ts",
    "content": "const { \r\n    map, \r\n    coordinate \r\n} = this.props\r\nif (!map) return;\r\nvar marker;"
  },
  {
    "path": "tests/cases/Issue22.ts",
    "content": "app.get('/test/', (req, res) => {\r\n});"
  },
  {
    "path": "tests/cases/Issue221.ts",
    "content": "class syntaxHighlightBug {\r\n\r\n    variable = \r\n    {\"example\":1};\r\n\r\n    public wronglyHighlitedCode() {\r\n        var a = 1;\r\n        return; \r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue223.ts",
    "content": "for (i = 0; i<len ; i++) {\r\n  if (foo) {\r\n    bar = true \r\n    break \r\n  }\r\n}"
  },
  {
    "path": "tests/cases/Issue226.ts",
    "content": "async function x() {\r\n\r\n}\r\nconst y = async () => { }"
  },
  {
    "path": "tests/cases/Issue230.ts",
    "content": "// Note: `new Date` without parenthesis (`new Date()`)\r\nctrl.filter(\"dateFilter\", () => (input: mycivis.IAll[], date: Date = new Date) => input.filter((value, index, array) => {\r\n    let date2 = value.date || (value.day) ? moment(`${value.day} ${value.time}`, \"YYYY-MM-DD HH:mm\").toDate() : next_wday(value.wday);\r\n\r\n    return moment(date).format(\"DD/MMM/YYYY\") === moment(date2).format(\"DD/MMM/YYYY\");\r\n}));"
  },
  {
    "path": "tests/cases/Issue232.ts",
    "content": "for( let [k, component] of this.components){\r\n    let bounds = component.view.getBounds(); /// <= not highlighted, nor anything after this\r\n}"
  },
  {
    "path": "tests/cases/Issue235.ts",
    "content": "class A {\r\n    @Route.GET('/*')\r\n    get(q: Request, s: Response): void {\r\n        s.sendFile();\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue236.ts",
    "content": "class Test {\r\n    public before() {\r\n        // ...\r\n    }\r\n\r\n    public [Symbol.iterator]() {\r\n        // ...\r\n    }\r\n\r\n    public after() {\r\n        // ...\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue237.ts",
    "content": "export type Test = string // wrong comment color\r\n                          // should be this"
  },
  {
    "path": "tests/cases/Issue239.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\r\n const test = (true) ? <p>Broken Color</p> : <p>Also Broken Color</p> "
  },
  {
    "path": "tests/cases/Issue241.ts",
    "content": "function f(): () => number {\r\n    const x = 0;\r\n}\r\nfunction foo(): [number, () => number] {\r\n    const x = 0;\r\n}\r\nfunction f(): () => number {\r\n    const x = 0;\r\n}\r\nfunction f2(): () => {x: number }{\r\n    const x = 0;\r\n}\r\nfunction foo2(): [number, () => { x: number }] {\r\n    const x = 0;\r\n}"
  },
  {
    "path": "tests/cases/Issue243.ts",
    "content": "'use strict';\r\n\r\n        var pieces = [];\r\n        var numeration = [];\r\n\r\n        for (var i in pieces) {\r\n            switch (true) {\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n                case /^\\\"?Accession\\\"?/.test(pieces[i]):\r\n                    numeration[0] = i;\r\n                    break;\r\n            }\r\n        }\r\n"
  },
  {
    "path": "tests/cases/Issue244.ts",
    "content": "a.withLatestFrom(axis === 'x' ? initialX : initialY)\r\n .map(x => undefined)\r\n .switch()\r\n .publish().refCount();\r\n\r\nconst targetX = targetSideObs('x');\r\nconst targetY = targetSideObs('y');"
  },
  {
    "path": "tests/cases/Issue247.tsx",
    "content": "@dec<{}>()\r\nclass Test {\r\n}\r\n"
  },
  {
    "path": "tests/cases/Issue248.ts",
    "content": "class C1 {\r\n    m1 = 1;\r\n    static s1() {\r\n        return [() => (new this).m1];\r\n    }\r\n}\r\nclass C2 {\r\n    m1 = 1;\r\n    static s1() {\r\n        return [() => (new this).m1];\r\n    }\r\n}\r\nclass C3 {\r\n    m1 = 1;\r\n    static s1() {\r\n        return [() => (new this).m1];\r\n    }\r\n}\r\nclass C4 {\r\n    m1 = 1;\r\n    static s1() {\r\n        return [() => (new this).m1];\r\n    }\r\n}\r\nclass C5 {\r\n    m1 = 1;\r\n    static s1() {\r\n        return [() => (new this).m1];\r\n    }\r\n}\r\nclass C6 {\r\n    m1 = 1;\r\n    static s1() {\r\n        return [() => (new this).m1];\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue249.ts",
    "content": "const selectDictionary = (dictionaries: StoredDictionaries, lang:string) => {\r\n\r\n}\r\n\r\nfunction selectDictionary(dictionaries: StoredDictionaries, lang:string) {\r\n\r\n}"
  },
  {
    "path": "tests/cases/Issue250.ts",
    "content": "/** Meta-part that defins a Form */\r\nexport class FormType extends Type {\r\n\r\n  /** @internal Original FormType instance */\r\n  static Original = function () {\r\n    let type = new FormType;\r\n\r\n    // define embed field\r\n    type.defineField(DesignID.Embed, new BooleanAtom(false));\r\n\r\n    // define plan choice\r\n    type.defineField(DesignID.Plan, PlanChoice.Original);\r\n\r\n    // define fields list\r\n    let fields =\r\n      type.defineField(DesignID.Fields, new Ordering(new FieldDesign));\r\n    // embed field list\r\n    fields.embed = true;\r\n\r\n    return type;\r\n  } ();\r\n}"
  },
  {
    "path": "tests/cases/Issue251.ts",
    "content": "for(var j=0; (j<rows && l<num); j++) {\r\n  for(var k = 0; (k<cols && l<num); k++){\r\n    output.push( {h, w, x: k*w, y: h*j, file: file.file});\r\n    l++;\r\n  }\r\n}"
  },
  {
    "path": "tests/cases/Issue252.ts",
    "content": "function getPage(p, base) {\r\n    if (filename == base + \"index\") { var route = \"/\" + base }\r\n}\r\n"
  },
  {
    "path": "tests/cases/Issue262.ts",
    "content": "for (let a = 1; a < 10; a++) {\n    for (let b = 1; b < a; b++) {\n        \n    }\n}"
  },
  {
    "path": "tests/cases/Issue264.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\r\n<List>\r\n  <div >\r\n  </div>\r\n</List >"
  },
  {
    "path": "tests/cases/Issue276.ts",
    "content": "/**\r\n * @param {string} value\r\n * @param {string[]} arrayValue\r\n * @param {string} [optionalValue]\r\n */\r\nfunction test(value: string, arrayValue: string[], optionalValue?: string) {\r\n\r\n}"
  },
  {
    "path": "tests/cases/Issue28.ts",
    "content": "\n/* Testing octals */\n\nvar x = 123;\nvar y = 0x123;\nvar z = 0b10101;\nvar z = 0B00000;\nvar j = 0o474774;\nvar w = 0O767;\n"
  },
  {
    "path": "tests/cases/Issue280.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\nclass c {\n private renderForecastsTable() {\n     let forecasts = this.props.forecasts.map(forecast => {\n     return forecast.dateFormatted +\n        forecast.temperatureC +\n        forecast.temperatureF +\n        forecast.summar;\n    });\n    return <table className=\"table\">\n    <thread>\n    </thread>\n    <tbody>\n    {\n      this.props.forecasts.map(forecast => {\n     return forecast.dateFormatted +\n        forecast.temperatureC +\n        forecast.temperatureF +\n        forecast.summar;\n    }) \n    }\n    </tbody>\n    </table>;\n }\n\n}"
  },
  {
    "path": "tests/cases/Issue283.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx \r\nimport * as React from 'react';\r\n\r\nexport default class Home extends React.Component<any, void> {\r\n    public render() {\r\n        return <div>\r\n            <h1>Hello, world!</h1>\r\n            <p>Welcome to your new single-page application, built with:</p>\r\n            <ul>\r\n                <li><a href='https://get.asp.net/'>ASP.NET Core</a> and <a href='https://msdn.microsoft.com/en-us/library/67ef8sbd.aspx'>C#</a> for cross-platform server-side code</li>\r\n                <li><a href='https://facebook.github.io/react/'>React</a>, <a href='http://redux.js.org'>Redux</a>, and <a href='http://www.typescriptlang.org/'>TypeScript</a> for client-side code</li>\r\n                <li><a href='https://webpack.github.io/'>Webpack</a> for building and bundling client-side resources</li>\r\n                <li><a href='http://getbootstrap.com/'>Bootstrap</a> for layout and styling</li>\r\n            </ul>\r\n            <p>To help you get started, we've also set up:</p>\r\n            <ul>\r\n                <li><strong>Client-side navigation</strong>. For example, click <em>Counter</em> then <em>Back</em> to return here.</li>\r\n                <li><strong>Webpack dev middleware</strong>. In development mode, there's no need to run the <code>webpack</code> build tool. Your client-side resources are dynamically built on demand. Updates are available as soon as you modify any file.</li>\r\n                <li><strong>Hot module replacement</strong>. In development mode, you don't even need to reload the page after making most changes. Within seconds of saving changes to files, rebuilt React components will be injected directly into your running application, preserving its live state.</li>\r\n                <li><strong>Efficient production builds</strong>. In production mode, development-time features are disabled, and the <code>webpack</code> build tool produces minified static CSS and JavaScript files.</li>\r\n                <li><strong>Server-side prerendering</strong>. To optimize startup time, your React application is first rendered on the server. The initial HTML and state is then transferred to the browser, where client-side code picks up where the server left off.</li>\r\n            </ul>\r\n        </div>;\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue285.ts",
    "content": "let model = {\r\n            links: {\r\n                new: \"sample\"\r\n            },\r\n        };\r\n"
  },
  {
    "path": "tests/cases/Issue288.ts",
    "content": "// Issue 288: \"function\" in \"functionName\" gets highlighted.\n// Fixed in pull request #289.\n\nfunction Name(){\n}\nvar AnotherName = function(){\n}\n\nexport function eName(){\n}\nexport var eAnotherName = function(){\n}\n\nvar functionName=1;\nfunctionName=1;\n\nexport var functionName2=1;\n\nvar exportName=\"hello\";\nexportName2=\"hello\";\n\nvar returnName=1;\nreturnName+=1;\n"
  },
  {
    "path": "tests/cases/Issue292.ts",
    "content": "    const shellOptions: IOptions = {\r\n        filesToOpen,\r\n        filesToCreate,\r\n        filesToDiff\r\n    };\r\n    const a = {\r\n        filesToOpen: filesToOpen,\r\n        filesToCreate: filesToCreate,\r\n        filesToDiff: filesToDiff\r\n    }"
  },
  {
    "path": "tests/cases/Issue294.ts",
    "content": "switch (0) {\r\n    case 0: {\r\n        const zero = 0;\r\n        return zero;\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue3.ts",
    "content": "let regex = /**/ /foo/;"
  },
  {
    "path": "tests/cases/Issue304.ts",
    "content": "export const EditorPanel = connect(\r\n    (state: Immutable<AppState>): Object => ( {\r\n        edditorState: (state.editors[state.activeTab]),\r\n        macroSettingsOpen: state.macroSettingsOpen,\r\n    }),\r\n    (dispatch: Dispatch): Object => ({\r\n        onchange(next: EditorSDtate): void { dispatch(actions) }\r\n    })\r\n)"
  },
  {
    "path": "tests/cases/Issue305.ts",
    "content": "abstract class Base {\r\n    protected abstract topic: string\r\n    constructor(protected wire: Transport, protected token?: string, readonly bar?: boolean) { }\r\n}"
  },
  {
    "path": "tests/cases/Issue307.ts",
    "content": "class Test {\r\n  method() {\r\n    const obj = { a: 'hello' };\r\n    const {\r\n      a\r\n    } = obj;\r\n    const x = 'world';\r\n  }\r\n}"
  },
  {
    "path": "tests/cases/Issue314.ts",
    "content": "let x = a ? b as X : c;\r\nlet y = 123;"
  },
  {
    "path": "tests/cases/Issue318.ts",
    "content": "    this.Then(\r\n        /^display prompt in branch \"([^\"]*)\"$/,\r\n        async function (branchName) {\r\n            const expected = application.prompt(branchName);\r\n            const actual = await application.getOnceOut();\r\n            expect(actual).to.be.equal(expected);\r\n        }\r\n    );\r\n"
  },
  {
    "path": "tests/cases/Issue32.ts",
    "content": "/*\n\tTesting Isuue 32: Adding constructor as a support.type keword\n*/\n\ninterface NewInterface{\n\tcurrentData: Data;\n\tsetVal(d: Data)\n}\n\n\nclass NewClass implements NewInterface {\n\tcurrentData: Data;\n\tsetVal(d: Data){\n\t\tthis.currentData = d;\n\t}\n\tconstructor(m: number, n: string){}\n}\n\n/*\n\tTesting comments\n*/"
  },
  {
    "path": "tests/cases/Issue321.ts",
    "content": "export abstract class ExpressionContainer implements debug.IExpressionContainer {\r\n    public getChildren(debugService: debug.IDebugService): TPromise<debug.IExpression[]> {\r\n        if (!this.cacheChildren || !this.children) {\r\n            const session = debugService.activeSession;\r\n            // only variables with reference > 0 have children.\r\n            if (!session || this.reference <= 0) {\r\n                this.children = TPromise.as([]);\r\n            } else {\r\n\r\n                // Check if object has named variables, fetch them independent from indexed variables #9670\r\n                this.children = (!!this.namedVariables ? this.fetchVariables(session, undefined, undefined, 'named') : TPromise.as([])).then(childrenArray => {\r\n                    // Use a dynamic chunk size based on the number of elements #9774\r\n                    let chunkSize = ExpressionContainer.BASE_CHUNK_SIZE;\r\n                    while (this.indexedVariables > chunkSize * ExpressionContainer.BASE_CHUNK_SIZE) {\r\n                        chunkSize *= ExpressionContainer.BASE_CHUNK_SIZE;\r\n                    }\r\n\r\n                    if (this.indexedVariables > chunkSize) {\r\n                        // There are a lot of children, create fake intermediate values that represent chunks #9537\r\n                        const numberOfChunks = Math.ceil(this.indexedVariables / chunkSize);\r\n                        for (let i = 0; i < numberOfChunks; i++) {\r\n                            const start = this.startOfVariables + i * chunkSize;\r\n                            const count = Math.min(chunkSize, this.indexedVariables - i * chunkSize);\r\n                            childrenArray.push(new Variable(this, this.reference, `[${start}..${start + count - 1}]`, '', null, count, null, true, start));\r\n                        }\r\n\r\n                        return childrenArray;\r\n                    }\r\n\r\n                    const start = this.getChildrenInChunks ? this.startOfVariables : undefined;\r\n                    const count = this.getChildrenInChunks ? this.indexedVariables : undefined;\r\n                    return this.fetchVariables(session, start, count, 'indexed')\r\n                        .then(variables => arrays.distinct(childrenArray.concat(variables), child => child.name));\r\n                });\r\n            }\r\n        }\r\n\r\n        return this.children;\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue322.ts",
    "content": "export enum TokenType {\r\n    StartCommentTag,\r\n    Comment,\r\n    EndCommentTag,\r\n    StartTagOpen,\r\n    StartTagClose,\r\n    StartTagSelfClose,\r\n    StartTag,\r\n    EndTagOpen,\r\n    EndTagClose,\r\n    EndTag,\r\n    DelimiterAssign,\r\n    AttributeName,\r\n    AttributeValue,\r\n    StartDoctypeTag,\r\n    Doctype,\r\n    EndDoctypeTag,\r\n    Content,\r\n    Whitespace,\r\n    Unknown,\r\n    Script,\r\n    Styles,\r\n    EOS\r\n}"
  },
  {
    "path": "tests/cases/Issue326.ts",
    "content": "class Bar extends getFoo(\"baz\") {}"
  },
  {
    "path": "tests/cases/Issue334.ts",
    "content": "var Backbone= require(\"backbone\");\r\nvar SearchModel= require(\"./../search/models/SearchModel\");\r\nvar ResultsContainerModel= require(\"./ResultsContainerModel\");\r\n\r\nvar _PROP_SEARCH_ = \"SEARCH\";\r\nvar _PROP_RESULTS_CONTAINER_   = \"SERCH_RESULTS\";\r\n\r\nvar PageModel= Backbone.Model.extend({\r\n\r\n    defaults: function() {\r\n        var defaults= {};\r\n        defaults[_PROP_SEARCH_]= new SearchModel();\r\n        defaults[_PROP_RESULTS_CONTAINER_]= new ResultsContainerModel();\r\n        return defaults;\r\n    },\r\n\r\n}, {\r\n    propSearch: _PROP_SEARCH_,\r\n    propResultsContainer: _PROP_RESULTS_CONTAINER_\r\n});\r\n\r\nmodule.exports= PageModel;"
  },
  {
    "path": "tests/cases/Issue335.ts",
    "content": "class A1 {\n\tb() {\n\t\tlet d;\n\t\td.default = 1;\n\t}\n\n\tprivate static c() {\n\t}\n}\n\nclass A2 {\n\tb() {\n\t\tlet d;\n\t\td.case = 1\n\t}\n\n\tprivate static c() {\n\t}\n}\n\nclass A3 {\n\tb() {\n\t\tlet d\n\t\td.default = 1\n\t\tswitch (d.default) {\n\t\t\tcase 1:\n\t\t\tcase 2:\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tprivate static c() {\n\t}\n}\n\nclass A4 {\n\tb() {\n\t\tlet d\n\t\td.case = 1\n\t\tswitch (d.default) {\n\t\t\tcase 1:\n\t\t\tcase 2:\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tprivate static c() {\n\t}\n}"
  },
  {
    "path": "tests/cases/Issue337.ts",
    "content": "#!/usr/bin/env node -r babel-register"
  },
  {
    "path": "tests/cases/Issue338.ts",
    "content": "let a = {\r\n    [['a', 'b', 'c'].join(' ')]: 'foo',\r\n};"
  },
  {
    "path": "tests/cases/Issue339.ts",
    "content": "function f() {\r\n\r\n    class implements BeingSpreading<Spreading> {\r\n        copy = copy;\r\n        fuse = fuse;\r\n        toInternalSpreading = toInternalSpreading;\r\n        toFiltersOnlySpreading = toFiltersOnlySpreading;\r\n        toResultsOnlySpreading = toResultsOnlySpreading;\r\n        toNormalSpreading = toNormalSpreading;\r\n        toNormalOrMaximizedSpreadingIfNotYet = ensureNormalOrMaximizedSpreading;\r\n    };\r\n\r\n    return new class implements BeingSpreading<Spreading> {\r\n        copy = copy;\r\n        fuse = fuse;\r\n        toInternalSpreading = toInternalSpreading;\r\n        toFiltersOnlySpreading = toFiltersOnlySpreading;\r\n        toResultsOnlySpreading = toResultsOnlySpreading;\r\n        toNormalSpreading = toNormalSpreading;\r\n        toNormalOrMaximizedSpreadingIfNotYet = ensureNormalOrMaximizedSpreading;\r\n    };\r\n}"
  },
  {
    "path": "tests/cases/Issue343.ts",
    "content": "console.log(`${Math.round(responseTime / requests)} ns (${Math.round(requests / ( responseTime / 1e9))}/sec)`);"
  },
  {
    "path": "tests/cases/Issue344.tsx",
    "content": "let a = Array<number>();   // Highlight ok here\r\n\r\ninterface egGenericsInArray {\r\n   a: Array<number>;\r\n}\r\nlet s = \"nothing should fail here...\";"
  },
  {
    "path": "tests/cases/Issue346.ts",
    "content": "function f()\r\n{\r\n\tlet t = 0\r\n\tlet TAU440 = Math.PI*2 * 440\r\n\r\n\tonmessage = function(e)\r\n\t{\r\n\t\tlet b = new Float64Array(e.data.bufferSize)\r\n\t\tlet s = e.data.sampleRate\r\n\r\n\t\tfor (let i = 0; i < b.length; i++) b[i] = Math.sin(TAU440 * t++/s * Math.sin(t++/s*.5))\r\n\r\n\t\tpostMessage(b)\r\n\t}\r\n}\r\n\r\nlet a = new AudioContext()\r\nlet s = a.createScriptProcessor(0,1,1)\r\nlet b = new Float64Array(s.bufferSize)\r\nlet w = new Worker(URL.createObjectURL(new Blob([\"(\"+f+\"())\"],{type:\"application/javascript\"})))\r\n\r\nw.onmessage = e => b = e.data\r\ns.connect(a.destination)\r\n\r\ns.onaudioprocess = function(e)\r\n{\r\n\tw.postMessage({ bufferSize: s.bufferSize, sampleRate: a.sampleRate })\r\n\te.outputBuffer.getChannelData(0).set(b)\r\n}"
  },
  {
    "path": "tests/cases/Issue347.ts",
    "content": "const a = new Promise (resolve => {\r\n    const file = this.props.doc.file;\r\n    resolve({\r\n        abc: Math.random()\r\n    });\r\n\r\n    class Foo extends React.Component {\r\n        render() {\r\n        }\r\n    }\r\n    \r\n});"
  },
  {
    "path": "tests/cases/Issue351.tsx",
    "content": "this._blockRenderMap = Map<any>({});\r\nthis._eventsMap = {};"
  },
  {
    "path": "tests/cases/Issue356.ts",
    "content": "function formatBigNum(num) {\r\n  num = Number(num)\r\n  if (num < 10000) {\r\n    return num\r\n  }\r\n  return (num/10000).toString().replace(/(\\.[\\d]{1})\\d+$/,\"$1\") + 'w '\r\n}\r\nlet hbAnimIndex = 0;\r\nlet hbAnimNode = null;"
  },
  {
    "path": "tests/cases/Issue357.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\r\nconst ProductPrice = ({inStock, price}) => {\r\n  const dashCode = 8211\r\n  const dash = String.fromCharCode(dashCode)\r\n  return (\r\n    <span\r\n      className={styles.uPrice}\r\n      itemProp='offers'\r\n      itemScope=''\r\n      itemType='https://schema.org/Offer'\r\n    >\r\n      <span\r\n        itemProp='price'\r\n      >\r\n        {inStock\r\n          ? I18n.toCurrency(price)\r\n          : <div className={styles.outOfStock}>\r\n                      {`${dash}`}{I18n.t('spree.out_of_stock')}{`${dash}`}\r\n            </div>}\r\n      </span>\r\n    </span>\r\n  )\r\n}"
  },
  {
    "path": "tests/cases/Issue359.ts",
    "content": "const test = (value: string) => {\r\n    const a = 123;\r\n    const b = {\r\n        [`${value}[]`]: a,\r\n    };\r\n    const c = 123;\r\n    return b;\r\n}"
  },
  {
    "path": "tests/cases/Issue36.ts",
    "content": "let x = {\r\n    hello() {\r\n        let hello = \"world\";\r\n    }\r\n};"
  },
  {
    "path": "tests/cases/Issue361.ts",
    "content": "const constructor = someObject.prototype.constructor;\r\n const objectLiteral = { constructor };"
  },
  {
    "path": "tests/cases/Issue365.ts",
    "content": "class Renamer {\r\n  constructor (private readonly srcName: string, private readonly target: string, readonly copy: boolean = false) {}\r\n}"
  },
  {
    "path": "tests/cases/Issue366.ts",
    "content": "let foo = a ? b ? c : d : e;\r\nlet bar;"
  },
  {
    "path": "tests/cases/Issue368.ts",
    "content": "let creditCard = 'cc';\r\nconst CREDIT_CARD = 'CC';\r\n\r\nconsole.log(`Payment Type: ${creditCard}`);\r\nconsole.log(`Payment Type: ${CREDIT_CARD}`);"
  },
  {
    "path": "tests/cases/Issue37.ts",
    "content": "//Test For Scopes\n\nimport * as req from \"./Required\"\nimport { Scale } from \"./scale\";\n\nif (object.instanceof(ClassNew)) {\n}\n\nclass class1(){\n\tstatic functioname(){\n\n\t}\n}\n\nexport class className(){\n\tprivate state = { }\n}\n\nvoid newFunctionName(){\n\n\tvar c = a + b;\n\n\tswitch (someNum) {\n\t\tcase 1: break;\n\t\tcase 2: break;\n\t\tdefault: break;\n\t} \n\n}\n\n/**\n * Verify comments\n */\n\nmodule M {\n    export function myFun(x: number) {\n        return x;\n    }\n}\n\nvar m: typeof M = M;\n\nvar adder = new Adder(3, 4);\ndelete (adder)\n\nvar s = typeof {}git \ninterface I {}\nvar j: I = {}\n\n\nmodule Body {\n    export class Cell {\n        public parent: Cell;\n\n        constructor(parent: Cell) {\n            this.parent = parent;\n            if (typeof parent === 'object' || parent instanceof Error) {\n            \t\n            }\n        }\n    }\n}\n\n/*\n\n  End of file\n\n*/"
  },
  {
    "path": "tests/cases/Issue375.ts",
    "content": "// @onlyOwnGrammar - As this has type assertion\r\nclass Foo {\r\n    constructor(public x: string) {}\r\n}\r\n\r\nconst foo1 = <Foo> { x: '1' };\r\nconst foo2 = <Foo> {\r\n    x: '2'\r\n};\r\nconst foo3 =\r\n    <Foo> {\r\n        x: '3'\r\n    };\r\n\r\nlet foos: Foo[] = <Foo[]> [\r\n    new Foo('4'),\r\n    <Foo>{ x: '5' },\r\n    <Foo>{\r\n        x: '6'\r\n    },\r\n];\r\n\r\nlet obj = Object.assign(new Foo('7'), <Foo> { x: '8' },\r\n    <Foo>{ x: '9' }, <Foo> { x: '10' }, <Foo>{\r\n        x: '11'\r\n    },\r\n    <Foo>{\r\n        x: '12'\r\n    });"
  },
  {
    "path": "tests/cases/Issue376.ts",
    "content": " interface Itest {\r\n\ta: 'a1' // a1 is good\r\n\t\t| 'a2' // a2 is good\r\n\t\t| 'a3' // a3 is good\r\n\tb: {\r\n\t\ta: 'a1'\r\n\t\t\t| 'a2' // oh , the color is not good !\r\n\t\t\t| 'a3' // oh , the color is not good !\r\n\t}\r\n}"
  },
  {
    "path": "tests/cases/Issue377.ts",
    "content": "dt = ((dt[0] * 1e9 + dt[1]) / 1e6).toFixed(3).replace(/\\.?0+$/, '') + 'ms';\r\n"
  },
  {
    "path": "tests/cases/Issue379.ts",
    "content": "interface A {\r\n    prop1: string\r\n    prop2: string\r\n    method1(): void\r\n    prop3: string\r\n    prop4: string\r\n}"
  },
  {
    "path": "tests/cases/Issue380.ts",
    "content": "let namespace;\r\nnamespace = `${\"a\"}`;\r\n\r\nlet x = 1"
  },
  {
    "path": "tests/cases/Issue381.ts",
    "content": "class Foo{\r\n  constructor(){\r\n\r\n  }\r\n  test(){\r\n    return `/game.php?village=${source}&screen=main&ajaxaction=upgrade_building&type=main&h=${csrf_token}&&client_time=${+new Date}`\r\n  }\r\n  noColorSyntax(){\r\n    \r\n  }\r\n}"
  },
  {
    "path": "tests/cases/Issue382.ts",
    "content": "\r\n   class ConstrainedBasedObjectcolection<T extends Core.Model.DataEntity>\r\n     {\r\n          public GetState(): { [index : string]: string } \r\n          {\r\n              if (this.ShouldFilter())\r\n                  return { fpn: this.CurrentFilter().PropertyOfDefinition.DisplayName, fpv: this.CuttrentFilter().FilterValue }\r\n              return {};\r\n          }\r\n\r\n          public CurrentFilter: knockoutObservable<CollectionFilter<any>> = ko.observable<CollectionFilter<any>>();\r\n\r\n     }\r\n \r\n\r\n\r\n"
  },
  {
    "path": "tests/cases/Issue383.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\n\r\nconst singleLineArrow = (first: number, second: Set<string>) => (<div></div>);\r\n\r\nconst multilineArrow = (first: number,\r\n\tsecond: number[],\r\n) => (<div></div>);\r\n\r\nconst multilineArrowWithGenericType = (first: number,\r\n\tsecond: Set<string>,\r\n) => (<div></div>);\r\n\r\nconst followup = (first: number, second: Set<string>) => (<div></div>);"
  },
  {
    "path": "tests/cases/Issue384.ts",
    "content": "declare function foo(): any\r\ndeclare function foo(): any\r\n\r\nexport function X(): void\r\nexport as namespace Y"
  },
  {
    "path": "tests/cases/Issue387.ts",
    "content": "//\r\n// Copyright 2016 Kary Foundation, Inc.\r\n//   Author: Pouya Kary <k@karyfoundation.org>\r\n//\r\n// This Source Code Form is subject to the terms of the Mozilla Public\r\n// License, v. 2.0. If a copy of the MPL was not distributed with this\r\n// file, You can obtain one at http://mozilla.org/MPL/2.0/.\r\n//\r\n\r\n//\r\n// --- IMPORTS --------------------------------------------------------------------\r\n//\r\n\r\n    import * as readline from 'readline';\r\n\r\n//\r\n// --- READLINE -------------------------------------------------------------------\r\n//\r\n\r\n    /**\r\n     * Reads a string from the command line\r\n     * ```\r\n     * async function main ( ) {\r\n     *    let name = await kary.terminal.input('Your name: ')\r\n     *    console.log(`Hello, ${ name }!`)\r\n     * }\r\n     * ```\r\n     */\r\n    export async function input ( message = '' ) {\r\n        const readlineInterface = readline.createInterface({\r\n            input: process.stdin,\r\n            output: process.stdout,\r\n        })\r\n        return new Promise<string> ( resolve => {\r\n            readlineInterface.question ( message , answer => {\r\n                readlineInterface.close( );\r\n                resolve( answer );\r\n            });\r\n        });\r\n    }\r\n\r\n// --------------------------------------------------------------------------------"
  },
  {
    "path": "tests/cases/Issue388.ts",
    "content": "export const fun = (param: ParamType): FunResult => { }\r\n\r\nexport const fun = \r\n  (param: ParamType): \r\n    FunResult => {\r\n}"
  },
  {
    "path": "tests/cases/Issue389.ts",
    "content": "[function ()\r\n{\r\n    let foo;\r\n}];"
  },
  {
    "path": "tests/cases/Issue391.ts",
    "content": "var interface = require('./../interface');\r\nvar ctrl = require('./controllers');\r\nvar utils = require('./../utils');\r\nvar Promise = require('bluebird');\r\nvar deligate = require('./core');\r\nvar log = require('./../log');\r\n\r\nvar constructor = deligate.then(function(bot)\r\n{\r\n    bot.sendMessage(110224344, 'here is the index');\r\n    bot.on('message', function(message)\r\n    {\r\n        if(utils.telegram.is_command(message.text))\r\n        {\r\n            ctrl.commands(message).catch(function(error_log)\r\n            {\r\n                bot.sendMessage(message.chat.id, interface.text.errors.redirect);\r\n                log.uncaughtException(error_log);\r\n            });\r\n        }\r\n    });\r\n\r\n    return '  ? Telegram WebHook Set: Successfull!';\r\n});\r\n\r\nmodule.exports = constructor;\r\n"
  },
  {
    "path": "tests/cases/Issue393.ts",
    "content": "class ColorsBars extends React.Component {\r\n\tconstructor(...args) {\r\n\t\tsuper(...args)\r\n\t\tthis.toggleEdit = this.toggleEdit.bind(this)\r\n\t}\r\n}"
  },
  {
    "path": "tests/cases/Issue394.ts",
    "content": " gulp.add('watch-' + (asset.name || asset.route), function ()\r\n        {\r\n            gulp.watch('./modules/*' + asset.moduleRelativePath, ['build-' + (asset.name || asset.route)]);\r\n        });"
  },
  {
    "path": "tests/cases/Issue396.ts",
    "content": "/* jshint esnext:true */\r\nlet it = require('./it');\r\nit.execute(function* builder(options) {\r\n   let metaData = yield it.read(option.metaFile);\r\n   it.meta = yield it.parse(metaData, {\r\n      ICON: yield it.read(options.icon),\r\n      ICON64: (yield it.read(options.icon64)).base64()\r\n   });\r\n});"
  },
  {
    "path": "tests/cases/Issue397.ts",
    "content": "const a = Math.max(...x);\r\nconst b = 2;"
  },
  {
    "path": "tests/cases/Issue398.ts",
    "content": "let x: Array<{ name: string, fn(): any, field: string }>"
  },
  {
    "path": "tests/cases/Issue402.ts",
    "content": "ipcMain.on('ELECTRON_GUEST_WINDOW_MANAGER_WEB_CONTENTS_METHOD', function (event, guestId, method, ...args) {\r\n  const guestContents = webContents.fromId(guestId)\r\n  if (guestContents == null) return\r\n\r\n  if (canAccessWindow(event.sender, guestContents)) {\r\n    guestContents[method](...args)\r\n  } else {\r\n    console.error(`Blocked ${event.sender.getURL()} from calling ${method} on its opener.`)\r\n  }\r\n})\r\n\r\nipcMain.on('ELECTRON_GUEST_WINDOW_MANAGER_WEB_CONTENTS_METHOD_SYNC', function (event, guestId, method, ...args) {\r\n  const guestContents = webContents.fromId(guestId)\r\n  if (guestContents == null) {\r\n    event.returnValue = null\r\n    return\r\n  }\r\n\r\n  if (canAccessWindow(event.sender, guestContents)) {\r\n    event.returnValue = guestContents[method](...args)\r\n  } else {\r\n    console.error(`Blocked ${event.sender.getURL()} from calling ${method} on its opener.`)\r\n    event.returnValue = null\r\n  }\r\n})"
  },
  {
    "path": "tests/cases/Issue403IncorrectlyDetectedArrowTypeParameters.ts",
    "content": "e.ui.plugin.add(\"resizable\", \"grid\", {\r\n            resize: function() {\r\n                var t = e(this).data(\"ui-resizable\"),\r\n                    n = t.options,\r\n                    r = t.size,\r\n                    i = t.originalSize,\r\n                    s = t.originalPosition,\r\n                    o = t.axis,\r\n                    u = typeof n.grid == \"number\" ? [n.grid, n.grid] : n.grid,\r\n                    a = u[0] || 1,\r\n                    f = u[1] || 1,\r\n                    l = Math.round((r.width - i.width) / a) * a,\r\n                    c = Math.round((r.height - i.height) / f) * f,\r\n                    h = i.width + l,\r\n                    p = i.height + c,\r\n                    d = n.maxWidth && n.maxWidth < h,\r\n                    v = n.maxHeight && n.maxHeight < p,\r\n                    m = n.minWidth && n.minWidth > h,\r\n                    g = n.minHeight && n.minHeight > p;\r\n                n.grid = u, m && (h += a), g && (p += f), d && (h -= a), v && (p -= f), /^(se|s|e)$/.test(o) ? (t.size.width = h, t.size.height = p) : /^(ne)$/.test(o) ? (t.size.width = h, t.size.height = p, t.position.top = s.top - c) : /^(sw)$/.test(o) ? (t.size.width = h, t.size.height = p, t.position.left = s.left - l) : (p - f > 0 ? (t.size.height = p, t.position.top = s.top - c) : (t.size.height = f, t.position.top = s.top + i.height - f), h - a > 0 ? (t.size.width = h, t.position.left = s.left - l) : (t.size.width = a, t.position.left = s.left + i.width - a))\r\n            }\r\n        })"
  },
  {
    "path": "tests/cases/Issue403IncorrectlyDetectedFunctionCallAsArrow.ts",
    "content": "p.parseJSON = function(t) {\r\n        if (e.JSON && e.JSON.parse) return e.JSON.parse(t + \"\");\r\n        var n, r = null,\r\n            i = p.trim(t + \"\");\r\n        return i && !p.trim(i.replace(Nn, function(e, t, i, s) {\r\n            return n && t && (r = 0), r === 0 ? e : (n = i || t, r += !s - !i, \"\")\r\n        })) ? Function(\"return \" + i)() : p.error(\"Invalid JSON: \" + t)\r\n    }"
  },
  {
    "path": "tests/cases/Issue405.ts",
    "content": "function  myFunction1\r\n  (a: string)\r\n{\r\n  var r = true;\r\n  return true\r\n}\r\n\r\nfunction myFunction2\r\n  (a: string): boolean\r\n{\r\n  var r = true;\r\n  return true\r\n}\r\n"
  },
  {
    "path": "tests/cases/Issue407.ts",
    "content": "let x: Map<string, string>;\r\nlet Y: Map<string, string>;"
  },
  {
    "path": "tests/cases/Issue408.ts",
    "content": "assert(truthyValue, 'must be true');\r\npath(pathArgs);"
  },
  {
    "path": "tests/cases/Issue415.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\n(<View />);\n(<dot.view />);\n(<dot.View />);\n(<dot.View />);\n(<View></View>);\n(<dot.View></dot.View>);\n(<dot.View><b>bold</b></dot.View>);"
  },
  {
    "path": "tests/cases/Issue417.ts",
    "content": "const a = {\r\n    1: '1',\r\n    '2': '2',\r\n}"
  },
  {
    "path": "tests/cases/Issue418.ts",
    "content": "function merge(as, bs) {\r\n  let res = []\r\n  let ia = 0\r\n  let ib = 0\r\n  while (ia < as.length && ib < bs.length) { // coloring broken\r\n    if (as[ia] < bs[ib]) {\r\n      res.push(as[ia++]) // coloring broken\r\n    } else {\r\n      res.push(bs[ib++]) // coloring broken\r\n    }\r\n  }\r\n  return res.concat(as.slice(ia)).concat(bs.slice(ib)) // coloring broken\r\n}\r\n\r\nfunction mergesort(array) {\r\n  if (array.length < 2) {\r\n    return array\r\n  }\r\n  const mid = Math.floor(array.length / 2)\r\n  return merge(mergesort(array.slice(0, mid)), mergesort(array.slice(mid)))\r\n}"
  },
  {
    "path": "tests/cases/Issue42.ts",
    "content": "            return this.travelWorld((cell: Cell) => {\r\n                cell.live = Math.random() < this.initialLifeProbability;\r\n                return cell;\r\n            });"
  },
  {
    "path": "tests/cases/Issue420.ts",
    "content": "verify.quickInfos({\r\n    1: \"this: ContextualInterface\",\r\n    2: \"(parameter) this: void\"\r\n});"
  },
  {
    "path": "tests/cases/Issue421.ts",
    "content": "function f(\r\n        arg: 'x' |\r\n             'y',\r\n        arg2: 1 |\r\n              2) {}"
  },
  {
    "path": "tests/cases/Issue423.ts",
    "content": "interface Foo {\r\n    bar: string;\r\n}\r\n\r\ntype T = Foo; // line 5\r\ninterface Bar {\r\n    foo: Foo;  // line 7\r\n}"
  },
  {
    "path": "tests/cases/Issue427.ts",
    "content": "function a(): { [key: string]: number } | { [key: string]: number } { throw 1 }\r\n\r\nfunction b(a: { [key: string]: number } | { [key: string]: number }): void { }"
  },
  {
    "path": "tests/cases/Issue428.ts",
    "content": "export function funct\r\n  (a: number): string \r\n\r\nexport function funct\r\n  (a: number): number\r\n\r\n// this is implementation\r\nexport function funct\r\n  (a: number): any {\r\n  \r\n  }"
  },
  {
    "path": "tests/cases/Issue43.ts",
    "content": "var $this = $(this);\r\n$this.addClass(\"hehe\");"
  },
  {
    "path": "tests/cases/Issue430.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\r\nclass c {\r\nrender() {\r\n    return this.props.data.weekDays.filter((weekDay, index) => (this.state.showAll || index < 3)).map((weekDay, key) => (\r\n      <p key={key}>\r\n        {weekDay.label} {this.props.data[weekDay.id].start} - {this.props.data[weekDay.id].finish}\r\n      </p>\r\n    ))\r\n  }\r\n}"
  },
  {
    "path": "tests/cases/Issue431.ts",
    "content": "myFunc\r\n(...argName)\r\n\r\nfunction otherFunc() {} // <-- Not highlighted."
  },
  {
    "path": "tests/cases/Issue433.ts",
    "content": "declare module ILogin{\r\n    export interface Z {}\r\n}"
  },
  {
    "path": "tests/cases/Issue434.ts",
    "content": "export class SomeClass {\r\n    private someMethod(): void {\r\n        if (1\r\n            < 2) {\r\n            console.log(\"TypeScript syntax highlighting is broken!\");\r\n        }\r\n        else if (1 > 2) {\r\n            console.log(\"\");\r\n        }\r\n    }\r\n\r\n    private someOtherMethod() {\r\n        console.log(\"\");\r\n        //\r\n        const q = 1;\r\n        var s = 2;\r\n        let e = 3;\r\n    }\r\n\r\n    q = 100;\r\n}"
  },
  {
    "path": "tests/cases/Issue435.ts",
    "content": "/**\r\n     * Manually add an item to the uploading queue.\r\n     *\r\n     * @param {PIXI.DisplayObject|PIXI.Container|PIXI.BaseTexture|PIXI.Texture|PIXI.Graphics|PIXI.Text|*} item - Object to\r\n     *        add to the queue\r\n     * @return {PIXI.CanvasPrepare} Instance of plugin for chaining.\r\n     */"
  },
  {
    "path": "tests/cases/Issue44.ts",
    "content": "\ninterface TestInterface {\n  testvar: string;\n  testfunc(): string;\n}\n\n/*\n\tTesting Comments\n*/\n"
  },
  {
    "path": "tests/cases/Issue441.ts",
    "content": "func(1)\r\nasync(1)"
  },
  {
    "path": "tests/cases/Issue444.ts",
    "content": "var test = \"123 456\";\r\n\r\nif ((test.match(/\\d+/g)[0]) / (test.match(/\\d+/g)[1]) < 1) {\r\n    return;\r\n}\r\n\r\nif ((test.match(/\\d+/g)[0])/(test.match(/\\d+/g)[1]) < 1) {\r\n    return;\r\n}"
  },
  {
    "path": "tests/cases/Issue445.ts",
    "content": "/**\r\n * My awesome function.\r\n * @param {{id: string, name: string}} object An object with an id and name field.\r\n */\r\nfunction myAwesomeFunction(object) {\r\n  const { name, id } = object.\r\n  // do stuff with name and id\r\n}"
  },
  {
    "path": "tests/cases/Issue450.ts",
    "content": "// @onlyOwnGrammar - As this has type assertion\r\nlet a = true ? <number>1 : <number>2;"
  },
  {
    "path": "tests/cases/Issue452.ts",
    "content": "class Test<A, B>{}\r\nclass Favorite extends Test<\r\n  string | number,\r\n  undefined\r\n> {\r\n  // class content  \r\n}"
  },
  {
    "path": "tests/cases/Issue453.ts",
    "content": "type Resolve = () => number;\r\n\r\nclass Test {\r\n  first(values: Map<string, Resolve>): number {\r\n    return values.has('a') ? values.get('a')!() : 0;\r\n  }\r\n\r\n  second(): string {\r\n    return 'foo';\r\n  }\r\n}"
  },
  {
    "path": "tests/cases/Issue455.ts",
    "content": "func(function () // }\r\n{\r\n    if (false)\r\n        return 1\r\n    else\r\n        return 2\r\n});"
  },
  {
    "path": "tests/cases/Issue458.ts",
    "content": "export class Blah {\r\n  get () {}\r\n}\r\nconst x = {\r\n  get () {}\r\n}"
  },
  {
    "path": "tests/cases/Issue460.ts",
    "content": "// single-line comment\r\n/* multi-line comment */"
  },
  {
    "path": "tests/cases/Issue461.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\r\nclass Foo {\r\n  renderProgress = () =>\r\n    <b className={this.props.className}>x</b>\r\n\r\n  render () {\r\n    return (\r\n      <div className={this.state.loaded ? '' : styles.containerUnloaded}>\r\n        {!this.state.loaded && this.renderProgress()}\r\n      </div>\r\n    )\r\n  }\r\n}"
  },
  {
    "path": "tests/cases/Issue463.ts",
    "content": "const x =\r\n    1\r\nif (x) return x"
  },
  {
    "path": "tests/cases/Issue466.ts",
    "content": "function foo(this: number, x: number) {\r\n\r\n}"
  },
  {
    "path": "tests/cases/Issue468.ts",
    "content": "({ 'foo\\'': 'bar' })"
  },
  {
    "path": "tests/cases/Issue470.ts",
    "content": "var x = await import(\"./file1\");"
  },
  {
    "path": "tests/cases/Issue471.ts",
    "content": "const foo =\r\n    true || `${'hello'}.txt`\r\n\r\nfunction syntaxHighlightingIsBroken() {\r\n}"
  },
  {
    "path": "tests/cases/Issue472.ts",
    "content": "interface I {\r\n\t bar1: {\r\n\t \tquantity: string\r\n\t },\r\n\t bar2:\r\n\t {\r\n\t \tquantity: string\r\n\t }\r\n}"
  },
  {
    "path": "tests/cases/Issue476.ts",
    "content": "class Bug {\r\n\tstatic asdf(o, o2) {\r\n\t\tBug.asdf(\"\", '`')\r\n\t\treturn {\r\n\t\t\t[\r\n\t\t\t\t\"a\"\r\n\t\t\t]:\r\n\t\t\t[\r\n\t\t\t\tBug.asdf(\"\", '`')\r\n\t\t\t]\r\n\t\t};\r\n\t}\r\n\t\r\n}"
  },
  {
    "path": "tests/cases/Issue477.ts",
    "content": "function* fn1() {}\r\nfunction * fn2() {}\r\nfunction *fn3() {}\r\n\r\nconst foo = {\r\n    * fn4() {},\r\n    *fn5() {},\r\n    fn6: function*() {}, // Incorrect\r\n    fn7: function* () {}, // Incorrect\r\n    fn8: function *() {},\r\n}\r\n\r\nclass Bar {\r\n    * fn9() {}\r\n    *fn10() {}\r\n    fn11 = function*() {} // Incorrect\r\n    fn12 = function* () {} // Incorrect\r\n    fn13 = function *() {}\r\n}"
  },
  {
    "path": "tests/cases/Issue478.tsx",
    "content": "// Before\r\na = (b: string, c: number) => {\r\n  console.log(b, c);\r\n}\r\n\r\nd = (e: string) => (\r\n  f: G<H>\r\n) => {\r\n  console.log(e, f);\r\n};\r\n\r\n// After\r\na = (b: string, c: number) => {\r\n  console.log(b, c);\r\n}"
  },
  {
    "path": "tests/cases/Issue480.ts",
    "content": "/* @internal */\r\nexport interface Pattern {\r\n        prefix: string;\r\n        suffix: string;\r\n}\r\n\r\n// @internal\r\nexport interface Pattern2 {\r\n        prefix: string;\r\n        suffix: string;\r\n}"
  },
  {
    "path": "tests/cases/Issue482.ts",
    "content": "let a = 1;\r\nlet b = [new Object]\r\nlet c = 1"
  },
  {
    "path": "tests/cases/Issue484.ts",
    "content": "declare module 'foo';\r\ndeclare module 'bar';\r\ndeclare module 'baz';\r\ninterface Foo {\r\n    bar: string;\r\n}"
  },
  {
    "path": "tests/cases/Issue485.ts",
    "content": "import a from 'a' // test\r\nimport b from 'b'"
  },
  {
    "path": "tests/cases/Issue486.ts",
    "content": "const C = class<T> {\r\n    private data = 0;\r\n}"
  },
  {
    "path": "tests/cases/Issue491.ts",
    "content": "let a: number = w,\r\nb: string = x, // string is not colored\r\nc: any = y, // any is not colored\r\nd: boolean = z; // boolean is not colored"
  },
  {
    "path": "tests/cases/Issue496.ts",
    "content": "// @onlyOwnGrammar - As this has cast expression\r\nvar x = 0;\r\nvar y = 1;\r\nvar z = <number>x + <number>y;"
  },
  {
    "path": "tests/cases/Issue499.ts",
    "content": "const fn = ({\r\n  arg = [],\r\n}) => {\r\n  return \"This line should be highlighted correctly\";\r\n}"
  },
  {
    "path": "tests/cases/Issue5.ts",
    "content": "let new_string = \"New Changes\"\n\n\nlet plain_double_text = \"Hello\\\nthis link to github is https://github.com/\\\nhello\\\nWorld\"\n\nlet plain_single_text= 'Try with single bracket\\\nhello world \\\\\\\\\\\nlet this be   ^\\\na good test   ^'\n\nlet double_quote_issue = \"  qstring-double:\\\n    name: string.double.ts\\\n    begin: \\'\\\"\\'\\\n    end: \\'\\\"|(?:[^\\r\\n\\\\]$)'\\\n    patterns:\\\n    - include: '#string-character-escape'\\\n    \"\n\nlet single_quote_issue = 'qstring-single:\\\n    name: string.single.ts\\\n    begin: \\\"\\'\\\"\\\n    end: \\'|(?:[^\\r\\n\\\\]$)\\\n    endCaptures:\\\n      '0': {name: string-character-escape }\\\n    patterns:\\\n    - include: \\'#string-character-escape\\'\\\n    '\n\nlet new_string = \"Changes End here\"\n\n\n"
  },
  {
    "path": "tests/cases/Issue500.ts",
    "content": "0 as any as string;"
  },
  {
    "path": "tests/cases/Issue502.ts",
    "content": "class Foo {\r\n    bar () {\r\n        [...this.foobar()];\r\n        [... this.foobar()];\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue506.ts",
    "content": "        if (platform.isWindows) {\r\n            this._processReady.then(() => {\r\n                if (!this._isDisposed) {\r\n                    import('vs/workbench/parts/terminal/electron-browser/windowsShellHelper').then((module) => {\r\n                        this._windowsShellHelper = new module.WindowsShellHelper(this._processId, this._shellLaunchConfig.executable, this, this._xterm);\r\n                    });\r\n                }\r\n            });\r\n        }"
  },
  {
    "path": "tests/cases/Issue510.ts",
    "content": "    // Factory functions\r\n\r\n    const createZombie = ({\r\n        status = 1,\r\n        width = 10,\r\n        height = 10,\r\n        xPosition,\r\n        yPosition,\r\n        color = \"green\"\r\n    }) => ({\r\n        status,\r\n        width,\r\n        height,\r\n        xPosition,\r\n        yPosition,\r\n        color\r\n    });\r\n\r\n    const createHero = ({\r\n        status = 1,\r\n        width = 25,\r\n        height = 50,\r\n        xPosition,\r\n        yPosition,\r\n        color = \"red\"\r\n    }) => ({\r\n        status,\r\n        width,\r\n        height,\r\n        xPosition,\r\n        yPosition,\r\n        color\r\n    });"
  },
  {
    "path": "tests/cases/Issue513.ts",
    "content": "(/a/u);"
  },
  {
    "path": "tests/cases/Issue515.ts",
    "content": "/**\r\n * @param {boolean} [settings.debug= - Print getUpdate results in console.\r\n */\r\n/**\r\n * @param {boolean} [settings.debug=] - Print getUpdate results in console.\r\n */\r\n/**\r\n * @param {boolean} [settings.debug=1] - Print getUpdate results in console.\r\n */\r\n"
  },
  {
    "path": "tests/cases/Issue518.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\r\n(<a title={i >= 2 && i < 3 ? \"first branch\" : i > (j - 2) * 4 ? \"second branch\" : \"third branch\" } />)"
  },
  {
    "path": "tests/cases/Issue521.ts",
    "content": "const names = results.f(result.success ? (2) : 2).f(c => c.name)\r\nconst a = 1;"
  },
  {
    "path": "tests/cases/Issue522.ts",
    "content": "const brokenSyntaxHighlighting = () => {\r\n  const array = a?.b?.c?.d?.g;\r\n\r\n  /**\r\n   * No TypeEror, but syntax highlighting is broken\r\n   */\r\n  const test = a?.b?.f?.f;\r\n\r\n  for (let i = 0; i < array.length; i++) {\r\n    console.log(array[i]);\r\n  }\r\n};\r\n\r\nbrokenSyntaxHighlighting();"
  },
  {
    "path": "tests/cases/Issue525.ts",
    "content": "map(result.success ? (a) : 1).map(c => c.name)\r\nconst a = 1;"
  },
  {
    "path": "tests/cases/Issue526.ts",
    "content": "if (a++ < b) {\r\n}\r\n\r\nexport class A extends B {\r\n}"
  },
  {
    "path": "tests/cases/Issue530.ts",
    "content": "function getStats() {\r\n    const query = query<[number], number>(`\r\n        SELECT *\r\n        FROM statistics\r\n        WHERE unit_id = $1`)\r\n\r\n    return database.execute(query, [id])\r\n}"
  },
  {
    "path": "tests/cases/Issue531.ts",
    "content": "class Test { }\r\nexport {\r\n Test as default\r\n};"
  },
  {
    "path": "tests/cases/Issue536.ts",
    "content": "const z = (() => {})()"
  },
  {
    "path": "tests/cases/Issue538.ts",
    "content": "declare function f<T, U>(): void;\r\nconst x = f<\"a\", \"b\">();"
  },
  {
    "path": "tests/cases/Issue540.ts",
    "content": "// 1. Correct highlighting\r\ndoSomething = (param, { a = \"default\" } = {}) => {\r\n    //noop\r\n}\r\n\r\n// 2. Incorrect highlighting - limitation of grammar\r\ndoSomething = (param, { \r\n    a = \"default\" \r\n} = {}) => {\r\n    //noop\r\n}\r\n\r\n// 3. Correct highlighting\r\ndoSomething(param, {\r\n    a = \"default\"\r\n} = {}) {\r\n    //noop\r\n}\r\n\r\n// 4. Correct highlighting\r\ndoSomething(param, { a = \"default\" } = {}) {\r\n    //noop\r\n}\r\n\r\n// 5. Correct highlighting (notice config module)\r\ndoSomething(param, {\r\n    a = config.get(\"a\") \r\n} = {}) {\r\n    //noop\r\n}\r\n\r\n// 6. Correct highlighting (notice config module)\r\ndoSomething(param, { a = config.get(\"a\") } = {}) {\r\n    //noop\r\n}\r\n\r\n// 7. Incorrect highlighting (notice config module) while 1. does\r\ndoSomething = (param, { a = config.get(\"a\")  } = {}) => {\r\n    //noop\r\n}"
  },
  {
    "path": "tests/cases/Issue543.ts",
    "content": "// @onlyOwnGrammar - As this has cast\r\nlet x = -<any>5;\r\nx = -<number>-x;\r\nx = +<number>x;\r\n<number>1 && <number>2 & <number>3 | <number>4 + <number>5 ^ <number>6 && (<number>5)"
  },
  {
    "path": "tests/cases/Issue549.ts",
    "content": "function foo(x, y){\r\n    if(x < y || (x > (y))){\r\n    }\r\n    return 'of the jedi';\r\n}"
  },
  {
    "path": "tests/cases/Issue550.ts",
    "content": "export const foo = (firstVariable: string, secondVariable: number): string => {\r\n    return \"foo\"\r\n}\r\n\r\nexport const bar = (\r\n    firstVariable: string,\r\n    secondVariable: number,\r\n    thirdVariable: string\r\n): string => {\r\n    return \"baz\"\r\n}"
  },
  {
    "path": "tests/cases/Issue551.ts",
    "content": "class a extends b, c { \r\n}\r\nclass a2 extends b, c\r\n{ \r\n}"
  },
  {
    "path": "tests/cases/Issue554.ts",
    "content": "async function f(x: Promise<object>) {\r\n    return { ...await x };\r\n}\r\n...new Object()\r\n...function f() {}\r\n...typeof x\r\n...void x\r\n...undefined"
  },
  {
    "path": "tests/cases/Issue556.ts",
    "content": "class Thing {\r\n    foo: SomeFunc = () => void 0;\r\n    bar = () => void 0;\r\n}"
  },
  {
    "path": "tests/cases/Issue558.ts",
    "content": "export const interview = async (\r\n   fabricatedCase : FabricatedCase\r\n) : Promise<InterviewTest> => {\r\n   const res = await fetch(API_URL + '/interviews', {\r\n       method: 'POST',\r\n       headers: new Headers({\r\n           'Content-Type': 'application/json',\r\n       }),\r\n       body: JSON.stringify(fabricatedTest),\r\n   });\r\n   const interviewTest = await res.json();\r\n   return interviewTest;\r\n};"
  },
  {
    "path": "tests/cases/Issue559.ts",
    "content": "let myFunc = function<T,U>(txt:string,num:number){}\r\n\r\nclass MyClass {\r\n  myProp = myFunc<number, () => void>(\"syntax highlight is incorrect\", 1);\r\n}\r\n\r\nlet myProp = myFunc<number, () => void>(\"syntax highlight is correct here\", 1);"
  },
  {
    "path": "tests/cases/Issue562.ts",
    "content": "// @onlyOwnGrammar - As this has cast\r\nyield <ClassD>10;\r\n(yield <ClassD>10);\r\nfunction foo() {\r\n  return <ClassD>10;\r\n}\r\ntopYields.sort ((share1,share2) => {\r\n    if (share1.yield < share2.yield) { return 1; }\r\n    if (share1.yield > share2.yield) { return -1; }\r\n    return 0;\r\n  });\r\n"
  },
  {
    "path": "tests/cases/Issue566.ts",
    "content": "const COULOMB = 8.957_551_787e9; // N-m^2 / C^2\r\nconst PLANCK  = 6.626_070_040e-34; // J-s\r\nconst JENNY   = 867_5309; // C-A-L^2\r\nlet bits = 0b1100_1100;\r\nlet routine = 0xC0FFEE_F00D_BED;\r\n\r\n1_000_000_000\r\n1.1_00_01\r\n1e1_0\r\n1e+1_0\r\n1e-1_0\r\n1.1e10_0\r\n1.1e+10_0\r\n1.1e-10_0\r\n12_34_56\r\n1_22_333\r\n1_2.3_4\r\n1_2.3_4e5_6\r\n1_2.3_4e+5_6\r\n1_2.3_4e-5_6\r\n\r\n0x00_11;\r\n0X0_1;\r\n0x1100_0011;\r\n0X0_11_0101;\r\n\r\n0o00_11;\r\n0O0_1;\r\n0o1100_0011;\r\n0O0_11_0101;\r\n\r\n0b00_11;\r\n0B0_1;\r\n0b1100_0011;\r\n0B0_11_0101;\r\n\r\n// Verify the following are not classified as a number\r\n_1_2;\r\n0b_1;\r\n0x_1;\r\n0o_1;\r\n"
  },
  {
    "path": "tests/cases/Issue567.ts",
    "content": "function t(){\r\nreturn e.call(this,[t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),\"-\",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),\"-\",\"4\",t._randomHex(),t._randomHex(),t._randomHex(),\"-\",t._oneOf(t._timeHighBits),t._randomHex(),t._randomHex(),t._randomHex(),\"-\",t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex(),t._randomHex()].join(\"\"))||this}"
  },
  {
    "path": "tests/cases/Issue569.ts",
    "content": "export { default as x } \r\nexport { x as default }"
  },
  {
    "path": "tests/cases/Issue571.ts",
    "content": "const o = {\r\n\t[\"a\" +\r\n\t\t\"b\"]() {\r\n\t\treturn 0; // no highlighting!\r\n\t},\r\n\t'a\\\r\n\t'() {\r\n\t\treturn 0; // no highlighting!\r\n\t}\r\n};"
  },
  {
    "path": "tests/cases/Issue572.ts",
    "content": "function /*like here*/ * foo() {\r\n    yield /*or here*/* [42];\r\n}"
  },
  {
    "path": "tests/cases/Issue572ForLoop.ts",
    "content": "/*0*/ for /*1*/ ( /*2*/ var /*3*/ x /*4*/ in /*5*/ a /*6*/) /*7*/{}\r\n/*0*/ for /*1*/ ( /*2*/ var /*3*/ x /*4*/ of /*5*/ a /*6*/) /*7*/{}\r\n/*0*/ for /*1*/ ( /*3*/ x /*4*/ in /*5*/ a /*6*/) /*7*/ {}\r\n/*0*/ for /*1*/ ( /*3*/ x /*4*/ of /*5*/ a /*6*/) /*7*/ {}\r\n/*0*/ for /*1*/ ( /*2*/ a /*3*/ ; /*4*/ a /*5*/ ; /*6*/ a /*7*/) /*8*/ {}"
  },
  {
    "path": "tests/cases/Issue575.ts",
    "content": "function runQuery() {\r\n    const query = createQuery<[number[]], Table<Columns>>(`\r\n        some SQL here\r\n    `)\r\n    return database.execute(query)\r\n}"
  },
  {
    "path": "tests/cases/Issue578.ts",
    "content": "if (targetAttribute) {\r\n    if (!(targetAttribute instanceof Attribute)) {\r\n        targetAttribute = new Attribute(targetAttribute);\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue579.ts",
    "content": "function f(): (x: number) => any {\r\n    return true ? x => f() : x => 0;\r\n}\r\nconst x = 0; // no highlight in rest of file"
  },
  {
    "path": "tests/cases/Issue580.ts",
    "content": "(a[0] / 2) / (2)"
  },
  {
    "path": "tests/cases/Issue581.ts",
    "content": "interface Foo {\r\n  a: () => void;\r\n  b?: () => void;\r\n}"
  },
  {
    "path": "tests/cases/Issue584.ts",
    "content": "if (startDragXOffset < cornerDistanceThreshold > (shapeWidth - cornerDistanceThreshold)) {\r\n}\r\nif (startDragXOffset < cornerDistanceThreshold && startDragYOffset > (shapeWidth - cornerDistanceThreshold)) {\r\n}"
  },
  {
    "path": "tests/cases/Issue585.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\r\nconst a = <button \r\n      // disabled={false}\r\n    />"
  },
  {
    "path": "tests/cases/Issue586.ts",
    "content": "import a\r\n    from b;"
  },
  {
    "path": "tests/cases/Issue59.ts",
    "content": "class A {\r\n    public props = {} as {};\r\n    public a: string;\r\n}"
  },
  {
    "path": "tests/cases/Issue590.ts",
    "content": "const x = f<N.A, B>(() => {\r\n    const y = 0;\r\n    return z;\r\n});"
  },
  {
    "path": "tests/cases/Issue591.ts",
    "content": "if (a instanceof B || c instanceof D) {\r\n}"
  },
  {
    "path": "tests/cases/Issue592.ts",
    "content": "function test() {\r\n  type X = { }\r\n  return {};\r\n}"
  },
  {
    "path": "tests/cases/Issue595.ts",
    "content": "function f() {\r\n    return foo ? { a: true } : { b: false }\r\n}"
  },
  {
    "path": "tests/cases/Issue598.ts",
    "content": "f<keyof I>();"
  },
  {
    "path": "tests/cases/Issue601.ts",
    "content": "const getByKind = async <T>(): Promise<Map<number, T>[]> => {\r\n    return []\r\n}"
  },
  {
    "path": "tests/cases/Issue602.ts",
    "content": "let result = foo instanceof Foo ? foo.bar() : null;"
  },
  {
    "path": "tests/cases/Issue604.ts",
    "content": "const obj = {\r\n    get 1() {\r\n        return 1\r\n    },\r\n}"
  },
  {
    "path": "tests/cases/Issue605.ts",
    "content": "interface Foo {\r\n    new: number;\r\n}\r\n\r\ninterface Foo2 {\r\n    new?: number;\r\n}"
  },
  {
    "path": "tests/cases/Issue606.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\r\n<C<number>/>\r\n<C<number>> </C>"
  },
  {
    "path": "tests/cases/Issue607.ts",
    "content": "import\r\n{\r\n    Foo\r\n}\r\nfrom \"foo\""
  },
  {
    "path": "tests/cases/Issue608.ts",
    "content": "const example = () => (\r\n  {example: \"`x=y`\"} // everything after this line is highlighted like a string\r\n)\r\n"
  },
  {
    "path": "tests/cases/Issue609.ts",
    "content": "const size = import.meta.scriptElement.dataset.size || 300;\r\nexport function Date(...args) {\r\n  if (new.target) {\r\n    // [[Construct]] branch\r\n    initializeDate(this, ...args);\r\n  } else {\r\n    // [[Call]] branch\r\n    return ToDateString(clockGetTime());\r\n  }\r\n}"
  },
  {
    "path": "tests/cases/Issue610.ts",
    "content": "class Test {\r\n  constructor() {\r\n    hola: {\r\n      const x = 1;\r\n      console.log('bad highlight');\r\n      break hola;\r\n    }\r\n  }\r\n}"
  },
  {
    "path": "tests/cases/Issue612.ts",
    "content": "class C {\r\n    'm'?(): void;\r\n}\r\nconst x = 0;"
  },
  {
    "path": "tests/cases/Issue613.ts",
    "content": "interface I {\r\n    x: number extends number\r\n        ? string\r\n        : boolean;\r\n}"
  },
  {
    "path": "tests/cases/Issue616.ts",
    "content": "const func = () => (\r\n  getValue()\r\n)\r\n\r\nconst Comp = () => (\r\n  class extends React.Component {\r\n  }\r\n)"
  },
  {
    "path": "tests/cases/Issue62.ts",
    "content": "// @onlyOwnGrammar - As this has type assertion\r\nexport default <ApplicationConfig> {\r\n    // config object\r\n}"
  },
  {
    "path": "tests/cases/Issue623.ts",
    "content": "var foo = /bar//* test */"
  },
  {
    "path": "tests/cases/Issue624.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx \r\nbar => (\r\n    [\r\n        <Baz key={`bar-${bar.id}`} />,\r\n        <Qux />\r\n    ]\r\n)"
  },
  {
    "path": "tests/cases/Issue625.ts",
    "content": "console.log(1);\r\nfoo: {\r\n    console.log(1);\r\n}\r\nconsole.log(1);"
  },
  {
    "path": "tests/cases/Issue626.ts",
    "content": "const f = (...args) => {}\r\nconst f = (a, ...args) => {}"
  },
  {
    "path": "tests/cases/Issue628.ts",
    "content": "of(1);"
  },
  {
    "path": "tests/cases/Issue629.ts",
    "content": "class c {\r\n\tprivate _forEachCell(\r\n    terminal: ITerminal,\r\n    firstRow: number,\r\n    lastRow: number,\r\n    callback: (\r\n      code: number,\r\n      char: string,\r\n      width: number,\r\n      x: number,\r\n      y: number,\r\n      fg: number,\r\n      bg: number,\r\n      flags: number\r\n    ) => void\r\n  ): void {\r\n\t}\r\n}"
  },
  {
    "path": "tests/cases/Issue63.ts",
    "content": "type Callback <T> = (error: Error, value: T) => any\n\ntype Callback<T > = (error: Error, value: T) => any\n\ntype Callback = (error: Error, value: T) => any\n\ntype Callback<string | (a: number, b: string) => void> = (error: Error, value: T) => any\n\n type Foo <T > = {\n\n\tfoo: T,\n\tbar: number\n\n}"
  },
  {
    "path": "tests/cases/Issue632.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\r\n<Bar>\r\n  {({ name }) => (\r\n   <HelloWorld<Foo>\r\n      name={name}\r\n      variants={['TEST']}\r\n    />\r\n  )}\r\n</Bar>\r\n\r\n<Bar>\r\n  {({ name }) => (\r\n    <HelloWorld<\r\n      Foo>\r\n      name={name}\r\n    />\r\n  )}\r\n</Bar>\r\n\r\n<Bar>\r\n  {({ name }) => (\r\n    <HelloWorld<\r\n      Foo>\r\n      name={name}\r\n      variants={['TEST']}\r\n    />\r\n  )}\r\n</Bar>"
  },
  {
    "path": "tests/cases/Issue634.ts",
    "content": "eval;\r\neval();\r\npackage;"
  },
  {
    "path": "tests/cases/Issue635.ts",
    "content": "let a: number,\r\n    b: number,\r\n    c: number;"
  },
  {
    "path": "tests/cases/Issue636.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\r\nclass Baz { }\r\n\r\nclass F {\r\n\tpublic *foo() {\r\n\t\tyield <Baz />;\r\n\t}\r\n\t\r\n\tpublic fuu() {\r\n\t\treturn <Baz />;\r\n\t}\r\n}"
  },
  {
    "path": "tests/cases/Issue637.ts",
    "content": "interface I {}\r\n\r\nconst goodHighlighting2 = <\r\n  T\r\n>(\r\n  arg: T\r\n) => {\r\n  const a = arg\r\n  return a\r\n}\r\n\r\nconst badHighlighting = <\r\n  T extends I,\r\n>(\r\n  arg: T\r\n) => {\r\n  const a = arg\r\n  return a\r\n}"
  },
  {
    "path": "tests/cases/Issue637a.ts",
    "content": "// @onlyOwnGrammar - since this example has slightly different scopes because of how cast expression works\r\nconst goodHighlighting = <T extends I>(\r\n  arg: T\r\n) => {\r\n  const a = arg\r\n  return a\r\n}"
  },
  {
    "path": "tests/cases/Issue637b.tsx",
    "content": "// @onlyOwnGrammar - since this example has slightly different scopes because of how cast expression works and isnt supported in the tsx file\r\nconst goodHighlighting = <T extends I>(\r\n  arg: T\r\n) => {\r\n  const a = arg\r\n  return a\r\n}"
  },
  {
    "path": "tests/cases/Issue638.ts",
    "content": "const\r\n  a = 1,\r\n  b: string = 'x'"
  },
  {
    "path": "tests/cases/Issue639.ts",
    "content": "var g = function() {console.log(1);};\r\nvar x = (function(){}/0); // bad highlighting\r\nvar y = (function(){}/0/g);\r\nvar z = (function(){}/0/g)/g(function(){}/0/g);"
  },
  {
    "path": "tests/cases/Issue64.ts",
    "content": "res.sendfile = deprecate.function(res.sendfile,\r\n  'res.sendfile: Use res.sendFile instead');\r\n\r\n// some comment\r\n\r\nres.download = function download(path, filename, fn) {\r\n  // something\r\n}"
  },
  {
    "path": "tests/cases/Issue642.ts",
    "content": "export declare class TestClient {\r\n    private readonly test1;\r\n}"
  },
  {
    "path": "tests/cases/Issue643.ts",
    "content": "export class TestClient {\r\n    private readonly test1;\r\n    private readonly test2?;\r\n    private readonly test3;\r\n    private readonly test4;\r\n}"
  },
  {
    "path": "tests/cases/Issue646.ts",
    "content": "// Good\r\nconst foo = 5; // The json data that the extension sent\r\nconsole.log(`${foo}`)\r\n\r\n// Good\r\nconst foo = 5\r\nconsole.log(`${foo}`)\r\n\r\n// Bad\r\nconst foo = 5 // The json data that the extension sent\r\nconsole.log(`${foo}`)"
  },
  {
    "path": "tests/cases/Issue647.ts",
    "content": "function doesSomething2(value: number) {\r\n  if (value as number < 10) {\r\n    return \"huh\"\r\n  } else {\r\n    return null;\r\n  }\r\n}"
  },
  {
    "path": "tests/cases/Issue65.ts",
    "content": "class Foo() {\r\n  get something(): any/*Something*/ {\r\n    throw new Error('Error...');\r\n  }\r\n\r\n  foo() {\r\n    'string';\r\n  }\r\n}"
  },
  {
    "path": "tests/cases/Issue650.ts",
    "content": "export /* comment */ class MyClass{\r\n}"
  },
  {
    "path": "tests/cases/Issue651.ts",
    "content": "interface DagEdge {\r\n    a?,\r\n    b\r\n}\r\nvar a = 1;"
  },
  {
    "path": "tests/cases/Issue652.ts",
    "content": "const test2 = \"x\" + \r\n\t\"y\"; statement;"
  },
  {
    "path": "tests/cases/Issue653.ts",
    "content": "export default interface IFoo {\n    x: string;\n}"
  },
  {
    "path": "tests/cases/Issue654.ts",
    "content": "let app = 1 \r\n{\r\n\t1 + 1\r\n}"
  },
  {
    "path": "tests/cases/Issue66.tsx",
    "content": "const a = new Array<{}>();\r\n// syntax highlighting wrong from here on out, due to '{}'\r\n\r\nclass Thing {\r\n    render() {\r\n\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue661.ts",
    "content": "// breaks when '{' start in a new line behind a '('\r\nconst foo = () => (\r\n  {\r\n    num: 1,\r\n    foo: 'foo',\r\n    bar: `bar`,\r\n    //  '=' break all following highlighting\r\n    baz: `baz=${123}`,\r\n  }\r\n);\r\n\r\nclass TestColor extends Foo {\r\n  public init() {}\r\n}"
  },
  {
    "path": "tests/cases/Issue662.ts",
    "content": "const a = (() => {\r\n\tlet exports;\r\n\texports = {\r\n\t\tx: {},\r\n\t};\r\n\tif (exports.x) {\r\n\t\tconsole.log(\"\");\r\n\t}\r\n});\r\n\r\n// no highlighting\r\nclass C {}\r\nfunction f() {}"
  },
  {
    "path": "tests/cases/Issue663.ts",
    "content": "export default function foo(): void;\r\nexport default function foo(bar: string): void;\r\nexport default function foo(bar?: string): void\r\n{ }"
  },
  {
    "path": "tests/cases/Issue665.ts",
    "content": "import * as _ from 'lodash';\r\nimport * as $ from 'jquery';\r\nimport * as React from 'react';"
  },
  {
    "path": "tests/cases/Issue666.ts",
    "content": "switch (0) // discard and renew state per mode\r\n{\r\n}\r\nthis.foo({\r\n   one, two, three // some comment\r\n})"
  },
  {
    "path": "tests/cases/Issue667.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\r\nconst foo = <Foo itemIcon={tabDef.ItemID ? (tabDef.Image || null) : 'Add'} onRenderItemLink={(props) => { }}>text</Foo>;"
  },
  {
    "path": "tests/cases/Issue668.ts",
    "content": "class c {\r\n\treadonly options: string[] = _.map(this.objects, 'name').\r\n\t  concat('Blob', 'Time', 'String', 'Boolean', 'Date', 'Datetime', 'Decimal', 'Double', 'ID', 'Integer', 'Long', 'Object')\r\n}"
  },
  {
    "path": "tests/cases/Issue670.ts",
    "content": "const Foo = {\r\n    /*good*/foooo/*good*/:/*good*/ 123/*good*/, \r\n    /*good*/'foo'/*BAD*/: 456, \r\n    /*good*/\"fooo\"/*BAD*/: 789, \r\n}"
  },
  {
    "path": "tests/cases/Issue672.ts",
    "content": "export function computed<K extends string | symbol>(...watchedProps: K[]) {\r\n  if (watchedProps.length < 1) throw new Error('@computed() decorator must have at least one property argument');\r\n\r\n  return <V, T extends Record<K, any>>(\r\n    _target: T,\r\n    _prop: string | symbol,\r\n    desc: TypedPropertyDescriptor<V>\r\n  ) => {\r\n    if (!desc.get) throw new Error('The `@computed()` decorator must be used on `get` method.');\r\n    if (desc.set) throw new Error('The `@computed()` decorator cannot be used with `set` method.');\r\n    if (desc.value) throw new Error('The `@computed()` decorator cannot be used with a regular function.');\r\n    // ....\r\n  };\r\n}"
  },
  {
    "path": "tests/cases/Issue673.ts",
    "content": "+new Date - 1 < 2;\r\nvar abc = 'abc';\r\nfunction abc2() { }"
  },
  {
    "path": "tests/cases/Issue674.ts",
    "content": "const column = {\r\n    render: (a) =>\r\n    // a,\r\n    {\r\n        const b = this.state;\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue675.ts",
    "content": "type T = { a: number } & ({ b: number })"
  },
  {
    "path": "tests/cases/Issue677.ts",
    "content": "function main(url: string)\r\n: Promise<any> {\r\n    return new Promise((accept, reject) => {\r\n        const text = window.prompt();\r\n        accept(text);\r\n    });\r\n}"
  },
  {
    "path": "tests/cases/Issue677arrow.ts",
    "content": "const  func2 = (url: string)\r\n: Promise<any> => {\r\n    return new Promise((accept, reject) => {\r\n        const text = window.prompt();\r\n        accept(text);\r\n    });\r\n}\r\nconst  func2a = (url)\r\n: Promise<any> => {\r\n    return new Promise((accept, reject) => {\r\n        const text = window.prompt();\r\n        accept(text);\r\n    });\r\n}"
  },
  {
    "path": "tests/cases/Issue683.ts",
    "content": "for (var i = 0 in collection) {\r\n    const x = 1; // Not classified\r\n}"
  },
  {
    "path": "tests/cases/Issue684.ts",
    "content": "// @onlyOwnGrammar - As this has type assertion\r\nfunction f(p: string) {\r\n    return <number> <unknown> p;\r\n}"
  },
  {
    "path": "tests/cases/Issue685.ts",
    "content": "const x = {\r\n  success: (state, { payload }): IState =>\r\n    R.compose<typeof payload, IState, IState>(\r\n      R.merge<IState>(state),\r\n      R.reduce(\r\n        (acc, channel) =>\r\n          setChannel(channel.id)(\r\n            {\r\n              data: omitStoreEntities(channel),\r\n              status: Status.LOADED,\r\n              error: null,\r\n            },\r\n            acc\r\n          ),\r\n        R.clone(initialState)\r\n      )\r\n    )(payload),\r\n};"
  },
  {
    "path": "tests/cases/Issue686.ts",
    "content": "({\r\n    a: () => { },\r\n    b: (/**/) => { },\r\n});"
  },
  {
    "path": "tests/cases/Issue687.ts",
    "content": "export interface ObjectAllocator { \r\n        getTokenConstructor(): new <TKind extends SyntaxKind>(kind: TKind, pos?: number, end?: number) => Token<TKind>; \r\n}"
  },
  {
    "path": "tests/cases/Issue688.ts",
    "content": "/**\r\n * @privateRemarks \r\n * Bla bla bla.\r\n */\r\nconst foo = 1"
  },
  {
    "path": "tests/cases/Issue689.ts",
    "content": "const x = 1;\r\nconst y = (\r\n    x > x ? 2 :\r\n    x < x ? 3 :\r\n    4\r\n);\r\nconst foo = y;\r\nconst bar = `${x} ${y}`;"
  },
  {
    "path": "tests/cases/Issue692.ts",
    "content": "export function isInOpenInterval(start: number, end: number) {\r\n  return tersible(a => a > start && a < end, () => `(${start}...${end})`)\r\n}\r\nexport function isInClosedInterval(start: number, end: number) {\r\n  return tersible(a => a >= start && a <= end, () => `[${start}...${end}]`)\r\n}"
  },
  {
    "path": "tests/cases/Issue695.ts",
    "content": "export type bindActionsToPayloadReturns = <A, M extends ActionCreatorsMapObject<A>>(\r\n  actionCreators: M,\r\n  dispatch: Dispatch\r\n) => ActionsWithPromises<M>;\r\n\r\nexport const bindActions = bindActionCreators as bindActionsToPayloadReturns;"
  },
  {
    "path": "tests/cases/Issue698.ts",
    "content": "const children = [].map<Set<Map<number, string>>>(element => {\r\n\tif (!this.identityProvider) {\r\n\t\treturn element;\r\n\t}\r\n\treturn element;\r\n});"
  },
  {
    "path": "tests/cases/Issue701.ts",
    "content": "class Cl {\r\n    one?: string;\r\n    two!: string;\r\n}\r\nlet x! = 1;"
  },
  {
    "path": "tests/cases/Issue702.ts",
    "content": "const t = () =>\r\n`a`"
  },
  {
    "path": "tests/cases/Issue711.ts",
    "content": "a => (\r\n\t{\r\n\t\ta: /^mods\\//, b: 2\r\n\t});"
  },
  {
    "path": "tests/cases/Issue715.ts",
    "content": "interface TestCafeFactory {\r\n  Selector(\r\n    init:\r\n          | string\r\n      | ((...args: any[]) => Node | Node[] | NodeList | HTMLCollection)\r\n      | Selector\r\n      | NodeSnapshot\r\n      | SelectorPromise,\r\n    options?: SelectorOptions\r\n  ): Selector;\r\n}"
  },
  {
    "path": "tests/cases/Issue717.ts",
    "content": "/* regex? */\r\nfunction test() {\r\n   return /\"/.test('xxx\"xxx');\r\n}\r\n\r\nconsole.log(test());\r\na = 3 /*test*/ / parseInt(/.+/.exec('3f23fg')[0]);\r\nconsole.log(a);\r\n\r\nb = 1\r\na = () => b\r\n2 + (b=2), 3\r\nb = 6\r\nconsole.log(a(),b);\r\n(b)\r\n\r\nif (a === 1) {\r\n   b = 2\r\n} else if (a === 2) b = 3\r\nelse b = 4\r\nc = 1"
  },
  {
    "path": "tests/cases/Issue720.ts",
    "content": "class Bar {\r\n  myFunc1 = () =>\r\n    1 < 2 &&\r\n    2 > 1 &&\r\n    FOO < FOOO;\r\n  myFunc2 = () =>\r\n    1 < 2 &&\r\n    2 > 1 &&\r\n    FOO < FOOO;\r\n}"
  },
  {
    "path": "tests/cases/Issue721.ts",
    "content": "class Foo {\r\n  prop = () =>\r\n    this.condition\r\n      ? fn(this.value)\r\n      : fn(this.value)\r\n}"
  },
  {
    "path": "tests/cases/Issue724.ts",
    "content": "class C {\r\n\r\n  a(){return false}\r\n  b(){return false}\r\n\r\n  Works(){\r\n    return this.a()\r\n    ? true\r\n    : this.b()\r\n      ? false\r\n      : true;\r\n  }\r\n\r\n  doesNotWork = () =>\r\n    this.a()\r\n    ? true\r\n    : this.b()\r\n      ? false\r\n      : true; // fails for apparently any keyword, e.g. \"undefined\", \"null\", ...\r\n\r\n  alsoWorks = () =>\r\n    this.a() ? true : this.b() ? false : true;\r\n\r\n}"
  },
  {
    "path": "tests/cases/Issue727.ts",
    "content": "styled.div``"
  },
  {
    "path": "tests/cases/Issue728.ts",
    "content": "export default abstract class AbstractClass {}"
  },
  {
    "path": "tests/cases/Issue730.ts",
    "content": "object.length('it should be function type')"
  },
  {
    "path": "tests/cases/Issue732.ts",
    "content": "function validateEmail(e) {\r\n    if (true) /\"/.test(e); return 1 + 1;\r\n}"
  },
  {
    "path": "tests/cases/Issue737.ts",
    "content": "function foo() {\r\n    return /(?:(Z))?/\r\n}\r\n\r\nexport const bar = true"
  },
  {
    "path": "tests/cases/Issue741.ts",
    "content": "class CategoriesComponent {\r\n    x() {\r\n        subscribe(data => { if (data) console.log(1) })\r\n    }\r\n\r\n    private checkCompanyRole() {\r\n        return this\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue743.ts",
    "content": "type Test = {\r\n    okay: string;\r\n    broken1: readonly { a: string; b: number; }[];\r\n    broken2: readonly { a: number; b: string; }[];\r\n};"
  },
  {
    "path": "tests/cases/Issue744.ts",
    "content": "interface Foo {\r\n\tfoo<T = Array<Array<void>>>(): void; // breaks all following lines\r\n\tfoo(): void;\r\n}\r\n\r\ninterface Foo2 {\r\n\tfoo<T extends Array<Array<void>>>(): void; // breaks all following lines\r\n\tfoo(): void;\r\n}"
  },
  {
    "path": "tests/cases/Issue748.ts",
    "content": "// @onlyOwnGrammar - As this has type assertion\r\ntype X = A | B;\r\ntype A = string;\r\ntype B = number;\r\nfunction foo<T extends X>(arg: T): T extends B ? number : string {\r\n  if (arg === \"A\") return <T extends B ? number : never>111;\r\n  return <T extends B ? never : string>\"returning a string\";\r\n}\r\nfoo(\"A\");\r\nfoo(1);"
  },
  {
    "path": "tests/cases/Issue750.ts",
    "content": "const dummy  = (div, g) => {\r\n  ( []              /([(div)])/g / [] );\r\n  ( ([])            /([(div)])/g / [] );\r\n  ( [] /* */        /([(div)])/g / [] );\r\n};"
  },
  {
    "path": "tests/cases/Issue751.ts",
    "content": "export const o: any = {\r\n  shortValuationPdfUuid: (\r\n  ): Array<Map<string, number>> => {\r\n    return [];\r\n  }\r\n}"
  },
  {
    "path": "tests/cases/Issue754.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\r\nconst b = <Element />;\r\nconst a = /**/ <Element />;"
  },
  {
    "path": "tests/cases/Issue756.ts",
    "content": "for (const [key, value]of dict) { // No highlighting after 'of'.\r\n  console.log('hello, world')\r\n}"
  },
  {
    "path": "tests/cases/Issue760.ts",
    "content": "var a = {'\\\\': '('};"
  },
  {
    "path": "tests/cases/Issue762.ts",
    "content": "Date as any || null"
  },
  {
    "path": "tests/cases/Issue763.ts",
    "content": "interface SomeInterface {\r\n  onStart(callback: Function): void;\r\n  onError(callback: (obj: { videoPath: string }) => void): void;\r\n}"
  },
  {
    "path": "tests/cases/Issue766.ts",
    "content": "let a: { prop1, prop2 };"
  },
  {
    "path": "tests/cases/Issue77.ts",
    "content": "// @onlyOwnGrammar - As this has type assertion\r\n// trailing part of some real code...\r\n\r\nnull, <{[key]: () => any}> null\r\n\r\n// no syntax highlighting from here down...\r\n\r\nfunction foo():{a: string} { }\r\n\r\nnull, <{[key]: () =>{a: number}}> null\r\n\r\n// no syntax highlighting from here down...\r\n\r\nfunction foo() { }"
  },
  {
    "path": "tests/cases/Issue774.ts",
    "content": "import util from \"util\"\r\nimport chalk from \"chalk\" // import\r\n\r\nconst Levels = {\r\n    0: { label: \"DEBUG\", color: chalk.gray.bold },\r\n    1: { label: \"INFO \", color: chalk.blueBright.bold },\r\n    2: { label: \"WARN \", color: chalk.magenta.bold },\r\n    3: { label: \"ERROR\", color: chalk.red.bold },\r\n}\r\ntype Level = keyof typeof Levels"
  },
  {
    "path": "tests/cases/Issue780.ts",
    "content": "// @onlyOwnGrammar - As this has type parameters that would be jsx in tsx files\r\nconst f0 = <T extends any>(p: {\r\n    a: string\r\n    b: T\r\n}) => async () => p.a + p.b\r\n\r\n\r\nconst f1 = <T extends any>({ a, b }: {\r\n    a: string\r\n    b: T\r\n}) => async () => a + b\r\n\r\n\r\nconst f2 = <T extends any>({ a, b }: {\r\n    a: string\r\n    b: T\r\n}) => async () => a + b"
  },
  {
    "path": "tests/cases/Issue782.ts",
    "content": "var a = '\\u1234 \\u{1F600}'"
  },
  {
    "path": "tests/cases/Issue785.ts",
    "content": "function getFoo() { return <T, P>(t: T) => {t}}\r\n\r\nconst stuff = { foo: getFoo()<string, number>('ddd') }\r\n\r\n//const v = {\r\n//  title: ''\r\n//}\r\n\r\nconsole.log('highlight is broken unless object literal defined above')\r\nconst a = ''\r\nfunction hello() {\r\n  return 10\r\n}\r\n\r\ninterface Bar {\r\n  count: number\r\n}"
  },
  {
    "path": "tests/cases/Issue786.ts",
    "content": "const a = \"6\" / 2; /*comment*/ const b = 5;"
  },
  {
    "path": "tests/cases/Issue787.ts",
    "content": "console.log(\"4\" / \"2\"); // 2"
  },
  {
    "path": "tests/cases/Issue790.ts",
    "content": "[1, 2, 3].reduce<readonly number[]>((previous) => previous, []);"
  },
  {
    "path": "tests/cases/Issue791.ts",
    "content": "const test = (foo, bar) => `${foo} ${bar}`\r\n\r\nconst test2 = (\r\n  foo,\r\n  bar\r\n) => `${foo} ${bar}`\r\n\r\nfunction test3(foo, bar) {\r\n  return `${foo} ${bar}`\r\n}\r\nfunction test4(\r\n  foo,\r\n  bar\r\n) {\r\n  return `${foo} ${bar}`\r\n}"
  },
  {
    "path": "tests/cases/Issue793.ts",
    "content": "return`tagged string`;"
  },
  {
    "path": "tests/cases/Issue794.tsx",
    "content": "// @onlyOwnGrammar - contains jsx\r\n<Image source={image} style={{ aspectRatio: image.width! / image.height! }} />"
  },
  {
    "path": "tests/cases/Issue796.ts",
    "content": "const h = {\r\n  setSubProperty: <\r\n      T extends A,\r\n      K extends keyof T,\r\n      J extends keyof T[K]\r\n    >(\r\n      property: K,\r\n      key: J,\r\n      value: T[K][J]\r\n    ) =>  {}\r\n}"
  },
  {
    "path": "tests/cases/Issue797.ts",
    "content": "class Foo {\r\n    declare baz: any;\r\n}"
  },
  {
    "path": "tests/cases/Issue811.tsx",
    "content": "const a = styled<{\r\n    padding: string\r\n}>`\r\n\t123\r\n`;"
  },
  {
    "path": "tests/cases/Issue816.ts",
    "content": "const a = ({ abc: { abc: { abc } } }) => { }\r\nconst b = ({ abc: { abc } }) => { }"
  },
  {
    "path": "tests/cases/Issue82.ts",
    "content": "class Foo {\n    constructor(\n        test: number, // foo bar,\n        exitEditModeCallback: () => void // Used to re-enable View updates.\n    ) {\n        \n    }\n}"
  },
  {
    "path": "tests/cases/Issue822.ts",
    "content": "const ComponentContainer = f({})<Pick<null, \"a\">>`\r\n`;\r\n\r\nconst bla = 1;"
  },
  {
    "path": "tests/cases/Issue823.ts",
    "content": "function test(type, obj) {\r\n  return type in obj && 'broken';\r\n}"
  },
  {
    "path": "tests/cases/Issue832.ts",
    "content": "let a = /foo[]bar/;\r\nlet b = /foo[^]bar/;"
  },
  {
    "path": "tests/cases/Issue836.ts",
    "content": "const _actions = {} as {\r\n    [P in keyof Actions] : PropType<Parameters<Actions[P]> , \"0\"> extends object ? \r\n      (payload: PropType<Parameters<Actions[P]> , \"0\">) => void \r\n      : \r\n      () => void;\r\n  };"
  },
  {
    "path": "tests/cases/Issue840.ts",
    "content": "type Union<A,B> = A|B;\r\n\r\nconst fn = (\r\n// newline here\r\n): Array<Union<Array<number>, string>>=>{\r\n    try {\r\n        return [[1]]\r\n    } catch (e){\r\n        return [[1]]\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issue841.ts",
    "content": "type Foo = string\r\n\r\n(async () => {\r\n\tlet foo: string\r\n\r\n\ttry {\r\n\t\tfoo = \"hello\"\r\n\t} catch (error) {\r\n\t\t// Nothing\r\n\t}\r\n})()"
  },
  {
    "path": "tests/cases/Issue844.ts",
    "content": "declare const key: string;\r\ndeclare const value: string;\r\ndeclare const Classes: { [key: string]: any };\r\nconst k = value.slice(0, value.indexOf(\"<\"));\r\nnew Classes[value.slice(0, value.indexOf(\"<\"))]();\r\n"
  },
  {
    "path": "tests/cases/Issue846.ts",
    "content": "function foo(): number { return 42; }\r\nlet bar: ReturnType<typeof foo>;\r\nbar = 1;"
  },
  {
    "path": "tests/cases/Issue850.ts",
    "content": "x /= 2;"
  },
  {
    "path": "tests/cases/Issue858.ts",
    "content": "class Foo {\r\n    bar(): typeof Baz {\r\n        if (true) {\r\n            console.log('Hello World')\r\n        }\r\n        return\r\n    }\r\n}\r\nclass X {\r\n    constructor() {\r\n        foo(false ? typeof defaultValue : undefined);\r\n    }\r\n    public foo() { }\r\n}\r\nlet c: typeof a & [boolean][];\r\ntype Foo = { [K in keyof typeof foo & keyof typeof bar]: 1 };\r\nconst foo = {\r\n    get bar(): typeof foo['leet'] {\r\n        return this.leet;\r\n    },\r\n    leet: 1\r\n};"
  },
  {
    "path": "tests/cases/Issue868.ts",
    "content": "class Foo {\r\n    override bar() { }\r\n}"
  },
  {
    "path": "tests/cases/Issue87.ts",
    "content": "if (!req.body.new) {\r\n    // Return early if no new password is provided\r\n    return res.status(400).send('New password is requied');\r\n}"
  },
  {
    "path": "tests/cases/Issue870.ts",
    "content": "const a = [1]\r\ntype Test<A> = {\r\n    2: 2;\r\n    3: 3;\r\n}[A extends typeof a ? 2 : 3];\r\nconst foo = 30;"
  },
  {
    "path": "tests/cases/Issue88.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\r\nfunction foo() {\r\n return (\r\n     <div className=\"panel panel-default\">\r\n        <div className=\"panel-heading\">\r\n            <h3 className=\"panel-title\"><i className=\"fa fa-user\"></i> Log In</h3>\r\n        </div>\r\n        <div className=\"panel-body\">\r\n        </div>\r\n    </div>);\r\n}"
  },
  {
    "path": "tests/cases/Issue89.ts",
    "content": "export class A extends /*  */B implements/**/ C{\n\t\t\n}\n\n\n\nexport class D implements/**/  F extends /**/G  {\n\t\t\n}\n\n\nexport class E extends /**/H  implements/**/ One, Two, Three{\n\t\t\n}\n\n\nclass className extends class1 implements class2 {\n    \n}\n\n/*\n\tChecking comments \n*/\n"
  },
  {
    "path": "tests/cases/Issue90.ts",
    "content": " var a = 0;\n var b = 1;\n var c = a ^ b;\n\n"
  },
  {
    "path": "tests/cases/Issue921.ts",
    "content": "children0 instanceof Child === true;\nchildren0 instanceof Child.prototype.constructor === true;\nchildren0 instanceof(Child.prototype.constructor) === true;\nchildren0 instanceof dict.CONST.ctor === true;"
  },
  {
    "path": "tests/cases/Issue923.ts",
    "content": "// @onlyOwnGrammar - type parameters of arrow\n\nconst x = <a extends b> ( args:a ):a => {\n  return args;\n}\n\nconst x = <a>\n( args:a ):a => {\n  return args;\n}\n\nconst x = <a extends b>\n( args:a ):a => {\n  return args;\n}"
  },
  {
    "path": "tests/cases/Issue924.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\nrender(<Section title=\"Voice & Video\" />)"
  },
  {
    "path": "tests/cases/Issue96.ts",
    "content": "var letter;\nlet variable;\n\nvariable;\nletter;\n\nvar constenum = 10;\nconstenum += 10;\nconst enum E { }\n\nvar constable = \"I am rrrrrroyal!\";\nconstable += \" Royal, I say!\";"
  },
  {
    "path": "tests/cases/Issue964.ts",
    "content": "({\n    foo():{}{\n        let bar;//This line is gray, because tokenization thinks it is inside an object literal scope.\n        //The issue goes away if a space is present between the return type and the method block.\n    },\n    foo: ():{}=>{\n        let bar;//This works fine.\n    }\n});\nlet bar;\nfunction baz():{}{\n    let bar;//This also works fine.\n}"
  },
  {
    "path": "tests/cases/Issue975.ts",
    "content": "let abc: string\r\nabc.prop\r\n\r\nlet abc, def: string\r\nabc.prop"
  },
  {
    "path": "tests/cases/Issues573.ts",
    "content": "class Foo {\r\n    static a(): void {\r\n        let foo = true ? new String : \"\";\r\n    }\r\n\r\n    static b(): void {\r\n        // wrong\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/Issues597.ts",
    "content": "const a = {\r\n  x: (y: string) => {}\r\n};\r\n\r\nconst b = {\r\n  x: (\r\n    y: string\r\n  ) => {}\r\n};"
  },
  {
    "path": "tests/cases/Issues648.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\r\n<Test\r\n    a=''\r\n    b_c='111'\r\n    d=''\r\n/>"
  },
  {
    "path": "tests/cases/Issues649.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\r\n<Test_Component\r\n    a=''\r\n    b_c='111'\r\n    d=''\r\n/>"
  },
  {
    "path": "tests/cases/ParameterProperties.ts",
    "content": "class A {\n\tconstructor(private a: string, protected b: string, public c: string) {\n\t}\n\tfoo() {\n\t\treturn this.a + this.b + this.c;\n\t}\n}"
  },
  {
    "path": "tests/cases/SyntacticallyIncorrectStrings.ts",
    "content": "// Test for https://github.com/Microsoft/TypeScript-Sublime-Plugin/pull/307\n\nclass SomeClass {\n    \"some string\"\n}\n\nvar y \"some string 2\"\n\n"
  },
  {
    "path": "tests/cases/TsxSamples.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\nclass MyComponent extends React.Component<Props, State>{\n    render() {\n        return <div onClick={this.stop}>\n            This is a test: {this.state.count}\n        </div>\n    }\n}\n\n// JSX in Depth\n// http://facebook.github.io/react/docs/jsx-in-depth.html\nvar App =\n    <Form>\n        <FormRow>\n            <FormLabel data=\"1\" />\n            <FormInput data=\"2\" />\n        </FormRow>\n    </Form>\n\nvar App2 = (\n    <Form>\n        <FormRow>\n            <FormLabel data='1' />\n            <FormInput data='2' />\n        </FormRow>\n      </Form>\n)\n\nvar content = (\n    <Nav>\n        {/* child comment, put {} around */}\n        <Person name={window.isLoggedIn ? window.name : ''}\n        />\n    </Nav>\n);\n\n// JSX Spread Attributes\n// http://facebook.github.io/react/docs/jsx-spread.html\nvar props = {};\nprops.foo = x;\nprops.bar = y;\nvar component = <Component {...props} />;\n\nvar props2 = { foo: 'default' }\nvar component2 = <Component {...props} foo={'override'} />\n\n// JSX Gotchas\n// http://facebook.github.io/react/docs/jsx-gotchas.html\nvar a = <div>{'First \\u00b7 Second'}</div>\nvar b = <div>{'First ' + String.fromCharCode(183) + ' Second'}</div>\nvar c = <div>{['First ', <span>&middot;</span>, ' Second']}</div>\nvar d = <div dangerouslySetInnerHTML={{__html: 'First &middot; Second'}} />\nvar e = <div data-custom-attribute=\"foo\" />\n"
  },
  {
    "path": "tests/cases/arbitraryModuleNamespaceIdentifiers.ts",
    "content": "import { \"a...\" as a } from \"./foo\";\nimport { type \"b...\" as b } from \"./foo\";\n\nexport { a as \"a...\" };\nexport { \"b...\" } from \"./foo\";\nexport { \"c...\" as c } from \"./foo\";\nexport { \"d...\" as \"d...\" } from \"./foo\";\n\nexport { type a as \"a...\" };\nexport { type \"b...\" } from \"./foo\";\nexport { type \"c...\" as c } from \"./foo\";\nexport { type \"d...\" as \"d...\" } from \"./foo\";\n\nexport * as \"a...\" from \"./foo\";\n"
  },
  {
    "path": "tests/cases/arrow.ts",
    "content": "var a = async p => {\r\n}\r\nclass C {\r\n}\r\nfunction foo() {\r\n    return <T extends C>(a: T) => {\r\n        return a;\r\n    };\r\n}"
  },
  {
    "path": "tests/cases/arrowInsideCall.ts",
    "content": "optsList.sort((a, b) => compareValues<string>(a.name.toLowerCase(), b.name.toLowerCase()));"
  },
  {
    "path": "tests/cases/assertions.ts",
    "content": "declare function isString(value: unknown): value is string;\r\ndeclare function isArrayOfStrings(value: unknown): value is string[];\r\n\r\nconst assert: (value: unknown) => asserts value = value => {}\r\n\r\ndeclare function assertIsString(value: unknown): asserts value is string;\r\ndeclare function assertIsArrayOfStrings(value: unknown): asserts value is string[];\r\ndeclare function assertDefined<T>(value: T): asserts value is NonNullable<T>;\r\n\r\nnamespace Debug {\r\n    export declare function assert(value: unknown, message?: string): asserts value;\r\n    export declare function assertDefined<T>(value: T): asserts value is NonNullable<T>;\r\n}\r\n\r\n class Test {\r\n    assert(value: unknown): asserts value {\r\n        if (value) return;\r\n        throw new Error();\r\n    }\r\n    isTest2(): this is Test2 {\r\n        return this instanceof Test2;\r\n    }\r\n    assertIsTest2(): asserts this is Test2 {\r\n        if (this instanceof Test2) return;\r\n        throw new Error();\r\n    }\r\n    assertThis(): asserts this {\r\n        if (!this) return;\r\n        throw new Error();\r\n    }\r\n    bar() {\r\n        this.assertThis();\r\n        this;\r\n    }\r\n    foo(x: unknown) {\r\n        this.assert(typeof x === \"string\");\r\n        x.length;\r\n        if (this.isTest2()) {\r\n            this.z;\r\n        }\r\n        this.assertIsTest2();\r\n        this.z;\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/autoAccessor.ts",
    "content": "class C {\r\n    accessor a: number;\r\n    accessor b = 1;\r\n    abstract accessor c: number;\r\n    static accessor d = 1;\r\n}\r\n"
  },
  {
    "path": "tests/cases/awaitColoring.ts",
    "content": "await 1;\r\nawaiting 1;"
  },
  {
    "path": "tests/cases/awaitUsedInExpression.ts",
    "content": "const body = await res.json();"
  },
  {
    "path": "tests/cases/awaitUsing.ts",
    "content": "// await using as expression\r\nawait using;\r\nawait using = a;\r\nawait using[x];\r\nawait using[x] = a;\r\nawait using.x;\r\nawait using.x = a;\r\n[await using];\r\n[await using] = a;\r\n({x: await using});\r\n({x: await using} = a);\r\na = await using;\r\na = await using[x];\r\na = [await using];\r\na = {x: await using};\r\nasync function f(a = await using) {}\r\nasync () => await using;\r\nclass C extends (await using) {}\r\nclass C<using> {}\r\nclass C { [await using]; }\r\nclass C { static [await using]; }\r\nclass C { readonly [await using]; }\r\nclass C { declare [await using]; }\r\nclass C { abstract [await using]; }\r\nclass C { accessor [await using]; }\r\nclass C { static accessor [await using]; }\r\nclass C { readonly accessor [await using]; }\r\nclass C { [await using]() {} }\r\nclass C { static [await using]() {} }\r\nclass C { abstract [await using]() }\r\nclass C { get [await using]() {} }\r\nclass C { static get [await using]() {} }\r\nclass C { abstract get [await using](); }\r\nclass C { set [await using]() {} }\r\nclass C { static set [await using](v) {} }\r\nclass C { abstract set [await using](v); }\r\nenum E { a = await using };\r\nswitch (await using) {\r\n    case await using:\r\n}\r\nfor (await using;;);\r\nfor (await using[x];;);\r\n\r\nawait using\r\nx = a;\r\n\r\nawait\r\nusing\r\nx = a;\r\n\r\nawait using\r\n[x] = a;\r\n\r\nawait\r\nusing\r\n[x] = a;\r\n\r\n// await using as keyword\r\nawait using x = a;\r\nawait using x = a, y = b;\r\n\r\nawait using x\r\n= a;\r\n\r\nawait using x\r\n= a, y = b;\r\n\r\nawait using x = a\r\n    , y = b;\r\n\r\nawait using x = a,\r\n      y = b;\r\n\r\nfor (await using x of a);\r\nfor (await using x = a;;);\r\nfor (await using x = a, y = b;;);\r\n\r\nfor (await using x\r\n= a;;);\r\n\r\nfor (await using x\r\n= a, y = b;;);\r\n\r\nfor (await using x = a\r\n         , y = b;;);\r\n\r\nfor (await using x = a,\r\n           y = b;;);\r\n\r\nfunction f() {\r\n    await using x = a;\r\n}\r\n\r\n(() => {\r\n    await using x = a;\r\n})\r\n\r\nnamespace N {\r\n    await using x = a;\r\n}\r\n\r\nclass C {\r\n    constructor() {\r\n        await using x = a;\r\n    }\r\n    method() {\r\n        await using x = a;\r\n    }\r\n    get p() {\r\n        await using x = a;\r\n    }\r\n    set p(v) {\r\n        await using x = a;\r\n    }\r\n    static {\r\n        await using x = a;\r\n    }\r\n}\r\n\r\n// await using as expression, illegal syntax\r\nawait using {x};\r\nawait using {x: y};\r\n\r\n// await using as keyword, illegal syntax\r\nawait using x;\r\nawait using x, y;\r\nawait using x, [y];\r\nawait using x, {y};\r\nawait using x, {y: z};\r\nawait using x = a, y;\r\nawait using x = a, [y];\r\nawait using x = a, {y};\r\nawait using x = a, {y: z};\r\ndeclare await using x;\r\ndeclare await using x = a;\r\nexport await using x;\r\nexport await using x = a;\r\n"
  },
  {
    "path": "tests/cases/awaited.ts",
    "content": "let v1: awaited number;\r\nlet v2: awaited Promise<number>;\r\nfunction f7<U>() {\r\n    let v0: awaited U;\r\n    let v1: awaited Promise<U>;\r\n\r\n}"
  },
  {
    "path": "tests/cases/bigint.ts",
    "content": "// All bases should allow \"n\" suffix\r\nconst bin = 0b101, binBig = 0b101n; // 5, 5n\r\nconst oct = 0o567, octBig = 0o567n; // 375, 375n\r\nconst hex = 0xC0B, hexBig = 0xC0Bn; // 3083, 3083n\r\nconst dec = 123,   decBig = 123n;\r\n\r\n// Test literals whose values overflow a 53-bit integer\r\n// These should be represented exactly in the emitted JS\r\nconst largeBin = 0b10101010101010101010101010101010101010101010101010101010101n; // 384307168202282325n\r\nconst largeOct = 0o123456712345671234567n; // 1505852261029722487n\r\nconst largeDec = 12345678091234567890n;\r\nconst largeHex = 0x1234567890abcdefn; // 1311768467294899695n\r\n\r\n// Test literals with separators\r\nconst separatedBin = 0b010_10_1n; // 21n\r\nconst separatedOct = 0o1234_567n; // 342391n\r\nconst separatedDec = 123_456_789n;\r\nconst separatedHex = 0x0_abcdefn; // 11259375n\r\n\r\n// Test parsing literals of different bit sizes\r\n// to ensure that parsePseudoBigInt() allocates enough space\r\nconst zero         = 0b0n;\r\nconst oneBit       = 0b1n;\r\nconst twoBit       = 0b11n; // 3n\r\nconst threeBit     = 0b111n; // 7n\r\nconst fourBit      = 0b1111n; // 15n\r\nconst fiveBit      = 0b11111n; // 31n\r\nconst sixBit       = 0b111111n; // 63n\r\nconst sevenBit     = 0b1111111n; // 127n\r\nconst eightBit     = 0b11111111n; // 255n\r\nconst nineBit      = 0b111111111n; // 511n\r\nconst tenBit       = 0b1111111111n; // 1023n\r\nconst elevenBit    = 0b11111111111n; // 2047n\r\nconst twelveBit    = 0b111111111111n; // 4095n\r\nconst thirteenBit  = 0b1111111111111n; // 8191n\r\nconst fourteenBit  = 0b11111111111111n; // 16383n\r\nconst fifteenBit   = 0b111111111111111n; // 32767n\r\nconst sixteenBit   = 0b1111111111111111n; // 65535n\r\nconst seventeenBit = 0b11111111111111111n; // 131071n\r\n\r\n// Test negative literals\r\nconst neg = -123n;\r\nconst negHex: -16n = -0x10n;\r\n\r\n// Test normalization of bigints -- all of these should succeed\r\nconst negZero: 0n = -0n;\r\nconst baseChange: 255n = 0xFFn;\r\nconst leadingZeros: 0xFFn = 0x000000FFn;\r\n\r\n// Plus not allowed on literals\r\nconst unaryPlus = +123n;\r\nconst unaryPlusHex = +0x123n;\r\n\r\n// Parsing errors\r\n// In separate blocks because they each declare an \"n\" variable\r\n{ const legacyOct = 0123n; }\r\n{ const scientific = 1e2n; }\r\n{ const decimal = 4.1n; }\r\n{ const leadingDecimal = .1n; }\r\nconst emptyBinary = 0bn; // should error but infer 0n\r\nconst emptyOct = 0on; // should error but infer 0n\r\nconst emptyHex = 0xn; // should error but infer 0n\r\nconst leadingSeparator = _123n;\r\nconst trailingSeparator = 123_n;\r\nconst doubleSeparator = 123_456__789n;\r\n\r\n// Using literals as types\r\nconst oneTwoOrThree = (x: 1n | 2n | 3n): bigint => x ** 2n;\r\noneTwoOrThree(0n); oneTwoOrThree(1n); oneTwoOrThree(2n); oneTwoOrThree(3n);\r\noneTwoOrThree(0);  oneTwoOrThree(1);  oneTwoOrThree(2);  oneTwoOrThree(3);"
  },
  {
    "path": "tests/cases/binder.ts",
    "content": "    function createBinder(): (file: SourceFile, options: CompilerOptions) => void {\r\n        let Symbol: { new (flags: SymbolFlags, name: string): Symbol };\r\n        let classifiableNames: Map<string>;\r\n\r\n        const unreachableFlow: FlowNode = { flags: FlowFlags.Unreachable };\r\n    }"
  },
  {
    "path": "tests/cases/conditionalTypes.ts",
    "content": "type Diff1<T, U> = T extends U ? never : T\r\ntype TypeName<T> =\r\n    T extends string ? \"string\" :\r\n        T extends number ? \"number\" :\r\n            T extends boolean ? \"boolean\" :\r\n                T extends undefined ? \"undefined\" :\r\n                    T extends Function ? \"function\" :\r\n                        \"object\";\r\ntype Extracted<Struct>  = {\r\n\t[K in keyof Struct]: Struct[K] extends FooBar ? ExtractFooBar<Struct[K]> : Struct[K];\r\n\r\n}"
  },
  {
    "path": "tests/cases/constType.ts",
    "content": "let r2 = { x: 20, y: 10 } as const;\r\nlet r2 = {...p} as const;\r\nlet p1 = { x: 10, y: 20 as const };\r\nlet p2 = { 10 as const, 'foo' as const };"
  },
  {
    "path": "tests/cases/constTypeAssert.ts",
    "content": "// @onlyOwnGrammar - As this has type assertion\r\nlet r1 = <const>{ x: 10, y: 29, foo() { this.x = 20 } };"
  },
  {
    "path": "tests/cases/constTypeParameter.ts",
    "content": "// @onlyOwnGrammar - this has type parameters that would be jsx in tsx files\ndeclare function f1<const T>(x: T): T;\ndeclare function f2<const T, U>(x: T | undefined): T;\ndeclare function f3<const T>(x: T): T[];\ndeclare function f4<const T>(obj: [T, T]): T;\ndeclare function f5<const T>(obj: { x: T, y: T }): T;\ndeclare function f6<const T extends readonly unknown[]>(...args: T): T;\nclass C1<const T> {\n    constructor(x: T) {}\n    foo<const U>(x: U) { return x; }\n}\nconst C2 = class <const T> {}\nconst fx1 = <const T>(x: T) => x;\nconst fx2 = <const T,>(x: T) => x;\ninterface I1<const T> { x: T }  // Error\ninterface I2 {\n    f<const T>(x: T): T;\n}\ntype T1<const T> = T;  // Error\ntype T2 = <const T>(x: T) => T;\ntype T3 = { <const T>(x: T): T };\ntype T4 = new <const T>(x: T) => T;\ntype T5 = { new <const T>(x: T): T };\nfunction set<T, const P extends readonly string[]>(obj: T, path: P, value: GetPath<T, P>) {}"
  },
  {
    "path": "tests/cases/constants.ts",
    "content": "var x = true;\r\nvar y = false;\r\nvar a = undefined;\r\nvar b = NaN;\r\nvar c = +Infinity;\r\nvar d = -Infinity;\r\nvar e = Infinity;"
  },
  {
    "path": "tests/cases/constructorType.ts",
    "content": "type constructorType<T> = new <T>(a: T) => T;\r\ntype abstractConstructorType<T> = abstract new <T>(a: T) => T;"
  },
  {
    "path": "tests/cases/destructuringWithDefaults.ts",
    "content": "interface IOptions {\r\n    check: boolean;\r\n    files: string;\r\n    primary: string;\r\n}\r\nvar {\r\n    check: isReportMode = false,\r\n    files = '**/locals/*.json',\r\n    primary: primaryLanguage = 'en'\r\n}: IOptions = null;\r\nfunction sync({\r\n    check: isReportMode = false,\r\n    files = '**/locals/*.json',\r\n    primary: primaryLanguage = 'en'\r\n}: IOptions) {\r\n}\r\n\r\nvar [\r\n    check2 = false,\r\n    files2 = '**/locals/*.json',\r\n    primary2 = 'en'\r\n] = [];\r\nfunction sync2([\r\n    check2 = false,\r\n    files2 = '**/locals/*.json',\r\n    primary2 = 'en'\r\n]) {\r\n}"
  },
  {
    "path": "tests/cases/directives.ts",
    "content": "///<reference path=\"somePath.ts\"/>\r\n///<reference lib=\"es2015\"/>\r\n///<amd-dependency path=\"somePath.ts\"/>\r\n///<amd-module name=\"modulename\"/>\r\n///<amd-dependency path=\"someOtherPath.ts\" name=\"someOtherModule\"/>"
  },
  {
    "path": "tests/cases/docComments.ts",
    "content": "/**\r\n * This function takes two parameters\r\n * @param {string} param1 Some string param.\r\n * @param {number} param2  Some number param.\r\n * some other contents\r\n */\r\nfunction foo(param1: string, param2: number) {\r\n}"
  },
  {
    "path": "tests/cases/enumMemberWithIntializer.ts",
    "content": "export enum Foo {\n        A = 1 << 1,\n        B = 1 << 2,\n    }"
  },
  {
    "path": "tests/cases/enumMemberWithQuotedMemberName.ts",
    "content": "enum E1 {\r\n   \"foo\",\r\n   'foo2'\r\n}"
  },
  {
    "path": "tests/cases/exportDeclarations.ts",
    "content": "export { a as b, x };\r\nexport * from \"AnotherModule\";\r\nexport { k as m, l } from \"AnotherModule\";\r\nexport type { T };\r\nexport type { U } from \"AnotherModule\";\r\n"
  },
  {
    "path": "tests/cases/forof.ts",
    "content": "for (const x of y) {}\r\nfor await (const x of y) {}"
  },
  {
    "path": "tests/cases/generator.ts",
    "content": "module M {\r\n    function* f(s: string): Iterable<any>\r\n    function* f(s: number): Iterable<any>\r\n    function* f(s: any): Iterable<any> { }\r\n}\r\n\r\nconst a = 10, b = 10;\r\nclass c {\r\n    *method() {\r\n    }\r\n    *[a*b]() {\r\n    }\r\n    *'some*string'() {\r\n    }\r\n    * overload(s: string): string\r\n    * overload(n: number): number\r\n    * overload<T extends (string | number)>(sn: T): T {\r\n        return sn;\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/genericTaggedTemplate.ts",
    "content": "let a = tag<string | number> `${100} ${\"hello\"}`;"
  },
  {
    "path": "tests/cases/importAssert.ts",
    "content": "import './0' assert { type: \"json\" }\nimport { a, b } from './0' assert { \"type\": \"json\" }\nimport * as foo from './0' assert { type: \"json\" }\nimport { a, b } from './0' assert {}\nimport { a as c, b as d } from './0' assert { a: \"a\", b: \"b\", c: \"c\" }\nexport {} from './0' assert { type: \"json\" }\nexport { a, b } from './0' assert { type: \"json\" }\nexport * from './0' assert { type: \"json\" }\nexport * as ns from './0' assert { type: \"json\" }\nexport { a, b } from './0' assert {}\nexport { a as c, b as d } from './0' assert { a: \"a\", b: \"b\", c: \"c\" }\nexport type {} from './0' assert { type: \"json\" }\nexport type { I } from './0' assert { type: \"json\" }\nimport type { I } from './0'  assert { type: \"json\" }\nimport type * as foo from './0' assert { type: \"json\" }"
  },
  {
    "path": "tests/cases/importTypeOnly.ts",
    "content": "import type T from \"mod\";\nimport type { U, V } from \"mod\";\nimport type * as types from \"mod\";\nimport type from \"mod\";\nimport type = require(\"mod\");\nimport type T = require(\"mod\");\nimport { type X } from \"mod\";\nimport { X, type Y} from \"mod\";\nimport type { type X } from \"mod\"; // grammar error\nimport { type as foo } from \"mod\"; // not type-only\nimport { type type } from \"mod\";\nimport { type as as as } from \"mod\";\nimport { type type as as } from \"mod\";\nimport { type type as type } from \"mod\";\n"
  },
  {
    "path": "tests/cases/importTypes.ts",
    "content": "export const x: import(\"./foo\") = { x: 0, y: 0 };\r\nexport let y: import(\"./foo2\").Bar.I = { a: \"\", b: 0 };\r\nexport class Bar2 {\r\n    item: {a: string, b: number, c: object};\r\n    constructor(input?: any) {}\r\n}\r\nexport let shim: typeof import(\"./foo2\") = {\r\n    Bar: Bar2\r\n};"
  },
  {
    "path": "tests/cases/inferTypes.ts",
    "content": "type ReturnType<T extends Function> = T extends ((...args: any[]) => infer R) | (new (...args: any[]) => infer R) ? R : any;\r\ntype ArgumentType<T extends (x: any) => any> = T extends (a: infer A) => any ? A : any;\r\ntype X1<T extends { x: any, y: any }> = T extends { x: infer X, y: infer Y } ? [X, Y] : any;\r\ntype B1<S> = S extends A1<infer T, infer U> ? [T, U] : never;\r\ntype C1<S> = S extends A1<infer T extends number, infer U extends string> ? [T, U] : never;\r\n"
  },
  {
    "path": "tests/cases/intrinsic.ts",
    "content": "type Uppercase<S extends string> = intrinsic;\r\ntype Lowercase<S extends string> = intrinsic;\r\ntype Capitalize<S extends string> = intrinsic;"
  },
  {
    "path": "tests/cases/issue1005.ts",
    "content": "import foo from \"./foo.json\" with { type: \"json\" };"
  },
  {
    "path": "tests/cases/issue327.ts",
    "content": "interface X {\n    x(): void\n    y: number\n}\nexport function foo(): void\nclass x { }"
  },
  {
    "path": "tests/cases/issue522_1.ts",
    "content": "const brokenSyntaxHighlighting = () => {\n    const array = a ?? b ?? c ?? d ?? g;\n  \n    /**\n     * No TypeEror, but syntax highlighting is broken\n     */\n    const test = a ?? b ?? c ?? d ?? g;\n  \n    for (let i = 0; i < array.length; i++) {\n      console.log(array[i]);\n    }\n  };\n  \n  brokenSyntaxHighlighting();\n  "
  },
  {
    "path": "tests/cases/issue534.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\n<></>;\n<><span></span><><span></span></><div></div></>;\n\n<>\n    <span>hi</span>\n    <div>\n        <span>inside</span>\n    </div>\n</>;"
  },
  {
    "path": "tests/cases/issue776.ts",
    "content": "system.createHash()\r\nsystem.createHash!()"
  },
  {
    "path": "tests/cases/issue806.ts",
    "content": "class Foo {\r\n    public foo(): boolean {\r\n        return !/[():\\w]/.test('foo');\r\n    }\r\n\r\n    private bar(): void {}\r\n}"
  },
  {
    "path": "tests/cases/issue807.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx \r\nconst { loading, error, data } = useQuery<{\r\n  tasks: Array<Pick<Task, 'id' | 'title'>>\r\n}>(taskListQuery)\r\n\r\nif (loading) return <p>Loading...</p>\r\nif (error)\r\n  return (\r\n    <>\r\n      <p>Error :(</p>\r\n      <p>{`${error}`}</p>\r\n    </>\r\n  )"
  },
  {
    "path": "tests/cases/issue807ts.ts",
    "content": "const { loading, error, data } = useQuery<{\r\n  tasks: Array<Pick<Task, 'id' | 'title'>>\r\n}>(taskListQuery)\r\n\r\nif (loading) return true\r\nif (error)\r\n  return false"
  },
  {
    "path": "tests/cases/issue809.ts",
    "content": ";(false ? '' : ') =>') + ''\r\nconsole.log(\"hello\");"
  },
  {
    "path": "tests/cases/issue812.ts",
    "content": "type Foo = {\n  bar: number\n   | string;\n};"
  },
  {
    "path": "tests/cases/issue814.ts",
    "content": "class A{}\r\nclass B{}\r\n\r\nconst a = new A()\r\nconst b = new B()\r\n\r\na instanceof A !== b instanceof B\r\na instanceof A > b instanceof B\r\na instanceof A & b instanceof B"
  },
  {
    "path": "tests/cases/issue824.ts",
    "content": "export let a: string\n    | boolean | number;"
  },
  {
    "path": "tests/cases/issue907.ts",
    "content": "type A = typeof a extends number ? 0 : 1;"
  },
  {
    "path": "tests/cases/issue909.ts",
    "content": "class TestClass {\n  veryVeryVeryVeryVeryVeryVeryVeryLongName = true;\n  veryVeryVeryVeryLongName: string;\n\n  test = () =>\n    !this.veryVeryVeryVeryVeryVeryVeryVeryLongName ||\n    (!!this.veryVeryVeryVeryLongName && this.veryVeryVeryVeryLongName === 'veryVeryVeryVeryLongString');\n}"
  },
  {
    "path": "tests/cases/issue916.ts",
    "content": "func<string[]>(`hello`)\nfunc<string[]>`hello`"
  },
  {
    "path": "tests/cases/issue927.ts",
    "content": "let t = (\n  { test1: (ok(\"t\"), ok(\"t\")) }\n)"
  },
  {
    "path": "tests/cases/issue930.ts",
    "content": "var x = 3;\nx >>>= 1"
  },
  {
    "path": "tests/cases/issue932.ts",
    "content": "class A {\n    f = () => \n        false &&\n        (false) ||\n        (this.f);\n}"
  },
  {
    "path": "tests/cases/issue935.ts",
    "content": "export interface FeatureControl {\n    enableCompletionProvider?:\n    string\n    | {\n        processCompletions?(completion: CustomCompletionItem): vsc.CompletionItem[]\n    }\n}\n\nexport interface RegisterLanguageSupportOptions {\n    /** handle requesting position in document */\n    pathAutoRename?: {\n        glob: string\n        isSpecCanBeUsed?(specName): boolean | string\n    }\n}\n\nexport interface API {\n}"
  },
  {
    "path": "tests/cases/issue940.ts",
    "content": "class Foo {\n    readonly baz = \n        this.bar() ||\n        (this.bar() && \n        this.bar());\n\n    bar() {\n        return true;\n    }\n}"
  },
  {
    "path": "tests/cases/issue948.ts",
    "content": "class A {\n  #a =\n      /** @param {MouseEvent} arg */\n      arg => {\n          const someV = 132\n          if (true) {\n              doSomething()\n          }\n          while(false) {\n              \n          }\n      }\n}"
  },
  {
    "path": "tests/cases/issue949.ts",
    "content": "export interface PackageJson {\n    exports?:\n    | string\n    | Record<\n        string,\n        string | { types?: string; require?: string; import?: string }\n    >;\n}\n\nexport function foo() { }"
  },
  {
    "path": "tests/cases/issue951.ts",
    "content": "type thing = <T extends object>(what: T) => ReturnType<typeof generic<T>>"
  },
  {
    "path": "tests/cases/issue957.ts",
    "content": "export type UseQuery<TData, TVariables> = typeof useQuery<TData, TVariables>"
  },
  {
    "path": "tests/cases/issue971.ts",
    "content": "let a: number\r\nfor (let i = 0; i < 10; i++) {}\r\n\r\nlet x: string\r\nif (false) {\r\n}\r\n\r\n\r\nclass Test {\r\n  a() {\r\n    let x: string\r\n    if (false) {\r\n    }\r\n  }\r\n\r\n  b(): Promise<string> {\r\n    let y: string\r\n    if (false) {\r\n      ;[y] = ['']\r\n    } else {\r\n      if (true) {\r\n        let z = `:` // everything after this is colored as string\r\n      }\r\n    }\r\n  }\r\n\r\n  c() {}\r\n}\r\n\r\nlet x: number\r\ntry {\r\n} catch (err) {}\r\n"
  },
  {
    "path": "tests/cases/javascript.ts",
    "content": "switch (x) {\r\n    case 0:\r\n    default:\r\n}\r\ntypeof x;\r\nvoid x;\r\ndelete x.y;\r\nx instanceof y;"
  },
  {
    "path": "tests/cases/javascriptClasses.ts",
    "content": "MyClass.prototype.method = function () {\r\n}"
  },
  {
    "path": "tests/cases/jsdocProperty.ts",
    "content": "/**\r\n * @namespace\r\n * @property {object}  defaults               - The default values for parties.\r\n * @property {number}  defaults.players       - The default number of players.\r\n * @property {string}  defaults.level         - The default level for the party.\r\n * @property {object}  defaults.treasure      - The default treasure.\r\n * @property {number}  defaults.treasure.gold - How much gold the party starts with.\r\n */\r\nvar config = {\r\n    defaults: {\r\n        players: 1,\r\n        level:   'beginner',\r\n        treasure: {\r\n            gold: 0\r\n        }\r\n    }\r\n};\r\n/**\r\n * @class MyClass\r\n * @param {string} name It is a Input Name\r\n * @prop {string} name It is a Prop Name\r\n */\r\nclass MyClass {\r\n    constructor(name) {\r\n        this.name = name || 'NoName';\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/jsdocType.ts",
    "content": "/** @type {number} */\nconst d1 = 42;\n\n/** @satisfies {number} */\nconst d2 = 42;\n\nconst e1 = /** @type {number} */(23);\n\nconst e2 = /** @satisfies {number} */(23);\n"
  },
  {
    "path": "tests/cases/jsxTagWithTypeArguments.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\r\n<MyComponent<number> data={12} />"
  },
  {
    "path": "tests/cases/keyof.ts",
    "content": "class Shape {\r\n    name: string;\r\n    width: number;\r\n    height: number;\r\n    visible: boolean;\r\n}\r\n\r\ntype T01 = keyof Object;\r\n\r\ntype T10 = Shape[\"name\"];\r\n\r\ntype T30 = string[][\"length\"];\r\ntype T31 = string[][number];\r\n\r\ntype T50 = any[any];\r\ntype T51 = any[number];\r\ntype T52 = any[string];\r\n\r\ntype T60 = {}[\"toString\"];\r\ntype T61 = [][\"toString\"];\r\n\r\ndeclare let cond: boolean;\r\n\r\nfunction getProperty<T, K extends keyof T>(obj: T, key: K) {\r\n    return obj[key];\r\n}\r\n\r\nfunction setProperty<T, K extends keyof T>(obj: T, key: K, value: T[K]) {\r\n    obj[key] = value;\r\n}"
  },
  {
    "path": "tests/cases/mappedType.ts",
    "content": "type Item = { a: string, b: number, c: boolean };\r\n\r\ntype T1 = { [P in \"x\" | \"y\"]: number };  // { x: number, y: number }\r\ntype T2 = { [P in \"x\" | \"y\"]: P };  // { x: \"x\", y: \"y\" }\r\ntype T3 = { [P in \"a\" | \"b\"]: Item[P] };  // { a: string, b: number }\r\ntype T4 = { [P in keyof Item]: Date };  // { a: Date, b: Date, c: Date }\r\ntype T5 = { [P in keyof Item]: Item[P] };  // { a: string, b: number, c: boolean }\r\ntype T6 = { readonly [P in keyof Item]: Item[P] };  // { readonly a: string, readonly b: number, readonly c: boolean }\r\ntype T7 = { [P in keyof Item]: Array<Item[P]> };  // { a: string[], b: number[], c: boolean[] }\r\n\r\n// Make all properties in T optional\r\ntype Partial<T> = {\r\n    [P in keyof T]?: T[P];\r\n};\r\n\r\n// Make all properties in T readonly\r\ntype Readonly<T> = {\r\n    readonly [P in keyof T]: T[P];\r\n};\r\n\r\n// Pick a set of properties from T\r\ntype Pick<T, K extends keyof T> = {\r\n    [P in K]: T[P];\r\n}\r\n\r\n// A type with a given set of properties of a given type\r\ntype Record<K extends string | number, T> = {\r\n    [_ in K]: T;\r\n}\r\n\r\n// A proxy for a given type\r\ntype Proxy<T> = {\r\n    get(): T;\r\n    set(value: T): void;\r\n}\r\n\r\n// Proxify all properties in T\r\ntype Proxify<T> = {\r\n    [P in keyof T]: Proxy<T[P]>;\r\n}"
  },
  {
    "path": "tests/cases/modifierOperators.ts",
    "content": "type Mutable<T> = {\r\n    -readonly [P in keyof T]: T[P]\r\n}\r\ntype Required<T> = {\r\n    [P in keyof T]-?: T[P];\r\n}\r\ntype ReadonlyAndPartial<T> = {\r\n    +readonly [P in keyof T]+?: T[P];\r\n}"
  },
  {
    "path": "tests/cases/multilineArrow.ts",
    "content": "// @onlyOwnGrammar - As this has type parameters that would be jsx in tsx files\r\nconst method1 = <T>(\r\n    param1: T,\r\n    param2: T\r\n): Promise<T> => {\r\n    return param1;\r\n};\r\nconst method2 = async <T>(\r\n    param1: T,\r\n    param2: T\r\n): Promise<T> => {\r\n    return param1;\r\n};"
  },
  {
    "path": "tests/cases/multilineDestructuringParametersOfArrow.ts",
    "content": "class c {\r\n    private renderExploreItem = ({\r\n        item: offer\r\n    }: {\r\n        item: OfferModel | undefined\r\n    }) => {\r\n        return \"something\";\r\n    }\r\n}"
  },
  {
    "path": "tests/cases/multineTag.tsx",
    "content": "// @onlyOwnGrammar - contains jsx\r\nconst something = <T>(\r\n    sometext\r\n    )\r\n</T>;"
  },
  {
    "path": "tests/cases/multipleVariableDeclaration.ts",
    "content": "var a, b, c\nvar a1 = 1, b1 = function (x) { return 1; }, c1 = \"string\"\nvar a2: string = \"test\", b2: () => void = () => { console.log(\"hello\"); }, c2: string | number;\nvar obj = {\n\tfoo: \"10\"\n}, other = 10;"
  },
  {
    "path": "tests/cases/namedTuples.ts",
    "content": "export type Segment = [length: number, count: number];\r\nexport type SegmentAnnotated = [\r\n    /** \r\n     * Size of message buffer segment handles\r\n     */\r\n    length: number,\r\n    /**\r\n     * Number of segments handled at once\r\n     */\r\n    count: number\r\n];\r\ndeclare var c: [number, number];\r\ndeclare var d: [a: number, b: number];\r\nexport type WithOptAndRest = [first: number, second?: number, ...rest: string[]];\r\nexport function useState<T>(initial: T): [value: T, setter: (T) => void] {\r\n    return null as any;\r\n}\r\nexport type Iter = Func<[step: number, iterations: number]>;\r\nexport function readSegment([length, count]: [number, number]) {}\r\nexport type RecursiveTupleA = [initial: string, next: RecursiveTupleA];\r\nexport type RecusiveRest = [first: string, ...rest: RecusiveRest[]];\r\nexport type RecusiveRest2 = [string, ...RecusiveRest2[]];\r\n\r\nexport type Segment1 = [length: number, number]; // partially named, disallowed\r\nexport type List = [item: any, ...any];  // partially named, disallowed\r\nexport type Pair = [item: any, any?];  // partially named, disallowed\r\nexport type Opt = [element: string?]; // question mark on element disallowed\r\nexport type Trailing = [first: string, rest: ...string[]]; // dots on element disallowed\r\nexport type OptTrailing = [first: string, rest: ...string[]?]; // dots+question on element disallowed\r\nexport type OptRest = [first: string, ...rest?: string[]]; // rest+optional disallowed\r\nexport type NonArrayRest = [first: string, ...rest: number]; // non-arraylike rest, disallowed\r\nexport type RecusiveRestUnlabeled = [string, ...RecusiveRestUnlabeled];\r\nexport type RecusiveRest = [first: string, ...rest: RecusiveRest]; // marked as incorrect, same as above\r\n\r\n"
  },
  {
    "path": "tests/cases/namespaceAndModule.ts",
    "content": "namespace ts { }\r\nmodule ts { }\r\ndeclare namespace ts {}\r\ndeclare module ts {}\r\ndeclare module \"x\" {}"
  },
  {
    "path": "tests/cases/notMultilineArrow1.ts",
    "content": "// @onlyOwnGrammar - As this has type assertion\r\n                                useResult =\r\n                                    lastLocation.kind === SyntaxKind.Parameter ||\r\n                                    (\r\n                                        lastLocation === (<FunctionLikeDeclaration>location).type &&\r\n                                        result.valueDeclaration.kind === SyntaxKind.Parameter\r\n                                    );\r\n"
  },
  {
    "path": "tests/cases/notMultilineArrow2.ts",
    "content": "               if (s & (TypeFlags.Number | TypeFlags.NumberLiteral) && !(s & TypeFlags.EnumLiteral) && (\r\n                    t & TypeFlags.Enum || t & TypeFlags.NumberLiteral && t & TypeFlags.EnumLiteral)) return true;"
  },
  {
    "path": "tests/cases/notMultilineArrow3.ts",
    "content": "const modifiersRelated = relation === comparableRelation || (\r\n                    relation === identityRelation ? getMappedTypeModifiers(source) === getMappedTypeModifiers(target) :\r\n                        getCombinedMappedTypeOptionality(source) <= getCombinedMappedTypeOptionality(target));"
  },
  {
    "path": "tests/cases/numeric.ts",
    "content": "var a = 0xA;\r\nvar b = 0b1;\r\nvar c = 0o7;\r\nvar d = 1.1E+3;\r\nvar e = 1.E+3;\r\nvar f = .1E+3;\r\nvar g = 1E+3;\r\nvar h = 1.1;\r\nvar i = 1.;\r\nvar j = .1;\r\nvar k =  1;"
  },
  {
    "path": "tests/cases/numericAsType.ts",
    "content": "let a: 1 | 3 | 5 | 7 | 9;\r\ntype a = 1 | 3 | 5 | 7 | 9;"
  },
  {
    "path": "tests/cases/objectLiteral.ts",
    "content": "[\r\n {\r\n        \"line\": 2,\r\n        \"offset\": 27,\r\n        \"endLine\": 2,\r\n        \"endOffset\": 27,\r\n        \"insertString\": \"()\"\r\n    },\r\n    {\r\n        \"seq\": 191,\r\n    }\r\n];\r\n"
  },
  {
    "path": "tests/cases/objectLiteralWithCast.ts",
    "content": "// @onlyOwnGrammar - As this hasc cast\r\n// From Microsoft/TypeScript#24410\r\na\r\n\t.map(b => {\r\n\t\treturn <C>{\r\n\t\t\tc: { }\r\n\t\t};\r\n\t})\r\n\r\n// comment"
  },
  {
    "path": "tests/cases/objectType.ts",
    "content": "var a: object;"
  },
  {
    "path": "tests/cases/optionalChaining.ts",
    "content": "const array = a?.b?.c?.d?.g;\r\nconst prop = obj?.[expr];\r\nfunc?.(...args);"
  },
  {
    "path": "tests/cases/parameterBindingPattern.ts",
    "content": "// @onlyOwnGrammar - As this has type assertion\nfunction foo() {\r\n    return {\r\n        x: {\r\n            a: 10,\r\n            b: 20\r\n        },\r\n        y: {\r\n            c: \"hello\",\r\n            d: \"world\"\r\n        },\r\n        z: <[number, { hello: string }]>[10, { hello: \"Hello\" }]\r\n    };\r\n}\r\n\r\nfunction foo2({x: k, y: { c: d}, z: [e, { hello }], x } = foo()) {\r\n}\r\nfunction foo3({x: k, y: { c: d}, z: [e, { hello }], x }: {\r\n    x: {\r\n        a: number;\r\n        b: number;\r\n    };\r\n    y: {\r\n        c: string;\r\n        d: string;\r\n    };\r\n    z: [number, {\r\n        hello: string;\r\n    }];\r\n} = foo()) {\r\n}\r\n\r\nfunction bar() {\r\n    return <[{ hello: string },string]>[{ hello: \"Hello\" }, \"world\"];\r\n}\r\n\r\nfunction bar2([{hello}, world] = bar()) {\r\n}\r\nfunction bar3([{hello}, world]: [{ hello: string }, string] = bar()) {\r\n}"
  },
  {
    "path": "tests/cases/partialTypeArguments.ts",
    "content": "const instance1 = new Foo<_, _>(0, \"\");\r\nconst result1 = foo<_, string>(0, \"\");\r\nconst tagged1 = tag<_, string>`tags ${12} ${\"\"}`;\r\ntype A = Foo<_, string>;\r\nconst instance2 = new Foo<number, _>(0, \"\");\r\nconst result2 = foo<number, _>(0, \"\");\r\nconst tagged2 = tag<number, _>`tags ${12} ${\"\"}`;\r\ntype A2 = Foo<string, _>;\r\ntype A3 = _;"
  },
  {
    "path": "tests/cases/pr48_noSemiColon.ts",
    "content": "class Test {\n\tprivate data: TemplateData[] = []\n\tprivate options: TemplateOptions = {}\n\tprivate state = {}\n}\n\nexport type Stats = fs.Stats\nexport const touch = thenify(tch)\n\n/**\n * Verify comments\n */\nexport function isFile(path: string): Promise<boolean> {\n\treturn stat(path).then(stat => stat.isFile(), () => false)\n}\n\n\nexport const readFile = thenify<string, string, string>(fs.readFile)\nexport const writeFile = thenify<string, string | Buffer, void>(fs.writeFile)\n\n"
  },
  {
    "path": "tests/cases/pr557_namespacedJsx.tsx",
    "content": "// @onlyOwnGrammar - As this has jsx\nconst valid1 = <standard-tag standard-attribute=\"foo\" />;\n\nconst valid2 = <namespaced:tag namespaced:boolean-attr>foo</namespaced:tag>;\n\nconst valid3 = <namespaced:Klass.comp.onent namespaced:attr=\"foo\" />;\n\nconst invalid1 = <too:much:Namespace />;\n\nconst invalid2 = <namespaced-:Klass.Component too:much:namespace-attribute>foo</namespaced-:Klass.Component>;"
  },
  {
    "path": "tests/cases/privateFields.ts",
    "content": "class Greeter {\r\n    #name1: string;\r\n    #NAME2: string;\r\n    #NAMEabc: string;\r\n\r\n    #name2 = \"hello\";\r\n    #name3: string = \"hello\";\r\n    #name4;\r\n\r\n    #name11: () => string;\r\n    #NAME21: () => string;\r\n    #NAME1abc: () => string;\r\n\r\n    #name12 =  () => \"hello\";\r\n    #NAME22 =  () => \"hello\";\r\n    #NAME2abc =  () => \"hello\";\r\n\r\n    prop1 = x.#name1;\r\n    prop2 = x.#NAME2;\r\n    prop3 = x.#NAMEabc;\r\n\r\n    prop4 = x.#name1.abc;\r\n    prop5 = x.#NAME2.abc;\r\n    prop6 = x.#NAMEabc.abc;\r\n\r\n    prop7 = x.#name1.#abc;\r\n    prop8 = x.#NAME2.#abc;\r\n    prop9 = x.#NAMEabc.#abc;\r\n\r\n    propA = x.#name1.#NAME;\r\n    propB = x.#NAME2.#NAME;\r\n    propC = x.#NAMEabc.#NAME;\r\n\r\n    propD = x.#name1.#NAMEabc;\r\n    propE = x.#NAME2.#NAMEabc;\r\n    propF = x.#NAMEabc.#NAMEabc;\r\n    \r\n    prop11 = this.#name1;\r\n    prop21 = this.#NAME2;\r\n    prop31 = this.#NAMEabc;\r\n\r\n    prop41 = this.#name1.abc;\r\n    prop51 = this.#NAME2.abc;\r\n    prop61 = this.#NAMEabc.abc;\r\n\r\n    prop71 = this.#name1.#abc;\r\n    prop81 = this.#NAME2.#abc;\r\n    prop91 = this.#NAMEabc.#abc;\r\n\r\n    propA1 = this.#name1.#NAME;\r\n    propB1 = this.#NAME2.#NAME;\r\n    propC1 = this.#NAMEabc.#NAME;\r\n\r\n    propD1 = this.#name1.#NAMEabc;\r\n    propE1 = this.#NAME2.#NAMEabc;\r\n    propF1 = this.#NAMEabc.#NAMEabc;\r\n\r\n    prop12 = x.#name1();\r\n    prop22 = x.#NAME2();\r\n    prop32 = x.#NAMEabc();\r\n\r\n    prop42 = x.#name1().abc;\r\n    prop52 = x.#NAME2().abc;\r\n    prop62 = x.#NAMEabc().abc;\r\n    prop422 = x.#name1().#abc;\r\n    prop522 = x.#NAME2().#abc;\r\n    prop622 = x.#NAMEabc().#abc;\r\n    prop423 = x.#name1().#NAME;\r\n    prop523 = x.#NAME2().#NAME;\r\n    prop623 = x.#NAMEabc().#NAME;\r\n    prop424 = x.#name1().#NAMEabc;\r\n    prop524 = x.#NAME2().#NAMEabc;\r\n    prop624 = x.#NAMEabc().#NAMEabc;\r\n\r\n    prop72 = x.#name1().#abc();\r\n    prop82 = x.#NAME2().#abc();\r\n    prop92 = x.#NAMEabc().#abc();\r\n    prop721 = x.#name1.#abc();\r\n    prop821 = x.#NAME2.#abc();\r\n    prop921 = x.#NAMEabc.#abc();\r\n\r\n    propA2 = x.#name1().#NAME();\r\n    propB2 = x.#NAME2().#NAME();\r\n    propC2 = x.#NAMEabc().#NAME();\r\n    propA21 = x.#name1.#NAME();\r\n    propB21 = x.#NAME2.#NAME();\r\n    propC21 = x.#NAMEabc.#NAME();\r\n\r\n    propD2 = x.#name1().#NAMEabc();\r\n    propE2 = x.#NAME2().#NAMEabc();\r\n    propF2 = x.#NAMEabc().#NAMEabc();\r\n    propD21 = x.#name1.#NAMEabc();\r\n    propE21 = x.#NAME2.#NAMEabc();\r\n    propF21 = x.#NAMEabc.#NAMEabc();\r\n\r\n\r\n    prop13 = this.#name1();\r\n    prop23 = this.#NAME2();\r\n    prop33 = this.#NAMEabc();\r\n\r\n    prop43 = this.#name1().abc;\r\n    prop53 = this.#NAME2().abc;\r\n    prop63 = this.#NAMEabc().abc;\r\n    prop432 = this.#name1().#abc;\r\n    prop532 = this.#NAME2().#abc;\r\n    prop632 = this.#NAMEabc().#abc;\r\n    prop433 = this.#name1().#NAME;\r\n    prop533 = this.#NAME2().#NAME;\r\n    prop633 = this.#NAMEabc().#NAME;\r\n    prop434 = this.#name1().#NAMEabc;\r\n    prop534 = this.#NAME2().#NAMEabc;\r\n    prop634 = this.#NAMEabc().#NAMEabc;\r\n\r\n    prop73 = this.#name1().#abc();\r\n    prop83 = this.#NAME2().#abc();\r\n    prop93 = this.#NAMEabc().#abc();\r\n    prop731 = this.#name1.#abc();\r\n    prop831 = this.#NAME2.#abc();\r\n    prop931 = this.#NAMEabc.#abc();\r\n\r\n    propA3 = this.#name1().#NAME();\r\n    propB3 = this.#NAME2().#NAME();\r\n    propC3 = this.#NAMEabc().#NAME();\r\n    propA31 = this.#name1.#NAME();\r\n    propB31 = this.#NAME2.#NAME();\r\n    propC31 = this.#NAMEabc.#NAME();\r\n\r\n    propD3 = this.#name1().#NAMEabc();\r\n    propE3 = this.#NAME2().#NAMEabc();\r\n    propF3 = this.#NAMEabc().#NAMEabc();\r\n    propD31 = this.#name1.#NAMEabc();\r\n    propE31 = this.#NAME2.#NAMEabc();\r\n    propF31 = this.#NAMEabc.#NAMEabc();\r\n\r\n    \r\n    method() {\r\n      const prop1 = x.#name1;\r\n      const prop2 = x.#NAME2;\r\n      const prop3 = x.#NAMEabc;\r\n\r\n      const prop4 = x.#name1.abc;\r\n      const prop5 = x.#NAME2.abc;\r\n      const prop6 = x.#NAMEabc.abc;\r\n\r\n      const prop7 = x.#name1.#abc;\r\n      const prop8 = x.#NAME2.#abc;\r\n      const prop9 = x.#NAMEabc.#abc;\r\n\r\n      const propA = x.#name1.#NAME;\r\n      const propB = x.#NAME2.#NAME;\r\n      const propC = x.#NAMEabc.#NAME;\r\n\r\n      const propD = x.#name1.#NAMEabc;\r\n      const propE = x.#NAME2.#NAMEabc;\r\n      const propF = x.#NAMEabc.#NAMEabc;\r\n      \r\n      const prop11 = this.#name1;\r\n      const prop21 = this.#NAME2;\r\n      const prop31 = this.#NAMEabc;\r\n\r\n      const prop41 = this.#name1.abc;\r\n      const prop51 = this.#NAME2.abc;\r\n      const prop61 = this.#NAMEabc.abc;\r\n\r\n      const prop71 = this.#name1.#abc;\r\n      const prop81 = this.#NAME2.#abc;\r\n      const prop91 = this.#NAMEabc.#abc;\r\n\r\n      const propA1 = this.#name1.#NAME;\r\n      const propB1 = this.#NAME2.#NAME;\r\n      const propC1 = this.#NAMEabc.#NAME;\r\n\r\n      const propD1 = this.#name1.#NAMEabc;\r\n      const propE1 = this.#NAME2.#NAMEabc;\r\n      const propF1 = this.#NAMEabc.#NAMEabc;\r\n\r\n      const prop12 = this.#name1();\r\n      const prop22 = this.#NAME2();\r\n      const prop32 = this.#NAMEabc();\r\n\r\n      const prop42 = this.#name1().abc;\r\n      const prop52 = this.#NAME2().abc;\r\n      const prop62 = this.#NAMEabc().abc;\r\n\r\n      const prop72 = this.#name1().#abc();\r\n      const prop82 = this.#NAME2().#abc();\r\n      const prop92 = this.#NAMEabc().#abc();\r\n\r\n      const propA2 = this.#name1().#NAME();\r\n      const propB2 = this.#NAME2().#NAME();\r\n      const propC2 = this.#NAMEabc().#NAME();\r\n\r\n      const propD2 = this.#name1().#NAMEabc();\r\n      const propE2 = this.#NAME2().#NAMEabc();\r\n      const propF2 = this.#NAMEabc().#NAMEabc();\r\n\r\n      const prop12 = x.#name1();\r\n      const prop22 = x.#NAME2();\r\n      const prop32 = x.#NAMEabc();\r\n\r\n      const prop42 = x.#name1().abc;\r\n      const prop52 = x.#NAME2().abc;\r\n      const prop62 = x.#NAMEabc().abc;\r\n      const prop422 = x.#name1().#abc;\r\n      const prop522 = x.#NAME2().#abc;\r\n      const prop622 = x.#NAMEabc().#abc;\r\n      const prop423 = x.#name1().#NAME;\r\n      const prop523 = x.#NAME2().#NAME;\r\n      const prop623 = x.#NAMEabc().#NAME;\r\n      const prop424 = x.#name1().#NAMEabc;\r\n      const prop524 = x.#NAME2().#NAMEabc;\r\n      const prop624 = x.#NAMEabc().#NAMEabc;\r\n\r\n      const prop72 = x.#name1().#abc();\r\n      const prop82 = x.#NAME2().#abc();\r\n      const prop92 = x.#NAMEabc().#abc();\r\n      const prop721 = x.#name1.#abc();\r\n      const prop821 = x.#NAME2.#abc();\r\n      const prop921 = x.#NAMEabc.#abc();\r\n\r\n      const propA2 = x.#name1().#NAME();\r\n      const propB2 = x.#NAME2().#NAME();\r\n      const propC2 = x.#NAMEabc().#NAME();\r\n      const propA21 = x.#name1.#NAME();\r\n      const propB21 = x.#NAME2.#NAME();\r\n      const propC21 = x.#NAMEabc.#NAME();\r\n\r\n      const propD2 = x.#name1().#NAMEabc();\r\n      const propE2 = x.#NAME2().#NAMEabc();\r\n      const propF2 = x.#NAMEabc().#NAMEabc();\r\n      const propD21 = x.#name1.#NAMEabc();\r\n      const propE21 = x.#NAME2.#NAMEabc();\r\n      const propF21 = x.#NAMEabc.#NAMEabc();\r\n\r\n\r\n      const prop13 = this.#name1();\r\n      const prop23 = this.#NAME2();\r\n      const prop33 = this.#NAMEabc();\r\n\r\n      const prop43 = this.#name1().abc;\r\n      const prop53 = this.#NAME2().abc;\r\n      const prop63 = this.#NAMEabc().abc;\r\n      const prop432 = this.#name1().#abc;\r\n      const prop532 = this.#NAME2().#abc;\r\n      const prop632 = this.#NAMEabc().#abc;\r\n      const prop433 = this.#name1().#NAME;\r\n      const prop533 = this.#NAME2().#NAME;\r\n      const prop633 = this.#NAMEabc().#NAME;\r\n      const prop434 = this.#name1().#NAMEabc;\r\n      const prop534 = this.#NAME2().#NAMEabc;\r\n      const prop634 = this.#NAMEabc().#NAMEabc;\r\n\r\n      const prop73 = this.#name1().#abc();\r\n      const prop83 = this.#NAME2().#abc();\r\n      const prop93 = this.#NAMEabc().#abc();\r\n      const prop731 = this.#name1.#abc();\r\n      const prop831 = this.#NAME2.#abc();\r\n      const prop931 = this.#NAMEabc.#abc();\r\n\r\n      const propA3 = this.#name1().#NAME();\r\n      const propB3 = this.#NAME2().#NAME();\r\n      const propC3 = this.#NAMEabc().#NAME();\r\n      const propA31 = this.#name1.#NAME();\r\n      const propB31 = this.#NAME2.#NAME();\r\n      const propC31 = this.#NAMEabc.#NAME();\r\n\r\n      const propD3 = this.#name1().#NAMEabc();\r\n      const propE3 = this.#NAME2().#NAMEabc();\r\n      const propF3 = this.#NAMEabc().#NAMEabc();\r\n      const propD31 = this.#name1.#NAMEabc();\r\n      const propE31 = this.#NAME2.#NAMEabc();\r\n      const propF31 = this.#NAMEabc.#NAMEabc();\r\n    }\r\n}\r\n\r\n"
  },
  {
    "path": "tests/cases/property.ts",
    "content": "class c {\r\nprop1: c // comment for prop1\r\nprop2: c // comment for prop2\r\nprivate prop3: c // the end\r\n}"
  },
  {
    "path": "tests/cases/propertyNameInObjectBindingElement.ts",
    "content": "var { \"propName\": prop, 'propName2': prop2, [\"string\"]: str } = foo();\r\nfunction bar({ \"propName\": prop, 'propName2': prop2, [\"string\"]: str }){\r\n}"
  },
  {
    "path": "tests/cases/readonly.ts",
    "content": "interface X {\r\n    readonly a: number;\r\n    readonly b?: number;\r\n}\r\n\r\nclass C {\r\n    readonly a: number;\r\n    readonly b = 1;\r\n}\r\n\r\nvar p: { readonly a: number, b: number }\r\nlet xx: { readonly [x: string]: string };"
  },
  {
    "path": "tests/cases/readonlyModifier.ts",
    "content": "function f1(mt: [number, number], rt: readonly [number, number]) {\r\n}\r\n\r\nfunction f2(ma: string[], ra: readonly string[], mt: [string, string], rt: readonly [string, string]) {\r\n}\r\n\r\ntype ReadWrite<T> = { -readonly [P in keyof T] : T[P] };"
  },
  {
    "path": "tests/cases/regexp.ts",
    "content": "var a = /(?:([a-zA-Z_$][\\w$])*)/i;\r\nvar x = /\\s*\\b(async\\s+)?function\\b/g;\r\nvar d = /\\s*\\b(async\\s+)?function\\b/d;"
  },
  {
    "path": "tests/cases/resolutionMode.ts",
    "content": "/// <reference types=\"pkg\" resolution-mode=\"require\" />\n/// <reference types=\"pkg\" resolution-mode=\"import\" />\n\n"
  },
  {
    "path": "tests/cases/restAndSpreadExpression.ts",
    "content": "function foo(...rest) {\r\n}\r\n// rest\r\nlet { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };\r\n[a, b, ...rest] = [1, 2, 3, 4, 5];\r\nvar { x, ...{ y, z } } = o;\r\nconst [x, ...[y, z]] = ['a', 'b', 'c'];\r\n// spread\r\nlet n = { x, y, ...z };\r\nfunction f<T, U>(t: T, u: U): { id: string, ...T, ...U } {\r\n    return { id: 'id', ...t, ...u };\r\n}\r\nfunction myFunction(v, w, x, y, z) { }\r\nvar args = [0, 1];\r\nmyFunction(-1, ...args, 2, ...[3]);\r\nvar parts = ['shoulders', 'knees'];\r\nvar lyrics = ['head', ...parts, 'and', 'toes'];"
  },
  {
    "path": "tests/cases/restInBindingPattern.ts",
    "content": "var [...[a, b]] = [0, 1]; \r\nvar [...{0: a, b }] = [0, 1];\r\nfunction a(...[a = 1, b = true]: string[]) { }\r\nfunction b(...[...foo]: string[]) { }\r\nfunction c(...{0: a, length, 3: d}: [boolean, string, number]) { }\r\nfunction d(...[a, , d]: [boolean, string, number]) { }"
  },
  {
    "path": "tests/cases/satisfies.ts",
    "content": "let a = {} satisfies {};"
  },
  {
    "path": "tests/cases/specialNew.ts",
    "content": "let storeSomeObj = new function () {\r\n this.hasNoColorization = function () {\r\n let butThisDoes = \"yay\";\r\n }\r\n\r\n let noColorHereEither = \"I'm not colorized\";\r\n }\r\n\r\n let butOutSide = \"all color is back to normal!\";"
  },
  {
    "path": "tests/cases/templateLiteralType.ts",
    "content": "type EventName<T extends string> = `${T}Changed`;\r\ntype Concat<S1 extends string, S2 extends string> = `${S1}${S2}`;\r\ntype ToString<T extends string | number | boolean | bigint> = `${T}`;\r\ntype T0 = EventName<'foo'>;  // 'fooChanged'\r\ntype T1 = EventName<'foo' | 'bar' | 'baz'>;  // 'fooChanged' | 'barChanged' | 'bazChanged'\r\ntype T2 = Concat<'Hello', 'World'>;  // 'HelloWorld'\r\ntype T3 = `${'top' | 'bottom'}-${'left' | 'right'}`;  // 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\r\ntype T4 = ToString<'abc' | 42 | true | -1234n>;  // 'abc' | '42' | 'true' | '-1234'\r\n\r\ntype Digit = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;\r\ntype Zip = `${Digit}${Digit}${Digit}${Digit}${Digit}`;  // Error\r\n\r\ntype GetterName<T extends string> = `get${Capitalize<T>}`;\r\ntype Cases<T extends string> = `${Uppercase<T>} ${Lowercase<T>} ${Capitalize<T>} ${Uncapitalize<T>}`;\r\ntype T10 = GetterName<'foo'>;  // 'getFoo'\r\ntype T11 = Cases<'bar'>;  // 'BAR bar Bar bar'\r\ntype T12 = Cases<'BAR'>;  // 'BAR bar BAR bAR'\r\n\r\nfunction test<T extends 'foo' | 'bar'>(name: `get${Capitalize<T>}`) {\r\n    let s1: string = name;\r\n    let s2: 'getFoo' | 'getBar' = name;\r\n}\r\n\r\ntype MatchPair<S extends string> = S extends `[${infer A},${infer B}]` ? [A, B] : unknown;\r\n\r\ntype T20 = MatchPair<'[1,2]'>;  // ['1', '2']\r\ntype T21 = MatchPair<'[foo,bar]'>;  // ['foo', 'bar']\r\ntype T22 = MatchPair<' [1,2]'>;  // unknown\r\ntype T23 = MatchPair<'[123]'>;  // unknown\r\ntype T24 = MatchPair<'[1,2,3,4]'>;  // ['1', '2,3,4']\r\n\r\ntype FirstTwoAndRest<S extends string> = S extends `${infer A}${infer B}${infer R}` ? [`${A}${B}`, R] : unknown;\r\n\r\ntype T25 = FirstTwoAndRest<'abcde'>;  // ['ab', 'cde']\r\ntype T26 = FirstTwoAndRest<'ab'>;  // ['ab', '']\r\ntype T27 = FirstTwoAndRest<'a'>;  // unknown\r\n\r\ntype Join<T extends unknown[], D extends string> =\r\n    T extends [] ? '' :\r\n    T extends [string | number | boolean | bigint] ? `${T[0]}` :\r\n    T extends [string | number | boolean | bigint, ...infer U] ? `${T[0]}${D}${Join<U, D>}` :\r\n    string;\r\ntype T30 = Join<[1, 2, 3, 4], '.'>;  // '1.2.3.4'\r\ntype T31 = Join<['foo', 'bar', 'baz'], '-'>;  // 'foo-bar-baz'\r\ntype T32 = Join<[], '.'>;  // ''\r\n\r\n\r\ntype Split<S extends string, D extends string> =\r\n    string extends S ? string[] :\r\n    S extends '' ? [] :\r\n    S extends `${infer T}${D}${infer U}` ? [T, ...Split<U, D>] :\r\n    [S];\r\n\r\ntype T40 = Split<'foo', '.'>;  // ['foo']\r\ntype T41 = Split<'foo.bar.baz', '.'>;  // ['foo', 'bar', 'baz']\r\ntype T42 = Split<'foo.bar', ''>;  // ['f', 'o', 'o', '.', 'b', 'a', 'r']\r\ntype T43 = Split<any, '.'>;  // string[]\r\n\r\n\r\ntype PropType<T, Path extends string> =\r\n    string extends Path ? unknown :\r\n    Path extends keyof T ? T[Path] :\r\n    Path extends `${infer K}.${infer R}` ? K extends keyof T ? PropType<T[K], R> : unknown :\r\n    unknown;\r\n\r\ndeclare function getPropValue<T, P extends string>(obj: T, path: P): PropType<T, P>;\r\ndeclare const s: string;\r\n\r\nconst obj = { a: { b: {c: 42, d: 'hello' }}};\r\ngetPropValue(obj, 'a');  // { b: {c: number, d: string } }\r\ngetPropValue(obj, 'a.b');  // {c: number, d: string }\r\ngetPropValue(obj, 'a.b.d');  // string\r\ngetPropValue(obj, 'a.b.x');  // unknown\r\ngetPropValue(obj, s);  // unknown\r\n\r\n\r\ntype Getters<T> = { [P in keyof T & string as `get${Capitalize<P>}`]: () => T[P] };\r\ntype T50 = Getters<{ foo: string, bar: number }>;  // { getFoo: () => string, getBar: () => number }\r\n\r\n\r\ntype Methods<T> = { [P in keyof T as T[P] extends Function ? P : never]: T[P] };\r\ntype T60 = Methods<{ foo(): number, bar: boolean }>;  // { foo(): number }\r\n\r\ntype DoubleProp<T> = { [P in keyof T & string as `${P}1` | `${P}2`]: T[P] }\r\ntype T70 = DoubleProp<{ a: string, b: number }>;  // { a1: string, a2: string, b1: number, b2: number }"
  },
  {
    "path": "tests/cases/typeofClass.ts",
    "content": "type TC1 = typeof class {\r\n    constructor(s: string);\r\n    static n: number;\r\n    s: string;\r\n};"
  },
  {
    "path": "tests/cases/typeparameterDefault.ts",
    "content": "interface PromiseLike<T> { \r\n    /** \r\n      * Attaches callbacks for the resolution and/or rejection of the Promise. \r\n      * @param onfulfilled The callback to execute when the Promise is resolved. \r\n      * @param onrejected The callback to execute when the Promise is rejected.  \r\n      * @returns A Promise for the completion of which ever callback is executed.  \r\n      */\r\n    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2>;  \r\n}  \r\n"
  },
  {
    "path": "tests/cases/using.ts",
    "content": "// using as identifier\r\nusing;\r\nusing = a;\r\nusing[x];\r\nusing[x] = a;\r\nusing.x;\r\nusing.x = a;\r\n[using];\r\n[using] = a;\r\n({using});\r\n({using} = a);\r\n({using: x});\r\n({using: x} = a);\r\n({x: using});\r\n({x: using} = a);\r\na = using;\r\na = using[x];\r\na = [using];\r\na = {using};\r\na = {using: x};\r\na = {x: using};\r\nvar using;\r\nvar using = a;\r\nvar [using];\r\nvar [using] = a;\r\nlet using;\r\nlet using = a;\r\nlet [using];\r\nlet [using] = a;\r\nconst using;\r\nconst using = a;\r\nconst [using];\r\nconst [using] = a;\r\nfunction using() {}\r\nfunction f(using) {}\r\nfunction f(using = a) {}\r\nfunction f(using[x]) {}\r\nfunction f(using[x] = a) {}\r\nfunction f(a = using) {}\r\nusing => {};\r\n(using) => {};\r\n([using]) => {};\r\n({using}) => {};\r\n({using: x}) => {};\r\n({x: using}) => {};\r\n() => using;\r\nasync using => {};\r\nasync (using) => {};\r\nclass using {}\r\nclass C extends using {}\r\nclass C<using> {}\r\nclass C { using; }\r\nclass C { static using; }\r\nclass C { readonly using; }\r\nclass C { declare using; }\r\nclass C { abstract using; }\r\nclass C { accessor using; }\r\nclass C { static accessor using; }\r\nclass C { readonly accessor using; }\r\nclass C { using() {} }\r\nclass C { static using() {} }\r\nclass C { abstract using() }\r\nclass C { get using() {} }\r\nclass C { static get using() {} }\r\nclass C { abstract get using(); }\r\nclass C { set using() {} }\r\nclass C { static set using(v) {} }\r\nclass C { abstract set using(v); }\r\nclass C { [using]; }\r\nclass C { static [using]; }\r\nclass C { readonly [using]; }\r\nclass C { declare [using]; }\r\nclass C { abstract [using]; }\r\nclass C { accessor [using]; }\r\nclass C { static accessor [using]; }\r\nclass C { readonly accessor [using]; }\r\nclass C { [using]() {} }\r\nclass C { static [using]() {} }\r\nclass C { abstract [using]() }\r\nclass C { get [using]() {} }\r\nclass C { static get [using]() {} }\r\nclass C { abstract get [using](); }\r\nclass C { set [using]() {} }\r\nclass C { static set [using](v) {} }\r\nclass C { abstract set [using](v); }\r\nnamespace using {}\r\nnamespace using.x {}\r\ninterface using {}\r\ninterface I { [using: string]: using; }\r\ntype using = never;\r\ntype X<using> = never;\r\nenum using {}\r\nenum E { using };\r\nenum E { a = using };\r\nusing: {};\r\nbreak using;\r\ncontinue using;\r\nswitch (using) {\r\n    case using:\r\n}\r\nexport { using };\r\nexport { using as x };\r\nexport { x as using };\r\nimport using from \"\";\r\nimport * as using from \"\";\r\nimport { using } from \"\";\r\nimport { using as x } from \"\";\r\nimport { x as using } from \"\";\r\nfor (using;;);\r\nfor (using = a;;);\r\nfor (using[x];;);\r\nfor (using[x] = a;;);\r\nfor (using in a);\r\nfor (using of a);\r\n\r\nusing\r\nx = a;\r\n\r\nusing\r\n[x] = a;\r\n\r\n// using as keyword\r\nusing x = a;\r\nusing x = a, y = b;\r\n\r\nusing x\r\n= a;\r\n\r\nusing x\r\n= a, y = b;\r\n\r\nusing x = a\r\n    , y = b;\r\n\r\nusing x = a,\r\n      y = b;\r\n\r\nfor (using x of a);\r\nfor (using x = a;;);\r\nfor (using x = a, y = b;;);\r\n\r\nfor (using x\r\n= a;;);\r\n\r\nfor (using x\r\n= a, y = b;;);\r\n\r\nfor (using x = a\r\n         , y = b;;);\r\n\r\nfor (using x = a,\r\n           y = b;;);\r\n\r\nfunction f() {\r\n    using x = a;\r\n}\r\n\r\n(() => {\r\n    using x = a;\r\n})\r\n\r\nnamespace N {\r\n    using x = a;\r\n}\r\n\r\nclass C {\r\n    constructor() {\r\n        using x = a;\r\n    }\r\n    method() {\r\n        using x = a;\r\n    }\r\n    get p() {\r\n        using x = a;\r\n    }\r\n    set p(v) {\r\n        using x = a;\r\n    }\r\n    static {\r\n        using x = a;\r\n    }\r\n}\r\n\r\n// using as identifier, illegal syntax\r\nusing {x};\r\nusing {x: y};\r\n\r\n// using as keyword, illegal syntax\r\nusing x;\r\nusing x, y;\r\nusing x, [y];\r\nusing x, {y};\r\nusing x, {y: z};\r\nusing x = a, y;\r\nusing x = a, [y];\r\nusing x = a, {y};\r\nusing x = a, {y: z};\r\ndeclare using x;\r\ndeclare using x = a;\r\nexport using x;\r\nexport using x = a;\r\n"
  },
  {
    "path": "tests/cases/variableBindingPattern.ts",
    "content": "// @onlyOwnGrammar - As this has type assertion\nfunction foo() {\r\n    return {\r\n        x: {\r\n            a: 10,\r\n            b: 20\r\n        },\r\n        y: {\r\n            c: \"hello\",\r\n            d: \"world\"\r\n        },\r\n        z: <[number, { hello: string }]>[10, { hello: \"Hello\" }]\r\n    };\r\n}\r\n\r\nvar {x: k, y: { c: d}, z: [e, { hello }], x } = foo();\r\nvar {x: k, y: { c: d}, z: [e, { hello }], x }: {\r\n    x: {\r\n        a: number;\r\n        b: number;\r\n    };\r\n    y: {\r\n        c: string;\r\n        d: string;\r\n    };\r\n    z: [number, {\r\n        hello: string;\r\n    }];\r\n} = foo();\r\n\r\nfunction bar() {\r\n    return <[{ hello: string },string]>[{ hello: \"Hello\" }, \"world\"];\r\n}\r\n\r\nvar [{hello}, world] = bar();\r\nvar [{hello}, world]: [{ hello: string }, string] = bar();"
  },
  {
    "path": "tests/cases/varianceAnnotations.ts",
    "content": "type Provider<out T> = () => T;\ntype Consumer<in T> = (x: T) => void;\ntype Mapper<in T, out U> = (x: T) => U;\ntype Processor<in out T> = (x: T) => T;\ntype Foo<in T> = {\n    x: T;\n    f: (x: T) => void;\n}\ninterface Bar<T> {\n    // ...\n}\n\ninterface Bar<out T> {\n    // ...\n}\n\ninterface Bar<in T> {\n    // ...\n}"
  },
  {
    "path": "tests/test.ts",
    "content": "import fs = require('fs');\nimport path = require('path');\nimport assert = require('assert');\nimport { describe, it, before, after } from 'node:test';\nimport build = require('./build');\n\nconst generatedFolder = path.join(__dirname, 'generated');\nconst baselineFolder = path.join(__dirname, 'baselines');\nconst casesFolder = path.join(__dirname, 'cases');\n\nfunction ensureCleanGeneratedFolder() {\n    if (fs.existsSync(generatedFolder)) {\n        for (const fileName of fs.readdirSync(generatedFolder)) {\n            fs.unlinkSync(path.join(generatedFolder, fileName));\n        }\n        fs.rmdirSync(generatedFolder);\n    }\n    fs.mkdirSync(generatedFolder);\n}\n\n// Ensure generated folder\nensureCleanGeneratedFolder();\n\n// Generate the new baselines\nfor (const fileName of fs.readdirSync(casesFolder)) {\n    describe(\"Generating baseline for \" + fileName, () => {\n        let wholeBaseline: string;\n        let parsedFileName: path.ParsedPath;\n\n        before(async () => {\n            const text = fs.readFileSync(path.join(casesFolder, fileName), 'utf8');\n            parsedFileName  = path.parse(fileName);\n            wholeBaseline = await build.generateScopes(text, parsedFileName);\n        });\n        after(() => {\n            wholeBaseline = undefined!;\n            parsedFileName = undefined!;\n        });\n\n        it('Comparing baseline', () => {\n            assertBaselinesMatch(parsedFileName.name + '.baseline.txt', wholeBaseline);\n        });\n    });\n}\n\nfunction assertBaselinesMatch(file: string, generatedText: string) {\n    const generatedFileName = path.join(generatedFolder, file);\n    fs.writeFileSync(generatedFileName, generatedText);\n\n    const baselineFile = path.join(baselineFolder, file);\n    if (fs.existsSync(baselineFile)) {\n        assert.equal(generatedText, fs.readFileSync(baselineFile, 'utf8'), \"Expected baselines to match: \" + file);\n    } else {\n        assert.fail(\"New generated baseline\");\n    }\n}\n"
  },
  {
    "path": "tests/tsconfig.json",
    "content": "{\n    \"compilerOptions\": {\n        \"lib\": [\"ES2023\"],\n        \"target\": \"ES2023\",\n        \"module\": \"nodenext\",\n        \"strict\": true,\n        \"skipLibCheck\": true\n    },\n    \"exclude\": [\n        \"cases\",\n        \"baselines\",\n        \"generated\",\n        \"node_modules\"\n    ]\n}\n"
  }
]