angular-cn/integration/language_service_plugin
ayazhafiz 46caf88b2c feat(language-service): add definitions for templateUrl (#32238)
Adds support for `getDefinitionAt` when called on a templateUrl
property assignment.

The currrent architecture for getting definitions is designed to be
called on templates, so we have to introduce a new
`getTsDefinitionAndBoundSpan` method to get Angular-specific definitions
in TypeScript files and pass a `readTemplate` closure that will read the
contents of a template using `TypeScriptServiceHost#getTemplates`. We
can probably go in and make this nicer in a future PR, though I'm not
sure what the best architecture should be yet.

Part of angular/vscode-ng-language-service#111

PR Close #32238
2019-08-28 17:09:46 -07:00
..
goldens feat(language-service): add definitions for templateUrl (#32238) 2019-08-28 17:09:46 -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 docs(language-service): update integration test information (#32269) 2019-08-27 09:08:41 -07: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 feat(language-service): add definitions for templateUrl (#32238) 2019-08-28 17:09:46 -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 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:

  1. Add the fixture name to goldens/
  2. Run yarn golden my-golden.json, replacing my-golden.json with the new fixture name, to produce the expected output files.
  3. Hand validate that the expected output is reasonable.