angular-docs-cn/packages
Andrew Scott a86ca4fe04 feat(language-service): Enable renaming of pipes (#40523)
This commit updates the logic in the LS renaming to handle renaming of
pipes, both from the name expression in the pipe metadata as well as
from the template.

The approach here is to introduce a new concept for renaming: an
"indirect" rename. In this type of rename, we find rename locations
in with the native TS Language Service using a different node than the
one we are renaming. Using pipes as an example, if we want to rename the
pipe name from the string literal expression, we use the transform
method to find rename locations rather than the string literal itself
(which will not return any results because it's just a string).

So the general approach is:
* Determine the details about the requested rename location, i.e. the
  targeted template node and symbol for a template rename, or the TS
  node for a rename outside a template.
* Using the details of the location, determine if the node is attempting
  to rename something that is an indirect rename (pipes, selectors,
  bindings). Other renames are considered "direct" and we use whatever
  results the native TSLS returns for the rename locations.
* In the case of indirect renames, we throw out results that do not
  appear in the templates (in this case, the shim files). These results will be
  for the "indirect" rename that we don't want to touch, but are only
  using to find template results.
* Create an additional rename result for the string literal expression
  that is used for the input/output alias, the pipe name, or the
  selector.

 Note that renaming is moving towards being much more accurate in its
 results than "find references". When the approach for renaming
 stabilizes, we may want to then port the changes back to being shared
 with the approach for retrieving references.

PR Close #40523
2021-05-06 17:54:13 -04:00
..
animations fix(animations): ensure consistent transition namespace ordering (#19854) 2021-04-30 14:15:47 -07:00
bazel fix(bazel): update supported range of node versions to only include LTS versions (#41822) 2021-04-26 15:21:13 -07:00
benchpress fix(dev-infra): update type castings for JSON.parse usage (#40710) 2021-02-09 10:48:43 -08:00
common refactor(common): change missing NgSwitch provider error message (#41704) 2021-05-06 15:44:38 -04:00
compiler refactor(compiler): stricter types for HTML AST (#41360) 2021-05-06 17:34:52 -04:00
compiler-cli feat(language-service): Enable renaming of pipes (#40523) 2021-05-06 17:54:13 -04:00
core refactor(common): change missing NgSwitch provider error message (#41704) 2021-05-06 15:44:38 -04:00
docs docs(di): fix typo in advanced di doc (#36634) 2020-05-01 09:50:28 -07:00
elements fix(elements): update supported range of node versions to only include LTS versions (#41822) 2021-04-26 15:21:13 -07:00
examples refactor(core): add single type for injector token (#41580) 2021-04-22 10:47:12 -07:00
forms fix(forms): update supported range of node versions to only include LTS versions (#41822) 2021-04-26 15:21:13 -07:00
language-service feat(language-service): Enable renaming of pipes (#40523) 2021-05-06 17:54:13 -04:00
localize fix(localize): relax error to warning for missing target (#41944) 2021-05-04 21:05:54 -07:00
misc/angular-in-memory-web-api build: remove `core-js` in favor of `core-js-bundle` (#41739) 2021-04-26 09:29:58 -07:00
platform-browser perf(core): minor improvements to listener instructions (#41807) 2021-04-30 14:14:00 -07:00
platform-browser-dynamic fix(platform-browser-dynamic): update supported range of node versions to only include LTS versions (#41822) 2021-04-26 15:21:13 -07:00
platform-server perf(core): minor improvements to listener instructions (#41807) 2021-04-30 14:14:00 -07:00
private/testing build: update .bazelversion (#40579) 2021-01-26 11:35:54 -08:00
router fix(router): update supported range of node versions to only include LTS versions (#41822) 2021-04-26 15:21:13 -07:00
service-worker fix(service-worker): update supported range of node versions to only include LTS versions (#41822) 2021-04-26 15:21:13 -07:00
upgrade fix(upgrade): update supported range of node versions to only include LTS versions (#41822) 2021-04-26 15:21:13 -07:00
zone.js build: lock file maintenance (#41924) 2021-05-03 14:27:06 -07:00
BUILD.bazel build: replace @types/trusted-types dep with minimal type defs (#39211) 2020-10-15 09:08:00 -07:00
README.md docs: add doc reference to npm package readme (#33911) 2019-11-20 14:46:23 -08:00
circular-deps-test.conf.js fix(platform-webworker): remove platform-webworker and platform-webworker-dynamic (#38846) 2020-09-30 09:13:59 -04:00
empty.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
goog.d.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
license-banner.txt docs: update year (#40925) 2021-02-22 12:37:40 -08:00
system.d.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
tsconfig-build-no-strict.json refactor(core): ensure compatibility with typescript strict flag (#30993) 2019-07-18 14:21:25 -07:00
tsconfig-build.json refactor(core): ensure compatibility with typescript strict flag (#30993) 2019-07-18 14:21:25 -07:00
tsconfig-test.json refactor: fix typescript strict flag failures in all tests (#30993) 2019-07-18 14:21:26 -07:00
tsconfig.json build: exclude compiler compliance tests from Saucelabs tests (#41866) 2021-04-30 14:15:10 -07:00
types.d.ts build: replace @types/trusted-types dep with minimal type defs (#39211) 2020-10-15 09:08:00 -07:00

README.md

Angular

The sources for this package are in the main Angular repo. Please file issues and pull requests against that repo.

Usage information and reference details can be found in Angular documentation.

License: MIT