angular/packages/language-service
Alan Agius f594725951 refactor(core): remove Node.js v14 support (#49255)
BREAKING CHANGE: Node.js v14 support has been removed

Node.js v14 is planned to be End-of-Life on 2023-04-30. Angular will stop supporting Node.js v14 in Angular v16. Angular v16 will continue to officially support Node.js versions v16 and v18.

PR Close #49255
2023-02-28 11:00:25 -08:00
..
bundles build: switch all instances from ng_rollup_bundle to app_bundle (#44490) 2022-01-04 12:14:14 -08:00
src refactor(compiler): drop obsolete NgFactory and NgSummary config options (#48268) 2023-02-21 13:03:59 -08:00
test feat(core): add support for TypeScript 5.0 (#49126) 2023-02-28 08:24:47 -08:00
testing feat(core): add support for TypeScript 5.0 (#49126) 2023-02-28 08:24:47 -08:00
api.ts refactor(language-service): Remove option and bundle generation for View Engine (#43723) 2021-10-05 17:24:08 -07:00
BUILD.bazel fix(language-service): ship /api entry-point (#48670) 2023-01-09 10:13:34 -08:00
build.sh fix(language-service): update packages/language-service/build.sh script to work with vscode-ng-language-service's new Bazel build (#48663) 2023-01-09 10:13:06 -08:00
index.d.ts refactor: update language-service package and tests to work with ESM (#48521) 2022-12-19 19:50:44 +00:00
index.js refactor: update language-service package and tests to work with ESM (#48521) 2022-12-19 19:50:44 +00:00
override_rename_ts_plugin.ts refactor: update language-service package and tests to work with ESM (#48521) 2022-12-19 19:50:44 +00:00
package.json refactor(core): remove Node.js v14 support (#49255) 2023-02-28 11:00:25 -08:00
plugin-factory.ts refactor: update language-service package and tests to work with ESM (#48521) 2022-12-19 19:50:44 +00:00
README.md feat(language-service): Provide plugin to delegate rename requests to Angular (#44696) 2022-01-21 11:18:48 -08:00

Override Rename Ts Plugin

When the user wants to rename a symbol in the ts file VSCode will ask the rename providers for the answer in turn. If the first extension returns the result, the VSCode will break the loop and apply the result. If the first extension cannot rename the symbol, VSCode will ask the second extension in the list (built-in TS/JS extension, Angular LS extension, etc.). In other words, VSCode takes the result from only one rename provider and the order depends on registration timing, scoring.

Because the built-in ts extension and Angular extension have the same high score, if the built-in ts extension is the first(depends on the time the extension was registered), the result will be provided by the built-in extension. We want Angular to provide it, so this plugin will delegate rename requests and reject the request for the built-in ts server.

The Angular LS only provides the rename info when working within an Angular project. If we cannot locate Angular sources in the project files, the built-in extension should provide the rename info.

This plugin will apply to the built-in TS/JS extension and delegate rename requests to the Angular LS. It provides the rename info only when it is an Angular project. Otherwise, it will return info by the default built-in ts server rename provider.

See here for more info.