{
  "name": "typescript",
  "description": "%description%",
  "displayName": "%displayName%",
  "version": "1.0.0",
  "author": "vscode",
  "publisher": "vscode",
  "license": "MIT",
  "engines": {
    "vscode": "*"
  },
  "scripts": {
    "update-grammar": "node ./build/update-grammars.js"
  },
  "contributes": {
    "languages": [
      {
        "id": "typescript",
        "aliases": [
          "TypeScript",
          "ts",
          "typescript"
        ],
        "extensions": [
          ".ts"
        ],
        "configuration": "./language-configuration.json"
      },
      {
        "id": "typescriptreact",
        "aliases": [
          "TypeScript React",
          "tsx"
        ],
        "extensions": [
          ".tsx"
        ],
        "configuration": "./language-configuration.json"
      },
      {
        "id": "jsonc",
        "filenames": [
          "tsconfig.json",
          "jsconfig.json"
        ],
        "filenamePatterns": [
          "tsconfig.*.json",
          "tsconfig-*.json"
        ]
      }
    ],
    "grammars": [
      {
        "language": "typescript",
        "scopeName": "source.ts",
        "path": "./syntaxes/TypeScript.tmLanguage.json",
        "tokenTypes": {
          "entity.name.type.instance.jsdoc": "other",
          "entity.name.function.tagged-template": "other",
          "meta.import string.quoted": "other",
          "variable.other.jsdoc": "other"
        }
      },
      {
        "language": "typescriptreact",
        "scopeName": "source.tsx",
        "path": "./syntaxes/TypeScriptReact.tmLanguage.json",
        "embeddedLanguages": {
          "meta.tag.tsx": "jsx-tags",
          "meta.tag.without-attributes.tsx": "jsx-tags",
          "meta.tag.attributes.tsx": "typescriptreact",
          "meta.embedded.expression.tsx": "typescriptreact"
        },
        "tokenTypes": {
          "entity.name.type.instance.jsdoc": "other",
          "entity.name.function.tagged-template": "other",
          "meta.import string.quoted": "other",
          "variable.other.jsdoc": "other"
        }
      }
    ],
    "semanticTokenScopes": [
      {
        "language": "typescript",
        "scopes": {
          "property": [
            "variable.other.property.ts"
          ],
          "property.readonly": [
            "variable.other.constant.property.ts"
          ],
          "variable": [
            "variable.other.readwrite.ts"
          ],
          "variable.readonly": [
            "variable.other.constant.object.ts"
          ],
          "function": [
            "entity.name.function.ts"
          ],
          "namespace": [
            "entity.name.type.module.ts"
          ],
          "variable.defaultLibrary": [
            "support.variable.ts"
          ],
          "function.defaultLibrary": [
            "support.function.ts"
          ]
        }
      },
      {
        "language": "typescriptreact",
        "scopes": {
          "property": [
            "variable.other.property.tsx"
          ],
          "property.readonly": [
            "variable.other.constant.property.tsx"
          ],
          "variable": [
            "variable.other.readwrite.tsx"
          ],
          "variable.readonly": [
            "variable.other.constant.object.tsx"
          ],
          "function": [
            "entity.name.function.tsx"
          ],
          "namespace": [
            "entity.name.type.module.tsx"
          ],
          "variable.defaultLibrary": [
            "support.variable.tsx"
          ],
          "function.defaultLibrary": [
            "support.function.tsx"
          ]
        }
      }
    ],
    "snippets": [
      {
        "language": "typescript",
        "path": "./snippets/typescript.code-snippets"
      },
      {
        "language": "typescriptreact",
        "path": "./snippets/typescript.code-snippets"
      }
    ]
  }
}
