What
Holding Alt/Option while drag-selecting should produce a rectangular
(column/block) selection instead of the linear full-width one.
Current state
Selection is always linear: selection_span() produces full-width spans for
intermediate rows (crates/app/src/shell/terminal.rs:431-442), and
selection_text() mirrors that (terminal.rs:445-464). There is no block/
rectangular flag on TermState.
Fix direction
- Add a
block: bool (or a mode enum) to TermState, set while Alt is held at
drag start.
- Branch both
selection_span (overlay geometry) and selection_text (copied
text) on the flag to clip each row to the anchor/head column range.
What
Holding Alt/Option while drag-selecting should produce a rectangular
(column/block) selection instead of the linear full-width one.
Current state
Selection is always linear:
selection_span()produces full-width spans forintermediate rows (
crates/app/src/shell/terminal.rs:431-442), andselection_text()mirrors that (terminal.rs:445-464). There is no block/rectangular flag on
TermState.Fix direction
block: bool(or a mode enum) toTermState, set while Alt is held atdrag start.
selection_span(overlay geometry) andselection_text(copiedtext) on the flag to clip each row to the anchor/head column range.