fix(editor): make tab close best-effort in DiffViewProvider.open #11363
+5
−1
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.
Closes #11362
Summary
DiffViewProvider.open()closes existing editor tabs for the file being edited before opening the diff view. ThetabGroups.close(tab)call is unguarded — if the tab reference becomes invalid between lookup and close, it throws"Tab close: Invalid tab not found!"and aborts the entire edit operation.tabGroups.close(tab)call in a try-catch, matching the existing defensive pattern incloseAllDiffViews()in the same file.documentWasOpenflag assignment remains unconditional and outside the close success path (it tracks whether the file had an open tab, not whether the close succeeded).Test plan
Important
Wrap
tabGroups.close(tab)inDiffViewProvider.open()with try-catch to prevent aborting edit operation on tab close failure.tabGroups.close(tab)inDiffViewProvider.open()with try-catch to prevent aborting edit operation on tab close failure.documentWasOpenflag remains outside try-catch to track if file had an open tab.closeAllDiffViews().This description was created by
for 7053813. You can customize this summary. It will automatically update as commits are pushed.