Skip to content

Support multi tab selection in vertical tabs#12200

Open
johnturcoo wants to merge 3 commits into
johnturco/app-4649-horizontal-tab-group-draggingfrom
johnturco/app-4642-shift-click-range-group-selection
Open

Support multi tab selection in vertical tabs#12200
johnturcoo wants to merge 3 commits into
johnturco/app-4649-horizontal-tab-group-draggingfrom
johnturco/app-4642-shift-click-range-group-selection

Conversation

@johnturcoo
Copy link
Copy Markdown
Contributor

@johnturcoo johnturcoo commented Jun 4, 2026

Description

Adds shift-click range selection and cmd-click multi tab select to the vertical tabs sidebar. Clicking a tab while holding shift selects every tab between the currently active tab and the clicked tab, and renders an accent highlight on the selected range. Clicking a tab while holding command, individual selects this tab and renders an accent highlight. Clicking a tab without shift (or starting a drag, switching panes, etc.) clears the selection.

Further actions that allow creating groups from these selected tabs, moving/removing these tabs to/from a group will be supported in a follow up PR.

NOTE: UI is not polished here, and is going to be updated in a follow up PR.

How it works

Added a new ClickWithModifiersHandler handler to differentiate regular click from shift clicks and command clicks (would love some eyes on this). In the vertical tabs pane, when an element is shift clicked, we dispatch a new on_click_with_modifiers action rather than setting focus to this tab/pane via a regular click. This sets a new flag on all tabs and panes within the given range (from current active tab to new element that is shift-clicked) to identify that this tab/pane is now selected as part of a range. A similar situation occurs for a command click, but marks the clicked tab as selected individually. This is cleared on next click, or drag action. If there is a group within the range, it is automatically expanded.

Rendering logic is updated so that tabs/panes are highlighted when they are part of a multi select (with an edge case for panes so that there is differentiation between hover and selected). Helper functions are added to app/src/workspace/view/tab_grouping.rs to support range selection actions, this is where all existing tab grouping logic is going to be ported to. Shift click is gated behind a feature flag so that behavior remains unchanged when it is off.

Linked Issue

https://linear.app/warpdotdev/issue/APP-4642/shift-click-range-group-selection

Testing

  • I have manually tested my changes locally with ./script/run

Screenshots / Videos

Demo video

This video displays shift clicking a range of tabs, in both tab and pane view. It is cleared when another tab is selected or a drag begins. Also shows groups auto expanding when they are within a shift click range.

It also displays command clicking individual tabs to show they are also marked as selected.

@cla-bot cla-bot Bot added the cla-signed label Jun 4, 2026
@oz-for-oss
Copy link
Copy Markdown
Contributor

oz-for-oss Bot commented Jun 4, 2026

@johnturcoo

I'm starting a first review of this pull request.

You can view the conversation on Warp.

I completed the review and no human review was requested for this pull request.

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

Copy link
Copy Markdown
Contributor

@oz-for-oss oz-for-oss Bot left a comment

Choose a reason for hiding this comment

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

Overview

This PR adds shift-click range selection for vertical tabs by tracking transient range-selection state on tabs, introducing a workspace action to select the active-to-clicked range, wiring modifier-aware row clicks, and extending Hoverable with click modifiers. The PR includes visual evidence, and no approved spec context was available for implementation comparison.

Concerns

  • No blocking correctness, security, or spec-drift concerns found in the annotated diff.

Verdict

Found: 0 critical, 0 important, 0 suggestions

Approve

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

@peicodes
Copy link
Copy Markdown
Contributor

peicodes commented Jun 4, 2026

From a product perspective, we we allow shift-select we probably also need to support ctrl-select

Comment thread app/src/workspace/view/tab_grouping.rs Outdated
Comment thread app/src/workspace/view/tab_grouping.rs Outdated
Comment thread app/src/workspace/view/tab_grouping.rs Outdated
@johnturcoo
Copy link
Copy Markdown
Contributor Author

Decided to go with command click here rather than ctrl click, as this is what google chrome tabs and apple finder uses.

@johnturcoo johnturcoo changed the title Support shift click tab range selection in vertical tabs Support multi tab selection in vertical tabs Jun 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants