angular/vscode-ng-language-service/syntaxes
Alan Agius adda6c5c10 build: update aspect_rules_js to 3.0.2
This updates the major version of `aspect_rules_js`.
2026-03-11 13:35:26 -07:00
..
src refactor(vscode-extension): Add support for exhaustive type check in the syntax 2026-02-24 19:23:50 +00:00
test refactor(vscode-extension): Add support for exhaustive type check in the syntax 2026-02-24 19:23:50 +00:00
BUILD.bazel build: update aspect_rules_js to 3.0.2 2026-03-11 13:35:26 -07:00
expression.json fix(vscode-extension): Highlight function calls with optional chaining 2026-02-10 09:42:03 -08:00
host-object-literal.json build: migrate vscode extension into repo (#63924) 2025-09-24 20:24:32 +00:00
inline-styles.json build: migrate vscode extension into repo (#63924) 2025-09-24 20:24:32 +00:00
inline-template.json build: migrate vscode extension into repo (#63924) 2025-09-24 20:24:32 +00:00
let-declaration.json build: migrate vscode extension into repo (#63924) 2025-09-24 20:24:32 +00:00
README.md feat(compiler): Add support for multiple swich cases matching 2026-01-07 09:23:50 -05:00
template-blocks.json refactor(vscode-extension): Add support for exhaustive type check in the syntax 2026-02-24 19:23:50 +00:00
template-tag.json fix(vscode-extension): support highlighting for class bindings with brackets 2026-02-04 15:45:04 -08:00
template.json fix(language-service): avoid interpolation highlighting inside @let 2025-12-17 09:39:18 -08:00
tsconfig.json build: migrate vscode extension into repo (#63924) 2025-09-24 20:24:32 +00:00

Read This!

The JSON files in this directory are not meant to be edited by hand.

If you need to make modification, the respective files should be changed within the repository's syntaxes/src directory.

Running pnpm bazel run //vscode-ng-language-service/syntaxes:syntaxes will then appropriately update the files in this directory.

Syntaxes

This directory specifies TextMate grammars used by VSCode to syntax highlight Angular source code.

Adding a new grammar

To add a new grammar (not modifying an existing one), write the grammar as a JSON file in this directory and register it in the root directory's package.json under the contributes.grammars array.

Testing grammars

This repository uses vscode-tmgrammar-test for testing VSCode TextMate grammars.

Snapshot Tests

Snapshot test cases are specified in test/cases.json.

  • The source file to test the grammar on should go in test/data/.
  • If an external grammar is needed (e.g. for HTML) is needed, a dummy grammar can be specified in test/dummy/ and will be automatically picked up by the grammar test driver.
  • Each snapshot tests requires a language scope to test. Generally, this is the scope name of the grammar being tested (e.g. inline-template.ng for the inline template grammar). This scope will become the base name of the grammar matched for everything in the source file being tested, upon which more specific grammar matches will be stacked.

Snapshot golden files can be updated by running

pnpm bazel run //vscode-ng-language-service/syntaxes/test:test -- -u

in the root directory of this repository. Goldens must be updated when a new test case is added. Be sure to check that the updated golden file looks as you expect.