<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pardes.git/test/hxcases/goldens.jsonl, branch main</title>
<subtitle>Pardes</subtitle>
<id>https://git.0x4200.cafe/pardes.git/atom?h=main</id>
<link rel='self' href='https://git.0x4200.cafe/pardes.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/'/>
<updated>2026-10-01T03:12:15Z</updated>
<entry>
<title>gw labels the words in view and jumps to the one whose label is typed</title>
<updated>2026-10-01T03:12:15Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-28T19:46:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=ec4f300060ec0c93cc920dd5562eae1e3153d8b7'/>
<id>urn:sha1:ec4f300060ec0c93cc920dd5562eae1e3153d8b7</id>
<content type='text'>
helix goto_word: the words of two or more word characters between the
view's first and last lines get two-letter labels, nearest the cursor first,
one forward and one back in turn (modal.jumpWords). The next two keys choose
one and select it, stretching the selection to it in select mode; any other
key takes the labels away. The words live on Pane.jump, and renderBody paints
their labels over the body's cells in the selection colours, the one change
on the render side.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Z arms the view keys until Esc, and zm puts the cursor's column mid-view</title>
<updated>2026-10-01T03:12:15Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-28T19:43:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=71c5b400ced873cddd77497b7a9fd06184954813'/>
<id>urn:sha1:71c5b400ced873cddd77497b7a9fd06184954813</id>
<content type='text'>
Z is helix's sticky view mode: the z keys stay armed after each until Esc,
which leaves the mode and does nothing else (no pane hop). zm is
align_view_middle: an unwrapped view scrolls sideways so the cursor's column
is in its middle.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Tab after text leaves the syntax node in insert mode; Shift-Tab indents</title>
<updated>2026-10-01T03:12:15Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-28T19:41:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=78daa25e5c99cc0d71da36b6e0dcdd362b0cb284'/>
<id>urn:sha1:78daa25e5c99cc0d71da36b6e0dcdd362b0cb284</id>
<content type='text'>
helix smart_tab: in insert mode, Tab where text precedes the cursor on its
line moves past the end of the node the cursor is in, the parent-node end of
Alt-e; in leading blanks it indents. Only where the file has a grammar: the
reference pins smart tab off, which a file without a grammar agrees with, so
there Tab still indents. Shift-Tab is insert_tab, and the differential
harness now reads the S- modifier.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Insert Ctrl-s commits an undo checkpoint mid-session</title>
<updated>2026-10-01T03:12:15Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-28T19:41:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=686673bfb67ac80ed464351528d9ab1bceaa1d02'/>
<id>urn:sha1:686673bfb67ac80ed464351528d9ab1bceaa1d02</id>
<content type='text'>
helix commit_undo_checkpoint: u after the insert session goes back to the
text as it was at Ctrl-s, a second u to before the session. It pushes an
undo snapshot where the session stands.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Alt-u and Alt-U undo and redo</title>
<updated>2026-10-01T03:12:15Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-28T19:40:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=2d1ae5034dfcfe9265689e7fa53c5a85b683a7a1'/>
<id>urn:sha1:2d1ae5034dfcfe9265689e7fa53c5a85b683a7a1</id>
<content type='text'>
helix's earlier/later walk its history tree by time; pardes's history is a
line, where earlier and later are undo and redo, so the keys are aliases.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>g. goes to where the last edit ended</title>
<updated>2026-10-01T03:12:15Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-28T19:38:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=bdbab17204efdb785b6ab3cc2022484485c0ded2'/>
<id>urn:sha1:bdbab17204efdb785b6ab3cc2022484485c0ded2</id>
<content type='text'>
helix goto_last_modification: every range moves to the end of the last
change (the start of a deletion, the end of an insertion), extending in
select mode. The position is kept on the Text in surface rows, set where
setEditText hands a body its new text, so a terminal's typed text has one
too and moves with its scrollback.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Alt-o, Alt-i and the other tree-sitter keys walk the file's syntax tree</title>
<updated>2026-10-01T03:12:15Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-28T19:35:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=e87e16547a17864b2a0cd574c1aa42d44125bc6c'/>
<id>urn:sha1:e87e16547a17864b2a0cd574c1aa42d44125bc6c</id>
<content type='text'>
helix's expand/shrink, previous/next sibling, all siblings, all children and
parent-node end/start (Alt-o/up, Alt-i/down, Alt-p/left, Alt-right, Alt-a,
Alt-I, Alt-e, Alt-b; Alt-n stays the new terminal) walk a whole-file parse
the file keeps (File.node_tree), made on the first such key after an edit and
reused until the next, never per key. syntax.walkNodes follows helix's
TreeCursor over every node, anonymous ones included, and Alt-i goes back to
what Alt-o grew from while the selection still holds it. The harness runs
without grammars, so the cases prove the plain-text no-op; a test replays
eleven JSON walks whose results were taken from the installed hx.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>K and Alt-K keep or drop the ranges a regex matches in; Alt-: turns every range forward</title>
<updated>2026-10-01T03:12:15Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-28T19:29:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=79cdf76fd2dd0ba03622bfe742b525b770d51684'/>
<id>urn:sha1:79cdf76fd2dd0ba03622bfe742b525b770d51684</id>
<content type='text'>
K and Alt-K share the s/S prompt, which now carries a mode rather than a
split flag: a range stays when a match starts inside it (K) or when none does
(Alt-K), the primary becomes the first, and keeping none leaves the selection
as it was (helix keep_or_remove_matches). Alt-: is ensure_selections_forward.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>A selection holds up to 1024 ranges on the desktop, 64 on the board</title>
<updated>2026-10-01T03:12:15Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-28T19:24:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=7ce5d94b5d48b68c86d015060ebcabe63e299e1a'/>
<id>urn:sha1:7ce5d94b5d48b68c86d015060ebcabe63e299e1a</id>
<content type='text'>
The limit was 64 everywhere, which helix-golf's enumerate_and_align outgrows
(%s |\d+ makes 121 ranges). It is now memory.limits.selections, per platform,
and the counts that hold it are u16. The ranges stay inline in each Text, so a
pane grows by about 80 KiB on the desktop (three texts and the regex prompt's
snapshot); the Pane size budget in Terminal.zig moves from 128 to 160 KiB and
says why.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Q records keys into a register and q types them again; . repeats the last insert</title>
<updated>2026-10-01T03:12:15Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-28T19:20:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=3992e9def8692710590deacbc20bd925e0f8d64a'/>
<id>urn:sha1:3992e9def8692710590deacbc20bd925e0f8d64a</id>
<content type='text'>
Macro.zig keeps keys to be typed again. Q records into @ (or "&lt;reg&gt;) in
helix's key notation until the next Q; q replays a register's keys count
times through the modal handling, where Esc does not hop panes and Enter,
Tab and Space neither look, execute nor open the leader. . replays the
normal command that entered the last insert session once and what was typed
in it count times (helix repeat_last_insert). a at the end of the text now
adds the newline helix's append_mode does, which a terminal's text does not.
helix-golf's invert_dictionary passes.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
