Skip to content

Support Repositories view multi-select#303502

Open
benibenj wants to merge 3 commits intomainfrom
benibenj/prominent-badger
Open

Support Repositories view multi-select#303502
benibenj wants to merge 3 commits intomainfrom
benibenj/prominent-badger

Conversation

@benibenj
Copy link
Contributor

@benibenj benibenj commented Mar 20, 2026

Copilot Generated Description: Implement multi-select functionality for SCM items, allowing users to select multiple items simultaneously.

closes #280598

Copilot AI review requested due to automatic review settings March 20, 2026 13:07
@benibenj benibenj enabled auto-merge March 20, 2026 13:07
@benibenj benibenj requested a review from lszomoru March 20, 2026 13:07
@benibenj benibenj self-assigned this Mar 20, 2026
@vs-code-engineering vs-code-engineering bot added this to the 1.113.0 milestone Mar 20, 2026
@benibenj benibenj changed the title Support SCM multi-select Support Repositories view multi-select Mar 20, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds multi-select behavior to the SCM Repositories view by introducing selection grouping (via IIdentityProvider.getGroupId) and updating Git SCM artifact commands to handle multiple selected artifacts where appropriate.

Changes:

  • Add getGroupId support to tree identity provider plumbing (async/compressed trees) and add regression tests to ensure updateOptions() preserves wrapped providers.
  • Enable multi-selection in the SCM repositories tree and implement selection grouping to control which items can be multi-selected together.
  • Update Git “artifact” commands (branch/tag delete, stash drop, worktree delete) to accept multiple selected artifacts.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/vs/workbench/contrib/scm/browser/scmRepositoriesViewPane.ts Enables multi-selection in the SCM tree, adds group-based selection behavior, and wires context menu actions for artifact multi-select.
src/vs/base/test/browser/ui/tree/objectTree.test.ts Adds regression tests ensuring updateOptions() doesn’t drop wrapped identity/accessibility providers.
src/vs/base/browser/ui/tree/compressedObjectTreeModel.ts Ensures wrapped identity providers preserve getGroupId for compressed nodes.
src/vs/base/browser/ui/tree/asyncDataTree.ts Ensures diffIdentityProvider mapping preserves getGroupId.
extensions/git/src/commands.ts Updates selected Git SCM artifact commands to accept arrays and apply operations across multiple selected artifacts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SCM Stashes: Support Multi Select

2 participants