Skip to content

Multi-select adoption for compressed tree#303511

Merged
benibenj merged 1 commit intomainfrom
benibenj/presidential-ox
Mar 20, 2026
Merged

Multi-select adoption for compressed tree#303511
benibenj merged 1 commit intomainfrom
benibenj/presidential-ox

Conversation

@benibenj
Copy link
Contributor

Copilot Generated Description: Implement multi-select functionality in the compressed tree structure, allowing users to select multiple items simultaneously. This includes updates to the identity provider to support group IDs and modifications to the tree's options to preserve selection behavior.

Copilot AI review requested due to automatic review settings March 20, 2026 14:05
@benibenj benibenj enabled auto-merge March 20, 2026 14:05
@benibenj benibenj self-assigned this Mar 20, 2026
@vs-code-engineering
Copy link
Contributor

📬 CODENOTIFY

The following users are being notified based on files changed in this PR:

@joaomoreno

Matched files:

  • src/vs/base/browser/ui/tree/asyncDataTree.ts
  • src/vs/base/browser/ui/tree/compressedObjectTreeModel.ts

@vs-code-engineering vs-code-engineering bot added this to the 1.113.0 milestone 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

Adds support for grouped selection (via IIdentityProvider.getGroupId) when using compressed tree nodes, ensuring multi-select behavior continues to work when identity providers are wrapped/mapped through tree layers.

Changes:

  • Propagate getGroupId through compressed tree identity-provider wrappers (wrapIdentityProvider, mapOptions).
  • Propagate getGroupId through AsyncDataTree’s diffIdentityProvider wrapper.
  • Add regression tests around updateOptions() preserving wrapped identity/accessibility providers.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
src/vs/base/test/browser/ui/tree/objectTree.test.ts Adds tests and helpers to validate wrapped providers survive updateOptions() and still drive selection/type-nav behavior.
src/vs/base/browser/ui/tree/compressedObjectTreeModel.ts Extends compressed-tree identity provider wrapping to forward getGroupId to underlying elements.
src/vs/base/browser/ui/tree/asyncDataTree.ts Extends diffIdentityProvider wrapper to forward getGroupId for nodes.

@benibenj benibenj merged commit 4d4d448 into main Mar 20, 2026
23 checks passed
@benibenj benibenj deleted the benibenj/presidential-ox branch March 20, 2026 14:36
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.

3 participants