summaryrefslogtreecommitdiff
path: root/src/tutor.txt
Commit message (Collapse)AuthorAge
...
* window navigation builtins: SPC w h/j/k/l focus, SPC w t file<->terminalGabriel Schneider2026-08-01
| | | | | | | | | | | | Left/Down/Up/Right run the existing focusDir (now taking the pane the builtin ran on, so an executed name acts on ITS pane); the Ctrl-w prefix routes through the same four builtins instead of calling focusDir itself. Toggleterm hops between the most recently focused document and terminal off focus_hist, the MRU the core already rebuilds each sync. Ctrl-w stays: a tty-mode pane never sees SPC, so it is the only keyboard way out of one. Its snapshot step now moves focus somewhere (c-w l), which the old c-w h in that layout did not.
* Find builtin (SPC f f): fd in-core, results into +Search, n/N opens each hitGabriel Schneider2026-08-01
| | | | Save moves w -> f s to free the w group for window navigation.
* adding better search to tty modeGabriel Schneider2026-08-01
|
* Small ux improvements, : tagline focusGabriel Schneider2026-08-01
|
* web snapshots: add switch for saving/loading exports, update web version, ↵Gabriel Schneider2026-08-01
| | | | web snapshot tooling
* chord polish: the selection a 1-2/1-3 chord leaves behind is dismissed by ↵Gabriel Schneider2026-08-01
| | | | the next left click instead of stretching to it (explicit v/x selections keep click-extend), and in a tty-mode shell 1-3 now pastes into the pty like a terminal emulator — the click is forwarded first (SGR or X10, only when the app listens for mouse) so mouse-aware programs paste at the click point, then the register arrives bracketed (mode 2004) or with \n->\r when unbracketed; 1-2 stays inert there. chordcut.snap pins both (a cat -v probe shows the exact wire bytes); tutor updated.
* panes can shrink to just their tagline: border-drag clamps drop from MINH to ↵Gabriel Schneider2026-08-01
| | | | BOX_H (the tag row doubles as the re-enlarge handle; the gutter move box wins over the handle so a tag-only pane stays movable), a hidden body's pty/vt is never resized so re-enlarging restores it intact, and cursor/modal-selection paints never land on the tag row. New shrinktag.snap; tutor updated.
* 2-1 chord argument falls back to other panes' selections: when the ↵Gabriel Schneider2026-08-01
| | | | 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.
* acme mouse chords: 1-2 Cut / 1-3 Paste while a left selection drag holds ↵Gabriel Schneider2026-08-01
| | | | (both in one hold = Snarf/copy; the chorded left release is inert), plus 2-3 / 3-1 / 3-2 cancel an execute or look drag mid-gesture (the 2-1 argument chord already existed). chordcut.snap covers cut/copy/paste and both cancels; tutor documents the chords.
* clicks in a shell pane never change its mode: the body-press exitTagEdit no ↵Gabriel Schneider2026-08-01
| | | | longer force-drops to normal (it only restores the mode a tag edit hijacked, remembered in pane.tag_mode), and the left-release cursor pin keeps the terminal's mode (files still click into normal). New ttyclick.snap covers tty body click, tty tag round trip, insert body click.
* insert vs normal cursor shape (all pane types) + the tag is always insert ↵Gabriel Schneider2026-08-01
| | | | mode. Surface.cursor grew a bar flag: the core sets it from the active pane mode (insert -> bar; normal/tty -> block) for both the modal/file cursor and the vt-tracking terminal cursor, and unconditionally for the tag cursor. tty shell: DECSCUSR via vaxis setCursorShape (beam for insert, the terminal default otherwise). gui shell: the insert cursor draws the left-eighth-block glyph in cell colors instead of the reverse-video block (ponytail: it hides the char under it; a dedicated quad if that ever matters). Tag editing: enterTagEdit goes straight to insert, Esc (or anything that exits the tag) restores the body normal mode; Enter looks / Tab executes the word at the cursor from inside the tag (tagChordText kept); the whole normal-mode tag machinery — handleTagKey motions, v/x selection, d/c/y/p, tagEnterInsert/tagDelete/tagYank/tagPaste — deleted as unreachable (~120 lines; multi-word tag execution stays the mouse middle-drag). tag.snap rewritten: INS on click, type/backspace straight in, Esc exit with the text persisting, Enter-look opens the file. Tutor documents it. Cursor SHAPE is not capturable by the harness (position only) — verify by eye: bar in insert/tags, block elsewhere, both shells. 30/30.
* mode indicators: 3-char uppercase (nm→NOR, in→INS, sy→TTY). tagPrefix ↵Gabriel Schneider2026-08-01
| | | | + dump-load tty detection (startsWith "TTY "), tutor.txt docs, exec/fileedit snap tag-click cols +1 for the wider prefix, all 18 goldens regenerated (indicator text + 1-col tag shift only)
* pardes v2: the rewrite, complete and organized. src/ (core + three shells), ↵Gabriel Schneider2026-08-01
test/ (snapshot parity harness + 18 frozen goldens). One sans-IO core, vaxis tty + SDL3 GPU native + wasm web shells, 18/18 parity with the purged prototype, 7.6k lines vs 12.1k. Fix: gui shell pre-sized the core at init so the greet-releasing resize never fired (blank panes until first interaction); live sessions now init at defaults and get the real grid as a resize event (the shell contract, documented on Options).