fix: view zone position in diffEditor with hidden area #139785
Closed
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 helps with #3562, fixing the problem of view zone position calculation in diff editor with hidden areas on both sides.
To achieve the goal of collapsing unchanged areas in diff editor, a possible solution is hiding the same lines' area by using
setHiddenAreas
api in diff editor and then using view zone widget to control the uncollapse behavior:VS Code (monaco) produces view zones on the other side by using the relative line-number of original/modified editor view zones. When we call
setHiddenAreas
on the editors, the line-number used to place the generated view zones would be inaccurate, which will cause mismatch of whitespaces and view zones:This PR calculates the actual line number from the relative line-number and hidden area info, fixing the mismatch problem.