[JSX] Improve commenting behavior. #2787
Merged
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.
Should fix #2461.
Given the following:
The
toggle_comment
command will comment the second line as follows:But when you call it again to uncomment, you get:
…instead of the original, which we want. This is due to internal implementation details of
toggle_comment
— it won't remove{/*
/*/}
, even though they're specified inJSX Comments.tmPreferences
, because the comment scope doesn't extend to the braces.This PR adds a special case to JSX interpolations so that when an interpolation contains only a single block comment, the entire interpolation including the braces will get the
comment
scope, so that thetoggle_comment
command will do what we want. This is not really the correct scoping, but the previous behavior is really annoying and we can't really changetoggle_comment
.In addition, this PR improves the behavior of commenting attributes. E.g.:
…will become: