From b6b899b40a339441694ab7443b00967da8f0b100 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Wed, 8 Jul 2026 04:22:29 -0300 Subject: 2-1 chord argument falls back to other panes' selections: when the middle-drag pane has no selection of its own (kept left sel, else explicit v/x n/N), the active pane is checked first (it holds the most recently made selection), then slot order. New selarg.snap covers borrowing a kept left selection and a v selection from another pane; tutor updated. --- test/snapshots/selarg.golden | 93 ++++++++++++++++++++++++++++++++++++++++++++ test/snapshots/selarg.snap | 58 +++++++++++++++++++++++++++ 2 files changed, 151 insertions(+) create mode 100644 test/snapshots/selarg.golden create mode 100644 test/snapshots/selarg.snap (limited to 'test') diff --git a/test/snapshots/selarg.golden b/test/snapshots/selarg.golden new file mode 100644 index 00000000..664962a3 --- /dev/null +++ b/test/snapshots/selarg.golden @@ -0,0 +1,93 @@ +== snap kept grid=100x30 cursor=6,2 +|Kill Newcol Tutor Debug Colors NextColor Dump +| NOR /tmp/pardes-snap/selarg/cwd Del NOR /tmp/pardes-snap/selarg/cwd Del +| ZZARG ZZVEE ./c.sh +| +| +| +| +| +| +| +| +| +| +| +| +| +| NOR /tmp/pardes-snap/selarg/cwd Del +| +| s.txt +| +| +| +| +| +| +| +| +| +| +| +== snap crosspane grid=100x30 cursor=6,2 +|Kill Newcol Tutor Debug Colors NextColor Dump +| NOR /tmp/pardes-snap/selarg/cwd Del NOR /tmp/pardes-snap/selarg/cwd Del +| ZZARG ZZVEE ./c.sh +| +| CHORDARG:ZZARG +| +| +| +| +| +| +| +| +| +| +| +| NOR /tmp/pardes-snap/selarg/cwd Del +| +| s.txt +| +| +| +| +| +| +| +| +| +| +| +== snap vselarg grid=100x30 cursor=12,2 +|Kill Newcol Tutor Debug Colors NextColor Dump +| NOR /tmp/pardes-snap/selarg/cwd Del NOR /tmp/pardes-snap/selarg/cwd Del +| ZZARG ZZVEE ./c.sh +| +| CHORDARG:ZZARG +| +| CHORDARG:ZZVEE +| +| +| +| +| +| +| +| +| +| NOR /tmp/pardes-snap/selarg/cwd Del +| +| s.txt +| +| +| +| +| +| +| +| +| +| +| diff --git a/test/snapshots/selarg.snap b/test/snapshots/selarg.snap new file mode 100644 index 00000000..c7b09c33 --- /dev/null +++ b/test/snapshots/selarg.snap @@ -0,0 +1,58 @@ +# 2-1 chord borrows the argument selection from ANOTHER pane: pane A (left) +# holds the selection, pane B (right) middle-drags the command with no +# selection of its own — the chord's left tap finds A's kept left selection, +# and later A's explicit v selection, and rides it as the argument. +file s.txt x +start 30 100 -n 3 +wait 8000 s.txt +stable 700 20000 +# pane A (left, active at boot): print the two argument words +key c-b +stable 600 8000 +text clear; printf 'ZZARG ZZVEE\n' +key enter +wait 8000 ZZVEE +stable 700 15000 +key c-b +stable 600 8000 +# pane B (top right): create the arg-printing script and show its path +press left 60 5 +release left 60 5 +stable 400 5000 +key c-b +stable 600 8000 +text printf '#!/bin/sh\necho CHORDARG:"$1"\n' > c.sh; chmod +x c.sh; clear; printf './c.sh\n' +key enter +wait 10000 ./c.sh +stable 700 15000 +key c-b +stable 600 8000 +# keep a left selection over ZZARG in pane A (this also focuses A) +press left 3 3 +drag left 7 3 +release left 7 3 +stable 400 5000 +snap kept +# chord in pane B: middle on ./c.sh + left tap (B has NO selection: the +# argument comes from pane A's kept left selection) + middle release runs +press middle 55 3 +press left 55 3 +release middle 55 3 +release left 55 3 +wait 10000 CHORDARG:ZZARG +stable 700 10000 +snap crosspane +# now an explicit modal selection: plain-click ZZVEE in A (drops A's kept +# left selection), select it with v e, chord in B again +press left 9 3 +release left 9 3 +stable 400 5000 +text ve +stable 400 5000 +press middle 55 3 +press left 55 3 +release middle 55 3 +release left 55 3 +wait 10000 CHORDARG:ZZVEE +stable 700 10000 +snap vselarg -- cgit v1.3