{
  "name": "typescript-language-features",
  "description": "%description%",
  "displayName": "%displayName%",
  "version": "1.0.0",
  "icon": "icon.png",
  "author": "vscode",
  "publisher": "vscode",
  "license": "MIT",
  "aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217",
  "enableProposedApi": true,
  "engines": {
    "vscode": "^1.30.0"
  },
  "categories": [
    "Programming Languages"
  ],
  "dependencies": {
    "jsonc-parser": "^2.2.1",
    "semver": "5.5.1",
    "typescript-vscode-sh-plugin": "^0.6.14",
    "vscode-extension-telemetry": "0.1.1",
    "vscode-nls": "^4.1.1"
  },
  "devDependencies": {
    "@types/node": "^12.19.9",
    "@types/rimraf": "^2.0.4",
    "@types/semver": "^5.5.0"
  },
  "scripts": {
    "vscode:prepublish": "node ../../node_modules/gulp/bin/gulp.js --gulpfile ../../build/gulpfile.extensions.js compile-extension:typescript-language-features",
    "compile-web": "npx webpack-cli --config extension-browser.webpack.config --mode none",
    "watch-web": "npx webpack-cli --config extension-browser.webpack.config --mode none --watch --info-verbosity verbose"
  },
  "activationEvents": [
    "onLanguage:javascript",
    "onLanguage:javascriptreact",
    "onLanguage:typescript",
    "onLanguage:typescriptreact",
    "onLanguage:jsx-tags",
    "onCommand:typescript.reloadProjects",
    "onCommand:javascript.reloadProjects",
    "onCommand:typescript.selectTypeScriptVersion",
    "onCommand:javascript.goToProjectConfig",
    "onCommand:typescript.goToProjectConfig",
    "onCommand:typescript.openTsServerLog",
    "onCommand:workbench.action.tasks.runTask",
    "onCommand:_typescript.configurePlugin",
    "onCommand:_typescript.learnMoreAboutRefactorings",
    "onCommand:typescript.fileReferences",
    "onLanguage:jsonc"
  ],
  "main": "./out/extension",
  "browser": "./dist/browser/extension",
  "contributes": {
    "jsonValidation": [
      {
        "fileMatch": "package.json",
        "url": "./schemas/package.schema.json"
      },
      {
        "fileMatch": "tsconfig.json",
        "url": "https://json.schemastore.org/tsconfig"
      },
      {
        "fileMatch": "tsconfig.json",
        "url": "./schemas/tsconfig.schema.json"
      },
      {
        "fileMatch": "tsconfig.*.json",
        "url": "https://json.schemastore.org/tsconfig"
      },
      {
        "fileMatch": "tsconfig-*.json",
        "url": "./schemas/tsconfig.schema.json"
      },
      {
        "fileMatch": "tsconfig-*.json",
        "url": "https://json.schemastore.org/tsconfig"
      },
      {
        "fileMatch": "tsconfig.*.json",
        "url": "./schemas/tsconfig.schema.json"
      },
      {
        "fileMatch": "typings.json",
        "url": "https://json.schemastore.org/typings"
      },
      {
        "fileMatch": ".bowerrc",
        "url": "https://json.schemastore.org/bowerrc"
      },
      {
        "fileMatch": ".babelrc",
        "url": "https://json.schemastore.org/babelrc"
      },
      {
        "fileMatch": ".babelrc.json",
        "url": "https://json.schemastore.org/babelrc"
      },
      {
        "fileMatch": "babel.config.json",
        "url": "https://json.schemastore.org/babelrc"
      },
      {
        "fileMatch": "jsconfig.json",
        "url": "https://json.schemastore.org/jsconfig"
      },
      {
        "fileMatch": "jsconfig.json",
        "url": "./schemas/jsconfig.schema.json"
      },
      {
        "fileMatch": "jsconfig.*.json",
        "url": "https://json.schemastore.org/jsconfig"
      },
      {
        "fileMatch": "jsconfig.*.json",
        "url": "./schemas/jsconfig.schema.json"
      }
    ],
    "configuration": {
      "type": "object",
      "title": "%configuration.typescript%",
      "order": 20,
      "properties": {
        "typescript.tsdk": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "markdownDescription": "%typescript.tsdk.desc%",
          "scope": "window"
        },
        "typescript.disableAutomaticTypeAcquisition": {
          "type": "boolean",
          "default": false,
          "description": "%typescript.disableAutomaticTypeAcquisition%",
          "scope": "window",
          "tags": [
            "usesOnlineServices"
          ]
        },
        "typescript.enablePromptUseWorkspaceTsdk": {
          "type": "boolean",
          "default": false,
          "description": "%typescript.enablePromptUseWorkspaceTsdk%",
          "scope": "window"
        },
        "typescript.npm": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "description": "%typescript.npm%",
          "scope": "machine"
        },
        "typescript.check.npmIsInstalled": {
          "type": "boolean",
          "default": true,
          "description": "%typescript.check.npmIsInstalled%",
          "scope": "window"
        },
        "javascript.referencesCodeLens.enabled": {
          "type": "boolean",
          "default": false,
          "description": "%javascript.referencesCodeLens.enabled%",
          "scope": "window"
        },
        "javascript.referencesCodeLens.showOnAllFunctions": {
          "type": "boolean",
          "default": false,
          "description": "%javascript.referencesCodeLens.showOnAllFunctions%",
          "scope": "window"
        },
        "typescript.referencesCodeLens.enabled": {
          "type": "boolean",
          "default": false,
          "description": "%typescript.referencesCodeLens.enabled%",
          "scope": "window"
        },
        "typescript.referencesCodeLens.showOnAllFunctions": {
          "type": "boolean",
          "default": false,
          "description": "%typescript.referencesCodeLens.showOnAllFunctions%",
          "scope": "window"
        },
        "typescript.implementationsCodeLens.enabled": {
          "type": "boolean",
          "default": false,
          "description": "%typescript.implementationsCodeLens.enabled%",
          "scope": "window"
        },
        "typescript.tsserver.enableTracing": {
          "type": "boolean",
          "default": false,
          "description": "%typescript.tsserver.enableTracing%",
          "scope": "window"
        },
        "typescript.tsserver.log": {
          "type": "string",
          "enum": [
            "off",
            "terse",
            "normal",
            "verbose"
          ],
          "default": "off",
          "description": "%typescript.tsserver.log%",
          "scope": "window"
        },
        "typescript.tsserver.pluginPaths": {
          "type": "array",
          "items": {
            "type": "string",
            "description": "%typescript.tsserver.pluginPaths.item%"
          },
          "default": [],
          "description": "%typescript.tsserver.pluginPaths%",
          "scope": "machine"
        },
        "typescript.tsserver.trace": {
          "type": "string",
          "enum": [
            "off",
            "messages",
            "verbose"
          ],
          "default": "off",
          "description": "%typescript.tsserver.trace%",
          "scope": "window"
        },
        "javascript.suggest.completeFunctionCalls": {
          "type": "boolean",
          "default": false,
          "description": "%configuration.suggest.completeFunctionCalls%",
          "scope": "resource"
        },
        "typescript.suggest.completeFunctionCalls": {
          "type": "boolean",
          "default": false,
          "description": "%configuration.suggest.completeFunctionCalls%",
          "scope": "resource"
        },
        "javascript.suggest.includeAutomaticOptionalChainCompletions": {
          "type": "boolean",
          "default": true,
          "description": "%configuration.suggest.includeAutomaticOptionalChainCompletions%",
          "scope": "resource"
        },
        "typescript.suggest.includeAutomaticOptionalChainCompletions": {
          "type": "boolean",
          "default": true,
          "description": "%configuration.suggest.includeAutomaticOptionalChainCompletions%",
          "scope": "resource"
        },
        "typescript.reportStyleChecksAsWarnings": {
          "type": "boolean",
          "default": true,
          "description": "%typescript.reportStyleChecksAsWarnings%",
          "scope": "window"
        },
        "typescript.validate.enable": {
          "type": "boolean",
          "default": true,
          "description": "%typescript.validate.enable%",
          "scope": "window"
        },
        "typescript.format.enable": {
          "type": "boolean",
          "default": true,
          "description": "%typescript.format.enable%",
          "scope": "window"
        },
        "typescript.format.insertSpaceAfterCommaDelimiter": {
          "type": "boolean",
          "default": true,
          "description": "%format.insertSpaceAfterCommaDelimiter%",
          "scope": "resource"
        },
        "typescript.format.insertSpaceAfterConstructor": {
          "type": "boolean",
          "default": false,
          "description": "%format.insertSpaceAfterConstructor%",
          "scope": "resource"
        },
        "typescript.format.insertSpaceAfterSemicolonInForStatements": {
          "type": "boolean",
          "default": true,
          "description": "%format.insertSpaceAfterSemicolonInForStatements%",
          "scope": "resource"
        },
        "typescript.format.insertSpaceBeforeAndAfterBinaryOperators": {
          "type": "boolean",
          "default": true,
          "description": "%format.insertSpaceBeforeAndAfterBinaryOperators%",
          "scope": "resource"
        },
        "typescript.format.insertSpaceAfterKeywordsInControlFlowStatements": {
          "type": "boolean",
          "default": true,
          "description": "%format.insertSpaceAfterKeywordsInControlFlowStatements%",
          "scope": "resource"
        },
        "typescript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": {
          "type": "boolean",
          "default": true,
          "description": "%format.insertSpaceAfterFunctionKeywordForAnonymousFunctions%",
          "scope": "resource"
        },
        "typescript.format.insertSpaceBeforeFunctionParenthesis": {
          "type": "boolean",
          "default": false,
          "description": "%format.insertSpaceBeforeFunctionParenthesis%",
          "scope": "resource"
        },
        "typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": {
          "type": "boolean",
          "default": false,
          "description": "%format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis%",
          "scope": "resource"
        },
        "typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": {
          "type": "boolean",
          "default": false,
          "description": "%format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets%",
          "scope": "resource"
        },
        "typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": {
          "type": "boolean",
          "default": true,
          "description": "%format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces%",
          "scope": "resource"
        },
        "typescript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": {
          "type": "boolean",
          "default": true,
          "description": "%format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces%",
          "scope": "resource"
        },
        "typescript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": {
          "type": "boolean",
          "default": false,
          "description": "%format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces%",
          "scope": "resource"
        },
        "typescript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": {
          "type": "boolean",
          "default": false,
          "description": "%format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces%",
          "scope": "resource"
        },
        "typescript.format.insertSpaceAfterTypeAssertion": {
          "type": "boolean",
          "default": false,
          "description": "%format.insertSpaceAfterTypeAssertion%",
          "scope": "resource"
        },
        "typescript.format.placeOpenBraceOnNewLineForFunctions": {
          "type": "boolean",
          "default": false,
          "description": "%format.placeOpenBraceOnNewLineForFunctions%",
          "scope": "resource"
        },
        "typescript.format.placeOpenBraceOnNewLineForControlBlocks": {
          "type": "boolean",
          "default": false,
          "description": "%format.placeOpenBraceOnNewLineForControlBlocks%",
          "scope": "resource"
        },
        "typescript.format.semicolons": {
          "type": "string",
          "default": "ignore",
          "description": "%format.semicolons%",
          "scope": "resource",
          "enum": [
            "ignore",
            "insert",
            "remove"
          ],
          "enumDescriptions": [
            "%format.semicolons.ignore%",
            "%format.semicolons.insert%",
            "%format.semicolons.remove%"
          ]
        },
        "javascript.validate.enable": {
          "type": "boolean",
          "default": true,
          "description": "%javascript.validate.enable%",
          "scope": "window"
        },
        "javascript.format.enable": {
          "type": "boolean",
          "default": true,
          "description": "%javascript.format.enable%",
          "scope": "window"
        },
        "javascript.format.insertSpaceAfterCommaDelimiter": {
          "type": "boolean",
          "default": true,
          "description": "%format.insertSpaceAfterCommaDelimiter%",
          "scope": "resource"
        },
        "javascript.format.insertSpaceAfterConstructor": {
          "type": "boolean",
          "default": false,
          "description": "%format.insertSpaceAfterConstructor%",
          "scope": "resource"
        },
        "javascript.format.insertSpaceAfterSemicolonInForStatements": {
          "type": "boolean",
          "default": true,
          "description": "%format.insertSpaceAfterSemicolonInForStatements%",
          "scope": "resource"
        },
        "javascript.format.insertSpaceBeforeAndAfterBinaryOperators": {
          "type": "boolean",
          "default": true,
          "description": "%format.insertSpaceBeforeAndAfterBinaryOperators%",
          "scope": "resource"
        },
        "javascript.format.insertSpaceAfterKeywordsInControlFlowStatements": {
          "type": "boolean",
          "default": true,
          "description": "%format.insertSpaceAfterKeywordsInControlFlowStatements%",
          "scope": "resource"
        },
        "javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": {
          "type": "boolean",
          "default": true,
          "description": "%format.insertSpaceAfterFunctionKeywordForAnonymousFunctions%",
          "scope": "resource"
        },
        "javascript.format.insertSpaceBeforeFunctionParenthesis": {
          "type": "boolean",
          "default": false,
          "description": "%format.insertSpaceBeforeFunctionParenthesis%",
          "scope": "resource"
        },
        "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": {
          "type": "boolean",
          "default": false,
          "description": "%format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis%",
          "scope": "resource"
        },
        "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": {
          "type": "boolean",
          "default": false,
          "description": "%format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets%",
          "scope": "resource"
        },
        "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": {
          "type": "boolean",
          "default": true,
          "description": "%format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces%",
          "scope": "resource"
        },
        "javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": {
          "type": "boolean",
          "default": true,
          "description": "%format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces%",
          "scope": "resource"
        },
        "javascript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": {
          "type": "boolean",
          "default": false,
          "description": "%format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces%",
          "scope": "resource"
        },
        "javascript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": {
          "type": "boolean",
          "default": false,
          "description": "%format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces%",
          "scope": "resource"
        },
        "javascript.format.placeOpenBraceOnNewLineForFunctions": {
          "type": "boolean",
          "default": false,
          "description": "%format.placeOpenBraceOnNewLineForFunctions%",
          "scope": "resource"
        },
        "javascript.format.placeOpenBraceOnNewLineForControlBlocks": {
          "type": "boolean",
          "default": false,
          "description": "%format.placeOpenBraceOnNewLineForControlBlocks%",
          "scope": "resource"
        },
        "javascript.format.semicolons": {
          "type": "string",
          "default": "ignore",
          "description": "%format.semicolons%",
          "scope": "resource",
          "enum": [
            "ignore",
            "insert",
            "remove"
          ],
          "enumDescriptions": [
            "%format.semicolons.ignore%",
            "%format.semicolons.insert%",
            "%format.semicolons.remove%"
          ]
        },
        "javascript.implicitProjectConfig.checkJs": {
          "type": "boolean",
          "default": false,
          "markdownDescription": "%configuration.implicitProjectConfig.checkJs%",
          "markdownDeprecationMessage": "%configuration.javascript.checkJs.checkJs.deprecation%",
          "scope": "window"
        },
        "js/ts.implicitProjectConfig.checkJs": {
          "type": "boolean",
          "default": false,
          "markdownDescription": "%configuration.implicitProjectConfig.checkJs%",
          "scope": "window"
        },
        "javascript.implicitProjectConfig.experimentalDecorators": {
          "type": "boolean",
          "default": false,
          "markdownDescription": "%configuration.implicitProjectConfig.experimentalDecorators%",
          "markdownDeprecationMessage": "%configuration.javascript.checkJs.experimentalDecorators.deprecation%",
          "scope": "window"
        },
        "js/ts.implicitProjectConfig.experimentalDecorators": {
          "type": "boolean",
          "default": false,
          "markdownDescription": "%configuration.implicitProjectConfig.experimentalDecorators%",
          "scope": "window"
        },
        "js/ts.implicitProjectConfig.strictNullChecks": {
          "type": "boolean",
          "default": false,
          "markdownDescription": "%configuration.implicitProjectConfig.strictNullChecks%",
          "scope": "window"
        },
        "js/ts.implicitProjectConfig.strictFunctionTypes": {
          "type": "boolean",
          "default": true,
          "markdownDescription": "%configuration.implicitProjectConfig.strictFunctionTypes%",
          "scope": "window"
        },
        "javascript.suggest.names": {
          "type": "boolean",
          "default": true,
          "markdownDescription": "%configuration.suggest.names%",
          "scope": "resource"
        },
        "typescript.tsc.autoDetect": {
          "type": "string",
          "default": "on",
          "enum": [
            "on",
            "off",
            "build",
            "watch"
          ],
          "markdownEnumDescriptions": [
            "%typescript.tsc.autoDetect.on%",
            "%typescript.tsc.autoDetect.off%",
            "%typescript.tsc.autoDetect.build%",
            "%typescript.tsc.autoDetect.watch%"
          ],
          "description": "%typescript.tsc.autoDetect%",
          "scope": "window"
        },
        "javascript.suggest.paths": {
          "type": "boolean",
          "default": true,
          "description": "%configuration.suggest.paths%",
          "scope": "resource"
        },
        "typescript.suggest.paths": {
          "type": "boolean",
          "default": true,
          "description": "%configuration.suggest.paths%",
          "scope": "resource"
        },
        "javascript.suggest.autoImports": {
          "type": "boolean",
          "default": true,
          "description": "%configuration.suggest.autoImports%",
          "scope": "resource"
        },
        "typescript.suggest.autoImports": {
          "type": "boolean",
          "default": true,
          "description": "%configuration.suggest.autoImports%",
          "scope": "resource"
        },
        "javascript.suggest.completeJSDocs": {
          "type": "boolean",
          "default": true,
          "description": "%configuration.suggest.completeJSDocs%",
          "scope": "resource"
        },
        "typescript.suggest.completeJSDocs": {
          "type": "boolean",
          "default": true,
          "description": "%configuration.suggest.completeJSDocs%",
          "scope": "resource"
        },
        "javascript.suggest.jsdoc.generateReturns": {
          "type": "boolean",
          "default": true,
          "markdownDescription": "%configuration.suggest.jsdoc.generateReturns%",
          "scope": "resource"
        },
        "typescript.suggest.jsdoc.generateReturns": {
          "type": "boolean",
          "default": true,
          "markdownDescription": "%configuration.suggest.jsdoc.generateReturns%",
          "scope": "resource"
        },
        "typescript.locale": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "de",
            "es",
            "en",
            "fr",
            "it",
            "ja",
            "ko",
            "ru",
            "zh-CN",
            "zh-TW",
            null
          ],
          "default": null,
          "markdownDescription": "%typescript.locale%",
          "scope": "window"
        },
        "javascript.suggestionActions.enabled": {
          "type": "boolean",
          "default": true,
          "description": "%javascript.suggestionActions.enabled%",
          "scope": "resource"
        },
        "typescript.suggestionActions.enabled": {
          "type": "boolean",
          "default": true,
          "description": "%typescript.suggestionActions.enabled%",
          "scope": "resource"
        },
        "javascript.preferences.quoteStyle": {
          "type": "string",
          "enum": [
            "auto",
            "single",
            "double"
          ],
          "default": "auto",
          "markdownDescription": "%typescript.preferences.quoteStyle%",
          "scope": "resource"
        },
        "typescript.preferences.quoteStyle": {
          "type": "string",
          "enum": [
            "auto",
            "single",
            "double"
          ],
          "default": "auto",
          "markdownDescription": "%typescript.preferences.quoteStyle%",
          "scope": "resource"
        },
        "javascript.preferences.importModuleSpecifier": {
          "type": "string",
          "enum": [
            "shortest",
            "relative",
            "non-relative",
            "project-relative"
          ],
          "markdownEnumDescriptions": [
            "%typescript.preferences.importModuleSpecifier.shortest%",
            "%typescript.preferences.importModuleSpecifier.relative%",
            "%typescript.preferences.importModuleSpecifier.nonRelative%",
            "%typescript.preferences.importModuleSpecifier.projectRelative%"
          ],
          "default": "shortest",
          "description": "%typescript.preferences.importModuleSpecifier%",
          "scope": "resource"
        },
        "typescript.preferences.importModuleSpecifier": {
          "type": "string",
          "enum": [
            "shortest",
            "relative",
            "non-relative",
            "project-relative"
          ],
          "markdownEnumDescriptions": [
            "%typescript.preferences.importModuleSpecifier.shortest%",
            "%typescript.preferences.importModuleSpecifier.relative%",
            "%typescript.preferences.importModuleSpecifier.nonRelative%",
            "%typescript.preferences.importModuleSpecifier.projectRelative%"
          ],
          "default": "shortest",
          "description": "%typescript.preferences.importModuleSpecifier%",
          "scope": "resource"
        },
        "javascript.preferences.importModuleSpecifierEnding": {
          "type": "string",
          "enum": [
            "auto",
            "minimal",
            "index",
            "js"
          ],
          "markdownEnumDescriptions": [
            "%typescript.preferences.importModuleSpecifierEnding.auto%",
            "%typescript.preferences.importModuleSpecifierEnding.minimal%",
            "%typescript.preferences.importModuleSpecifierEnding.index%",
            "%typescript.preferences.importModuleSpecifierEnding.js%"
          ],
          "default": "auto",
          "description": "%typescript.preferences.importModuleSpecifierEnding%",
          "scope": "resource"
        },
        "typescript.preferences.importModuleSpecifierEnding": {
          "type": "string",
          "enum": [
            "auto",
            "minimal",
            "index",
            "js"
          ],
          "markdownEnumDescriptions": [
            "%typescript.preferences.importModuleSpecifierEnding.auto%",
            "%typescript.preferences.importModuleSpecifierEnding.minimal%",
            "%typescript.preferences.importModuleSpecifierEnding.index%",
            "%typescript.preferences.importModuleSpecifierEnding.js%"
          ],
          "default": "auto",
          "description": "%typescript.preferences.importModuleSpecifierEnding%",
          "scope": "resource"
        },
        "typescript.preferences.includePackageJsonAutoImports": {
          "type": "string",
          "enum": [
            "auto",
            "on",
            "off"
          ],
          "enumDescriptions": [
            "%typescript.preferences.includePackageJsonAutoImports.auto%",
            "%typescript.preferences.includePackageJsonAutoImports.on%",
            "%typescript.preferences.includePackageJsonAutoImports.off%"
          ],
          "default": "auto",
          "markdownDescription": "%typescript.preferences.includePackageJsonAutoImports%",
          "scope": "window"
        },
        "javascript.preferences.renameShorthandProperties": {
          "type": "boolean",
          "default": true,
          "description": "%typescript.preferences.useAliasesForRenames%",
          "deprecationMessage": "%typescript.preferences.renameShorthandProperties.deprecationMessage%",
          "scope": "resource"
        },
        "typescript.preferences.renameShorthandProperties": {
          "type": "boolean",
          "default": true,
          "description": "%typescript.preferences.useAliasesForRenames%",
          "deprecationMessage": "%typescript.preferences.renameShorthandProperties.deprecationMessage%",
          "scope": "resource"
        },
        "javascript.preferences.useAliasesForRenames": {
          "type": "boolean",
          "default": true,
          "description": "%typescript.preferences.useAliasesForRenames%",
          "scope": "resource"
        },
        "typescript.preferences.useAliasesForRenames": {
          "type": "boolean",
          "default": true,
          "description": "%typescript.preferences.useAliasesForRenames%",
          "scope": "resource"
        },
        "typescript.updateImportsOnFileMove.enabled": {
          "type": "string",
          "enum": [
            "prompt",
            "always",
            "never"
          ],
          "markdownEnumDescriptions": [
            "%typescript.updateImportsOnFileMove.enabled.prompt%",
            "%typescript.updateImportsOnFileMove.enabled.always%",
            "%typescript.updateImportsOnFileMove.enabled.never%"
          ],
          "default": "prompt",
          "description": "%typescript.updateImportsOnFileMove.enabled%",
          "scope": "resource"
        },
        "javascript.updateImportsOnFileMove.enabled": {
          "type": "string",
          "enum": [
            "prompt",
            "always",
            "never"
          ],
          "markdownEnumDescriptions": [
            "%typescript.updateImportsOnFileMove.enabled.prompt%",
            "%typescript.updateImportsOnFileMove.enabled.always%",
            "%typescript.updateImportsOnFileMove.enabled.never%"
          ],
          "default": "prompt",
          "description": "%typescript.updateImportsOnFileMove.enabled%",
          "scope": "resource"
        },
        "typescript.autoClosingTags": {
          "type": "boolean",
          "default": true,
          "description": "%typescript.autoClosingTags%"
        },
        "javascript.autoClosingTags": {
          "type": "boolean",
          "default": true,
          "description": "%typescript.autoClosingTags%"
        },
        "javascript.suggest.enabled": {
          "type": "boolean",
          "default": true,
          "description": "%typescript.suggest.enabled%",
          "scope": "resource"
        },
        "typescript.suggest.enabled": {
          "type": "boolean",
          "default": true,
          "description": "%typescript.suggest.enabled%",
          "scope": "resource"
        },
        "typescript.surveys.enabled": {
          "type": "boolean",
          "default": true,
          "description": "%configuration.surveys.enabled%",
          "scope": "window"
        },
        "typescript.tsserver.useSeparateSyntaxServer": {
          "type": "boolean",
          "default": true,
          "description": "%configuration.tsserver.useSeparateSyntaxServer%",
          "scope": "window"
        },
        "typescript.tsserver.maxTsServerMemory": {
          "type": "number",
          "default": 3072,
          "description": "%configuration.tsserver.maxTsServerMemory%",
          "scope": "window"
        },
        "typescript.tsserver.experimental.enableProjectDiagnostics": {
          "type": "boolean",
          "default": false,
          "description": "%configuration.tsserver.experimental.enableProjectDiagnostics%",
          "scope": "window"
        },
        "typescript.tsserver.watchOptions": {
          "type": "object",
          "description": "%configuration.tsserver.watchOptions%",
          "scope": "window",
          "properties": {
            "watchFile": {
              "type": "string",
              "description": "%configuration.tsserver.watchOptions.watchFile%",
              "enum": [
                "fixedPollingInterval",
                "priorityPollingInterval",
                "dynamicPriorityPolling",
                "useFsEvents",
                "useFsEventsOnParentDirectory"
              ],
              "enumDescriptions": [
                "%configuration.tsserver.watchOptions.watchFile.fixedPollingInterval%",
                "%configuration.tsserver.watchOptions.watchFile.priorityPollingInterval%",
                "%configuration.tsserver.watchOptions.watchFile.dynamicPriorityPolling%",
                "%configuration.tsserver.watchOptions.watchFile.useFsEvents%",
                "%configuration.tsserver.watchOptions.watchFile.useFsEventsOnParentDirectory%"
              ],
              "default": "useFsEvents"
            },
            "watchDirectory": {
              "type": "string",
              "description": "%configuration.tsserver.watchOptions.watchDirectory%",
              "enum": [
                "fixedPollingInterval",
                "dynamicPriorityPolling",
                "useFsEvents"
              ],
              "enumDescriptions": [
                "%configuration.tsserver.watchOptions.watchDirectory.fixedPollingInterval%",
                "%configuration.tsserver.watchOptions.watchDirectory.dynamicPriorityPolling%",
                "%configuration.tsserver.watchOptions.watchDirectory.useFsEvents%"
              ],
              "default": "useFsEvents"
            },
            "fallbackPolling": {
              "type": "string",
              "description": "%configuration.tsserver.watchOptions.fallbackPolling%",
              "enum": [
                "fixedPollingInterval",
                "priorityPollingInterval",
                "dynamicPriorityPolling"
              ],
              "enumDescriptions": [
                "configuration.tsserver.watchOptions.fallbackPolling.fixedPollingInterval",
                "configuration.tsserver.watchOptions.fallbackPolling.priorityPollingInterval",
                "configuration.tsserver.watchOptions.fallbackPolling.dynamicPriorityPolling"
              ]
            },
            "synchronousWatchDirectory": {
              "type": "boolean",
              "description": "%configuration.tsserver.watchOptions.synchronousWatchDirectory%"
            }
          }
        },
        "typescript.workspaceSymbols.scope": {
          "type": "string",
          "enum": [
            "allOpenProjects",
            "currentProject"
          ],
          "enumDescriptions": [
            "%typescript.workspaceSymbols.scope.allOpenProjects%",
            "%typescript.workspaceSymbols.scope.currentProject%"
          ],
          "default": "allOpenProjects",
          "markdownDescription": "%typescript.workspaceSymbols.scope%",
          "scope": "window"
        }
      }
    },
    "commands": [
      {
        "command": "typescript.reloadProjects",
        "title": "%reloadProjects.title%",
        "category": "TypeScript"
      },
      {
        "command": "javascript.reloadProjects",
        "title": "%reloadProjects.title%",
        "category": "JavaScript"
      },
      {
        "command": "typescript.selectTypeScriptVersion",
        "title": "%typescript.selectTypeScriptVersion.title%",
        "category": "TypeScript"
      },
      {
        "command": "typescript.goToProjectConfig",
        "title": "%goToProjectConfig.title%",
        "category": "TypeScript"
      },
      {
        "command": "javascript.goToProjectConfig",
        "title": "%goToProjectConfig.title%",
        "category": "JavaScript"
      },
      {
        "command": "typescript.openTsServerLog",
        "title": "%typescript.openTsServerLog.title%",
        "category": "TypeScript"
      },
      {
        "command": "typescript.restartTsServer",
        "title": "%typescript.restartTsServer%",
        "category": "TypeScript"
      },
      {
        "command": "typescript.findAllFileReferences",
        "title": "%typescript.findAllFileReferences%",
        "category": "TypeScript"
      }
    ],
    "menus": {
      "commandPalette": [
        {
          "command": "typescript.reloadProjects",
          "when": "editorLangId == typescript && typescript.isManagedFile"
        },
        {
          "command": "typescript.reloadProjects",
          "when": "editorLangId == typescriptreact && typescript.isManagedFile"
        },
        {
          "command": "javascript.reloadProjects",
          "when": "editorLangId == javascript && typescript.isManagedFile"
        },
        {
          "command": "javascript.reloadProjects",
          "when": "editorLangId == javascriptreact && typescript.isManagedFile"
        },
        {
          "command": "typescript.goToProjectConfig",
          "when": "editorLangId == typescript && typescript.isManagedFile"
        },
        {
          "command": "typescript.goToProjectConfig",
          "when": "editorLangId == typescriptreact"
        },
        {
          "command": "javascript.goToProjectConfig",
          "when": "editorLangId == javascript && typescript.isManagedFile"
        },
        {
          "command": "javascript.goToProjectConfig",
          "when": "editorLangId == javascriptreact && typescript.isManagedFile"
        },
        {
          "command": "typescript.selectTypeScriptVersion",
          "when": "typescript.isManagedFile"
        },
        {
          "command": "typescript.openTsServerLog",
          "when": "typescript.isManagedFile"
        },
        {
          "command": "typescript.restartTsServer",
          "when": "typescript.isManagedFile"
        },
        {
          "command": "typescript.findAllFileReferences",
          "when": "tsSupportsFileReferences && typescript.isManagedFile"
        }
      ],
      "explorer/context": [
        {
          "command": "typescript.findAllFileReferences",
          "when": "tsSupportsFileReferences && resourceLangId == javascript"
        },
        {
          "command": "typescript.findAllFileReferences",
          "when": "tsSupportsFileReferences && resourceLangId == javascriptreact"
        },
        {
          "command": "typescript.findAllFileReferences",
          "when": "tsSupportsFileReferences && resourceLangId == typescript"
        },
        {
          "command": "typescript.findAllFileReferences",
          "when": "tsSupportsFileReferences && resourceLangId == typescriptreact"
        }
      ],
      "editor/title/context": [
        {
          "command": "typescript.findAllFileReferences",
          "when": "tsSupportsFileReferences && resourceLangId == javascript"
        },
        {
          "command": "typescript.findAllFileReferences",
          "when": "tsSupportsFileReferences && resourceLangId == javascriptreact"
        },
        {
          "command": "typescript.findAllFileReferences",
          "when": "tsSupportsFileReferences && resourceLangId == typescript"
        },
        {
          "command": "typescript.findAllFileReferences",
          "when": "tsSupportsFileReferences && resourceLangId == typescriptreact"
        }
      ]
    },
    "breakpoints": [
      {
        "language": "typescript"
      },
      {
        "language": "typescriptreact"
      }
    ],
    "taskDefinitions": [
      {
        "type": "typescript",
        "required": [
          "tsconfig"
        ],
        "properties": {
          "tsconfig": {
            "type": "string",
            "description": "%taskDefinition.tsconfig.description%"
          },
          "option": {
            "type": "string"
          }
        }
      }
    ],
    "problemPatterns": [
      {
        "name": "tsc",
        "regexp": "^([^\\s].*)[\\(:](\\d+)[,:](\\d+)(?:\\):\\s+|\\s+-\\s+)(error|warning|info)\\s+TS(\\d+)\\s*:\\s*(.*)$",
        "file": 1,
        "line": 2,
        "column": 3,
        "severity": 4,
        "code": 5,
        "message": 6
      }
    ],
    "problemMatchers": [
      {
        "name": "tsc",
        "label": "%typescript.problemMatchers.tsc.label%",
        "owner": "typescript",
        "source": "ts",
        "applyTo": "closedDocuments",
        "fileLocation": [
          "relative",
          "${cwd}"
        ],
        "pattern": "$tsc"
      },
      {
        "name": "tsc-watch",
        "label": "%typescript.problemMatchers.tscWatch.label%",
        "owner": "typescript",
        "source": "ts",
        "applyTo": "closedDocuments",
        "fileLocation": [
          "relative",
          "${cwd}"
        ],
        "pattern": "$tsc",
        "background": {
          "activeOnStart": true,
          "beginsPattern": {
            "regexp": "^\\s*(?:message TS6032:|\\[?\\D*\\d{1,2}[:.]\\d{1,2}[:.]\\d{1,2}\\D*(├\\D*\\d{1,2}\\D+┤)?(?:\\]| -)) File change detected\\. Starting incremental compilation\\.\\.\\."
          },
          "endsPattern": {
            "regexp": "^\\s*(?:message TS6042:|\\[?\\D*\\d{1,2}[:.]\\d{1,2}[:.]\\d{1,2}\\D*(├\\D*\\d{1,2}\\D+┤)?(?:\\]| -)) (?:Compilation complete\\.|Found \\d+ errors?\\.) Watching for file changes\\."
          }
        }
      }
    ],
    "codeActions": [
      {
        "languages": [
          "javascript",
          "javascriptreact",
          "typescript",
          "typescriptreact"
        ],
        "actions": [
          {
            "kind": "refactor.extract.constant",
            "title": "%codeActions.refactor.extract.constant.title%",
            "description": "%codeActions.refactor.extract.constant.description%"
          },
          {
            "kind": "refactor.extract.function",
            "title": "%codeActions.refactor.extract.function.title%",
            "description": "%codeActions.refactor.extract.function.description%"
          },
          {
            "kind": "refactor.extract.interface",
            "title": "%codeActions.refactor.extract.interface.title%",
            "description": "%codeActions.refactor.extract.interface.description%"
          },
          {
            "kind": "refactor.extract.type",
            "title": "%codeActions.refactor.extract.type.title%",
            "description": "%codeActions.refactor.extract.type.description%"
          },
          {
            "kind": "refactor.rewrite.import",
            "title": "%codeActions.refactor.rewrite.import.title%",
            "description": "%codeActions.refactor.rewrite.import.description%"
          },
          {
            "kind": "refactor.rewrite.export",
            "title": "%codeActions.refactor.rewrite.export.title%",
            "description": "%codeActions.refactor.rewrite.export.description%"
          },
          {
            "kind": "refactor.rewrite.arrow.braces",
            "title": "%codeActions.refactor.rewrite.arrow.braces.title%",
            "description": "%codeActions.refactor.rewrite.arrow.braces.description%"
          },
          {
            "kind": "refactor.rewrite.parameters.toDestructured",
            "title": "%codeActions.refactor.rewrite.parameters.toDestructured.title%"
          },
          {
            "kind": "refactor.rewrite.property.generateAccessors",
            "title": "%codeActions.refactor.rewrite.property.generateAccessors.title%",
            "description": "%codeActions.refactor.rewrite.property.generateAccessors.description%"
          },
          {
            "kind": "refactor.move.newFile",
            "title": "%codeActions.refactor.move.newFile.title%",
            "description": "%codeActions.refactor.move.newFile.description%"
          },
          {
            "kind": "source.organizeImports",
            "title": "%codeActions.source.organizeImports.title%"
          }
        ]
      }
    ],
    "typescriptServerPlugins": [
      {
        "name": "typescript-vscode-sh-plugin",
        "enableForWorkspaceTypeScriptVersions": true
      }
    ]
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/microsoft/vscode.git"
  }
}
