Fix semantic highlighting for array spreads, array access and dict literals #7789
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We were emitting semantic tokens for identifiers that didn't actually appear in source code. For example, array spreads (
...
) are converted by the compiler toBelt.Array.concatMany
and soSemanticTokens
was emitting identifer tokens for this function.This fix will prevent semantic highlighting of
Array.get
andArray.set
(syntax highlighting will stil work) as we can't differentiatearray[index]
andarray[index] = ...
fromArray.get
/Array.set
in the AST. This will be fixed in a follow up PR. (WIP branch)Deferred work:
@res.arrayGet
/@res.arraySet
attributes so we don't skip generating semantic tokens for direct use ofArray.get
/Array.set
(See Add attrres.array{Get,Set}
toArray.{get, set}
#6343)Array.get
/set
inres_printer.ml
...
/Belt.Array.concatMany
fix to rescript-vscode'sSemanticTokens.ml