{
  "name": "ng-template",
  "displayName": "Angular Language Service",
  "description": "Editor services for Angular templates",
  "version": "16.0.0",
  "publisher": "Angular",
  "icon": "angular.png",
  "license": "MIT",
  "keywords": [
    "Angular",
    "multi-root ready"
  ],
  "engines": {
    "vscode": "^1.74.3"
  },
  "capabilities": {
    "untrustedWorkspaces": {
      "supported": true
    },
    "virtualWorkspaces": {
      "supported": "limited",
      "description": "The Language Server Protocol does not support remote file systems. Functionality is limited to syntax highlighting only."
    }
  },
  "categories": [
    "Programming Languages"
  ],
  "contributes": {
    "commands": [
      {
        "command": "angular.restartNgServer",
        "title": "Restart Angular Language server",
        "category": "Angular"
      },
      {
        "command": "angular.openLogFile",
        "title": "Open Angular Server log",
        "category": "Angular"
      },
      {
        "command": "angular.getTemplateTcb",
        "title": "View Template Typecheck Block",
        "category": "Angular"
      },
      {
        "command": "angular.goToComponentWithTemplateFile",
        "title": "Go to component",
        "category": "Angular"
      },
      {
        "command": "angular.goToTemplateForComponent",
        "title": "Go to template",
        "category": "Angular"
      }
    ],
    "menus": {
      "commandPalette": [
        {
          "command": "angular.goToComponentWithTemplateFile",
          "when": "editorLangId == html && !virtualWorkspace"
        },
        {
          "command": "angular.goToTemplateForComponent",
          "when": "editorLangId == typescript && !virtualWorkspace"
        },
        {
          "command": "angular.getTemplateTcb",
          "when": "!virtualWorkspace"
        }
      ],
      "editor/context": [
        {
          "when": "(resourceLangId == html || resourceLangId == typescript) && !virtualWorkspace",
          "command": "angular.getTemplateTcb",
          "group": "angular"
        },
        {
          "when": "resourceLangId == html && !virtualWorkspace",
          "command": "angular.goToComponentWithTemplateFile",
          "group": "angular"
        },
        {
          "when": "resourceLangId == typescript && !virtualWorkspace",
          "command": "angular.goToTemplateForComponent",
          "group": "angular"
        }
      ]
    },
    "configuration": {
      "title": "Angular Language Service",
      "properties": {
        "angular.log": {
          "type": "string",
          "enum": [
            "off",
            "terse",
            "normal",
            "verbose"
          ],
          "default": "off",
          "description": "Enables logging of the Angular server to a file. This log can be used to diagnose Angular Server issues. The log may contain file paths, source code, and other potentially sensitive information from your project."
        },
        "angular.view-engine": {
          "type": "boolean",
          "default": false,
          "description": "Use legacy View Engine language service. This option is incompatible with projects using Angular v13 and above."
        },
        "angular.enable-strict-mode-prompt": {
          "type": "boolean",
          "default": true,
          "markdownDescription": "Prompt to enable the [strictTemplates](https://angular.io/guide/angular-compiler-options#stricttemplates) flag in [angularCompilerOptions](https://angular.io/guide/angular-compiler-options). Note that strict mode is only available when using Ivy."
        },
        "angular.trace.server": {
          "type": "string",
          "scope": "window",
          "enum": [
            "off",
            "messages",
            "verbose"
          ],
          "default": "off",
          "description": "Traces the communication between VS Code and the Angular language server."
        },
        "angular.suggest.includeAutomaticOptionalChainCompletions": {
          "type": "boolean",
          "default": true,
          "markdownDescription": "Enable/disable showing completions on potentially undefined values that insert an optional chain call. Requires TS 3.7+, strict null checks to be enabled and the `legacy View Engine` option to be disabled."
        },
        "angular.suggest.includeCompletionsWithSnippetText": {
          "type": "boolean",
          "default": true,
          "markdownDescription": "Enable/disable snippet completions from Angular language server. Requires using TypeScript 4.3+ in the workspace and the `legacy View Engine` option to be disabled."
        },
        "angular.forceStrictTemplates": {
          "type": "boolean",
          "default": false,
          "markdownDescription": "Enabling this option will force the language service to use [strictTemplates](https://angular.io/guide/angular-compiler-options#stricttemplates) and ignore the user settings in the `tsconfig.json`."
        }
      }
    },
    "grammars": [
      {
        "path": "./syntaxes/inline-template.json",
        "scopeName": "inline-template.ng",
        "injectTo": [
          "source.ts"
        ],
        "embeddedLanguages": {
          "text.html": "html",
          "source.css": "css",
          "source.js": "javascript"
        }
      },
      {
        "path": "./syntaxes/inline-styles.json",
        "scopeName": "inline-styles.ng",
        "injectTo": [
          "source.ts"
        ],
        "embeddedLanguages": {
          "source.css": "css"
        }
      },
      {
        "path": "./syntaxes/template.json",
        "scopeName": "template.ng",
        "injectTo": [
          "text.html.derivative",
          "source.ts"
        ],
        "embeddedLanguages": {
          "text.html": "html",
          "source.css": "css"
        }
      },
      {
        "path": "./syntaxes/expression.json",
        "scopeName": "expression.ng"
      }
    ]
  },
  "activationEvents": [
    "onLanguage:html",
    "onLanguage:typescript"
  ],
  "main": "./index",
  "scripts": {
    "ng-dev": "cross-env TS_NODE_PROJECT=$PWD/.ng-dev/tsconfig.json TS_NODE_TRANSPILE_ONLY=1 node --no-warnings --loader ts-node/esm node_modules/@angular/dev-infra-private/ng-dev/bundles/cli.mjs",
    "compile": "tsc -b && yarn bazel build :npm",
    "compile:client-server": "yarn bazel build //client:index.js //server:index.js",
    "compile:test": "tsc -b test.tsconfig.json",
    "compile:integration": "tsc -b integration && yarn --cwd integration/project build",
    "compile:syntaxes-test": "tsc -b syntaxes/test",
    "build:syntaxes": "tsc -b syntaxes && node dist/syntaxes/build.js",
    "format": "scripts/format.sh",
    "watch": "yarn ibazel build //client:index.js //server:index.js",
    "package": "scripts/build.sh package.json",
    "test": "yarn bazel test --test_tag_filters=unit_test //...",
    "test:watch": "yarn ibazel test --test_tag_filters=unit_test //...",
    "test:lsp": "yarn bazel test --test_output=streamed //integration/lsp:test",
    "test:e2e": "yarn bazel test --test_output=streamed //integration/e2e:test",
    "test:inspect-client": "yarn bazel run --config=debug //client/src/tests:test",
    "test:inspect-common": "yarn bazel run --config=debug //common/tests:test",
    "test:inspect-server": "yarn bazel run --config=debug //server/src/tests:test",
    "test:inspect-syntaxes": "yarn bazel run --config=debug //syntaxes/test:test",
    "test:legacy-inspect": "yarn compile:test && node --inspect-brk node_modules/jasmine/bin/jasmine.js --config=jasmine.json",
    "test:legacy": "yarn compile:test && jasmine --config=jasmine.json",
    "test:legacy-lsp": "yarn compile:integration && jasmine --config=integration/lsp/jasmine.json",
    "test:legacy-e2e": "yarn compile:integration && node dist/integration/e2e",
    "test:legacy-syntaxes": "yarn compile:syntaxes-test && yarn build:syntaxes && jasmine dist/syntaxes/test/driver.js"
  },
  "dependencies": {
    "@angular/language-service": "16.0.0",
    "typescript": "4.8.2",
    "vscode-html-languageservice": "^4.2.5",
    "vscode-jsonrpc": "6.0.0",
    "vscode-languageclient": "7.0.0",
    "vscode-languageserver": "7.0.0",
    "vscode-languageserver-textdocument": "^1.0.7",
    "vscode-uri": "3.0.7"
  },
  "devDependencies": {
    "@angular/dev-infra-private": "https://github.com/angular/dev-infra-private-builds.git#262cb3bb487e8dddb3c404f4f2c8b34a9a1f14c2",
    "@bazel/bazelisk": "1.12.0",
    "@bazel/ibazel": "0.16.2",
    "@types/jasmine": "3.10.7",
    "@types/node": "14.18.33",
    "@types/vscode": "1.67.0",
    "clang-format": "1.8.0",
    "cross-env": "^7.0.3",
    "esbuild": "0.14.39",
    "jasmine": "3.99.0",
    "prettier": "2.7.1",
    "rxjs": "6.6.7",
    "ts-node": "^10.8.1",
    "tslint": "6.1.3",
    "tslint-eslint-rules": "5.4.0",
    "vsce": "1.100.1",
    "vscode-languageserver-protocol": "3.16.0",
    "vscode-languageserver-types": "3.16.0",
    "vscode-test": "1.6.1",
    "vscode-tmgrammar-test": "0.0.11"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/angular/vscode-ng-language-service"
  }
}