Skip to content

Support Shift+Click to extend the current terminal text selection (iTerm2-style) #11932

Description

@cola-runner

Problem

Warp's terminal can't extend an existing text selection with Shift+Click the way iTerm2 (and most terminals) can. Today every left-click in the block list starts a brand-new selection, so there's no way to:

  • click a start point, scroll far down a long command's output, then Shift+Click an end point to select everything in between, or
  • nudge the end of an existing selection outward without re-dragging the whole thing from scratch.

For long / multi-screen output this makes selecting a large range painful — you have to drag and rely on auto-scroll the entire way, and overshooting means starting over.

Steps to reproduce

  1. Run a command that produces a few screenfuls of output.
  2. Click (or drag-select) somewhere near the top of the output.
  3. Scroll down, hold Shift, and left-click near the bottom.

Expected: the selection extends from the original anchor to the clicked point (iTerm2 behavior).
Actual: the previous selection is discarded and a new (empty) selection starts at the click.

Expected behavior

With a selection already present, Shift + left-click should extend the selection to the clicked point, keeping the original anchor fixed (and you can then drag to fine-tune). A plain click still starts a new selection.

Notes

The selection model already has the needed primitive: dragging uses an "update the tail, keep the head" operation, while Shift+Click currently falls through to "start a new selection" instead of being wired to it.

I have a fix for this (gated behind a feature flag, scoped to the block list / scrollback for v1) and will open a PR linked to this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:shell-terminalTerminal input/output, shell integration, prompt behavior, and block rendering.duplicateThis issue or pull request already exists.enhancementNew feature or request.repro:highThe report includes enough evidence that the issue appears highly reproducible.triagedIssue has received an initial automated triage pass.warp:auto-triage-review

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions