Close outdated multidiff editors when PR is reopened #8256
+1,970
−1,376
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.
Opening the same PR multiple times can leave outdated multidiff editors open with stale base content. These editors should be closed when the PR is refreshed.
Implementation
Since
TabInputMultiDiffis not yet available in the VS Code API (upstream: microsoft/vscode#206411), this uses label-based matching:Added
isKnownTabInputType()helper - Checks if tab input is one of the known types (Text, TextDiff, Custom, Webview, Notebook, NotebookDiff, Terminal). Includes maintenance note for future TabInput types.Added
_closeOutdatedMultiDiffEditors()- Identifies multidiff tabs by matching label pattern "Changes in Pull Request #{number}" and verifying tab input is not a known type. Uses for-loops to avoid intermediate arrays.Integrated into
_upgradePullRequestEditors()- Closes outdated multidiff editors before upgrading other PR editors.Example
When a PR is reopened after base branch changes:
The label matching depends on the localization key format from
PullRequestModel.openChanges()remaining consistent.Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.