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.
This PR fixes #138461
I thought that we'd have to do a large refactor first, but I realized there's a much simpler mitigation that I can push in instead.
The mitigation disallows completions to show up in JS and JSX files for cases where the abbreviation contains
[]
characters without a=
inside. The advantage in this case is we don't try to expand array indexes likearr[i]
, or left-side array de-structuring cases likeconst [a, b]
.The disadvantage is that we now don't show suggestions for abbreviations like
div[a b]
. Either the user must type an abbreviation of the formdiv[a=someValue b=someOtherValue]
, turn onemmet.triggerExpansionOnTab
, or run the expand command. But, considering how often one means to type an array index or a left-side de-structuring, and how there already are workarounds, I think it is worth pushing in this mitigation to improve the QoL for JSX users.I also improved some typing information so we use fewer
any
s.