Currently it is impossible to determine the source of a binding that generates `BoundAttribute` because all bound attributes generated from a microsyntax expression share the same source span. For example, in ```html <div *ngFor="let item of items; trackBy: trackByFn"></div> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source span for all `BoundAttribute`s generated from microsyntax ``` the `BoundAttribute` for both `ngForOf` and `ngForTrackBy` share the same source span. A lot of hacks were necessary in View Engine language service to work around this limitation. It was done by inspecting the whole source span then figuring out the relative position of the cursor. With this change, we introduce a flag to set the binding span as the source span of the `ParsedProperty` in Ivy AST. This flag is needed so that we don't have to change VE ASTs. Note that in the binding parser, we already set `bindingSpan` as the source span for a `ParsedVariable`, and `keySpan` as the source span for a literal attribute. This change makes the Ivy AST more consistent by propagating the binding span to `ParsedProperty` as well. PR Close #39036
Angular
Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages.
Quickstart
Changelog
Learn about the latest improvements.
Want to help?
Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues in the hotlist: community-help.
Description
Languages
TypeScript
68.6%
HTML
12.8%
JavaScript
8.4%
Pug
7%
Starlark
1.4%
Other
1.7%