angular-docs-cn/integration/language_service_plugin
Keen Yee Liau a8e2ee1343 fix(language-service): Make Definition and QuickInfo compatible with TS LS (#31972)
Now that the Angular LS is a proper tsserver plugin, it does not make
sense for it to maintain its own language service API.

This is part one of the effort to remove our custom LanguageService
interface.
This interface is cumbersome because we have to do two transformations:
  ng def -> ts def -> lsp definition

The TS LS interface is more comprehensive, so this allows the Angular LS
to return more information.

PR Close #31972
2019-08-08 12:00:56 -07:00
..
goldens fix(language-service): Make Definition and QuickInfo compatible with TS LS (#31972) 2019-08-08 12:00:56 -07:00
project test(language-service): Load language service from tsconfig (#30153) 2019-04-29 13:28:18 -07:00
.gitignore test(language-service): Improve integration test (#28168) 2019-01-17 14:11:28 -08:00
README.md test(language-service): test `@angular/language-service` can be loaded by tsserver.js (#14721) 2017-03-01 13:22:46 -08:00
generate.ts test(language-service): Improve integration test (#28168) 2019-01-17 14:11:28 -08:00
matcher.ts test(language-service): Add tests for quickinfo and definition (#29990) 2019-04-19 19:28:46 -07:00
package.json test(language-service): Add tests for quickinfo and definition (#29990) 2019-04-19 19:28:46 -07:00
test.ts test(language-service): Load language service from tsconfig (#30153) 2019-04-29 13:28:18 -07:00
tsclient.ts test(language-service): Add tests for quickinfo and definition (#29990) 2019-04-19 19:28:46 -07:00
tsconfig.json test(language-service): Add tests for quickinfo and definition (#29990) 2019-04-19 19:28:46 -07:00
yarn.lock feat(language-service): Implement `definitionAndBoundSpan` (#30125) 2019-04-29 13:27:01 -07:00

README.md

Angular Language Service Test

This directory is an integration test for @angular/language-service to ensure that various versions of the server can be loaded in the supported versions of TypeScript's language service.

New supported version of TypeScript

To add a new supported version of TypeScript:

  1. Create directory in typescripts to hold the new version following the pattern of the other versions.
  2. Add the directory name to the end of the TYPESCRIPTS variable in the scripts/env.sh file.
  3. Run scripts/update_golden.sh to generate the expected files.
  4. Verify the expected output is reasonable by comparing to a known good output from a previous version.

Update golden files

If the expected output needs to be updated run scripts/update_golden.sh to update the expected output of the server.

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:

  1. Add the fixture base name (without the .json) to FIXTURES in scripts/env.sh.
  2. Run scripts/udpate_golden.sh to produce the expected output files.
  3. Hand validate the expected output is reasonable.