{
  "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"
        }
      },
      {
        "scopeName": "documentation.injection",
        "path": "./syntaxes/jsdoc.injection.tmLanguage.json",
        "injectTo": [
          "source.ts",
          "source.tsx",
          "source.js",
          "source.js.jsx"
        ]
      }
    ],
    "snippets": [
      {
        "language": "typescript",
        "path": "./snippets/typescript.json"
      },
      {
        "language": "typescriptreact",
        "path": "./snippets/typescript.json"
      }
    ],
    "jsonValidation": [
      {
        "fileMatch": "tsconfig.json",
        "url": "https://schemastore.azurewebsites.net/schemas/json/tsconfig.json"
      },
      {
        "fileMatch": "tsconfig.json",
        "url": "./schemas/tsconfig.schema.json"
      },
      {
        "fileMatch": "tsconfig.*.json",
        "url": "https://schemastore.azurewebsites.net/schemas/json/tsconfig.json"
      },
      {
        "fileMatch": "tsconfig-*.json",
        "url": "./schemas/tsconfig.schema.json"
      },
      {
        "fileMatch": "tsconfig-*.json",
        "url": "https://schemastore.azurewebsites.net/schemas/json/tsconfig.json"
      },
      {
        "fileMatch": "tsconfig.*.json",
        "url": "./schemas/tsconfig.schema.json"
      },
      {
        "fileMatch": "typings.json",
        "url": "https://schemastore.azurewebsites.net/schemas/json/typings.json"
      }
    ]
  }
}
