f6e88cd659
This is a prerequisite to fix a bug in template completions whereby completion of the string `ti` for the variable `title` results in `tititle`. This is because the position where the completion is requested is used to insert the completion text. This is incorrect. Instead, a `replacementSpan` should be used to indicate the span of text that needs to be replaced. Angular's own `Completion` interface is insufficient to hold this information. Instead, we should just use ts.CompletionEntry. Also added string enum for `CompletionKind`, which is similar to ts.ScriptElementKind but contains more info about HTML entities. PR Close #32375 |
||
---|---|---|
.. | ||
goldens | ||
project | ||
.gitignore | ||
README.md | ||
generate.ts | ||
matcher.ts | ||
package.json | ||
test.ts | ||
tsclient.ts | ||
tsconfig.json | ||
yarn.lock |
README.md
Angular Language Service Test
This directory is an integration test for @angular/language-service
to ensure
that the language service works correctly as a tsserver
plugin.
To use the tests:
- Use
yarn install
to install all dependencies in this directory and in the Angular repo root directory. - From the Angular repo root directory, build Angular in the
dist/packages-dist
folder with./scripts/build-packages-dist.sh
. - In this directory, run the tests with
yarn test
.
Update golden files
If the expected output needs to be updated, run yarn golden my-golden.json
, replacing
my-golden.json
with the golden file to be updated. Do not qualify the file with a directory path.
See generate.ts for more information.
Adding a new fixture
Currently there is no automated way to produce a new fixture. The way the
current fixtures were created was to hack a version of tsserver.js to write the
commands from VSCode
to a file while performing the operation to be tested.
I also hand modified the input to remove superfluous request.
Once a new fixture is created:
- Add the fixture name to
goldens/
- Run
yarn golden my-golden.json
, replacingmy-golden.json
with the new fixture name, to produce the expected output files. - Hand validate that the expected output is reasonable.