summaryrefslogtreecommitdiff
path: root/docs/helix-keys.md
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-27 22:49:49 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:14 -0300
commitc8f0c25a854b8e169db08a84d1fdcd915a70aaa0 (patch)
treea468a2ae2596f9eb162270b32dfb3787e6b5c670 /docs/helix-keys.md
parent71a9f04342493325c10b1b9bc122a88d41143782 (diff)
downloadpardes-c8f0c25a854b8e169db08a84d1fdcd915a70aaa0.tar.gz
pardes-c8f0c25a854b8e169db08a84d1fdcd915a70aaa0.zip
Point docs and comments at the files code moved to
Documentation only, no code change: README's reading order and layout, docs/design.typ's paragraph on where pane kinds and editor parts live, docs/helix-keys.md's code map (normalInput and the executors now in normal.zig and edit.zig, insertTab in edit.zig), docs/open-questions.md (execute and ttyForDir in exec.zig), and the comments that named pardes.zig for fold, Cell, takesCommandLine and runBuiltin (tools/gen_themes.zig, themes/helix.zig, detached/wire.zig, host_io.zig, lsp_zls.zig). docs/design.pdf is a retained fixture and is not regenerated. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'docs/helix-keys.md')
-rw-r--r--docs/helix-keys.md16
1 files changed, 8 insertions, 8 deletions
diff --git a/docs/helix-keys.md b/docs/helix-keys.md
index 6907473a..4de3901a 100644
--- a/docs/helix-keys.md
+++ b/docs/helix-keys.md
@@ -15,14 +15,14 @@ and is described in the Files list at the bottom instead.
Code map, by SYMBOL — line numbers rot, names do not. Body-normal key
RECOGNITION is `modal.Normal` in `src/modal.zig`: a state machine over `Role` (one
per bound command, matched against `src/config.zig`'s chord lists by
-`Pardes.normalInput`), a `Prefix`, a `MatchSub` and a count, emitting a
+`normalInput` in `src/normal.zig`), a `Prefix`, a `MatchSub` and a count, emitting a
semantic `Action` that both the text and PDF adapters consume. It knows
-nothing about panes or text. `src/pardes.zig` then EXECUTES: `Key`,
-`handleKey` (intercept order is load-bearing, see the comment there),
-`handleNormal` (parses directly into `Pane.normal`),
-`executeNormalAction`, `setPaneRange` (helix range → pane state),
-`enterInsert`, `handleInsert` / `insertKey`, `insertTab`, `normalDelete`,
-`normalYank`, `pasteText`, `normalChange`, `replaySels`, `multiOnce`. Undo
+nothing about panes or text. Then it is EXECUTED: `Key` and `handleKey` in
+`src/pardes.zig` (intercept order is load-bearing, see the comment there);
+`handleNormal` (parses directly into `Pane.normal`), `executeNormalAction`,
+`replaySels` and `multiOnce` in `src/normal.zig`; `setPaneRange` (helix range
+→ pane state); and `enterInsert`, `handleInsert` / `insertKey`, `insertTab`,
+`normalDelete`, `normalYank`, `pasteText`, `normalChange` in `src/edit.zig`. Undo
and redo live in `panes.File` and `panes.Terminal`. Pure text math:
`src/modal.zig` (the `hx*` family is the helix-semantics layer: gap offsets +
ranges over the flat text). Differential harness: `test/hxdiff.zig` +
@@ -313,7 +313,7 @@ text.
| `Ctrl-j` | insert newline (Enter alias) | | helix-verified (phase 5) |
| `Home` / `End` | line start / line end past-the-last-char (`goto_line_end_newline`) | file panes (terminal insert cursor rides its run, as before) | helix-verified (phase 5) |
| `PageUp` / `PageDown` | cursor page up / down, col kept (clamped to line) | file panes | helix-verified (phase 5) |
-| `Tab` | indent to the next 4-column stop with SPACES (`insertTab`, `pardes.zig`: `pad = INDENT_W - col % INDENT_W`) — no `\t` byte ever reaches the file | helix's Spaces indent style; helix smart-tab skipped. After a `.` in a file the backend speaks, Tab instead asks for completion and only indents if the answer is empty (section A) | helix-verified (phase 5) |
+| `Tab` | indent to the next 4-column stop with SPACES (`insertTab`, `edit.zig`: `pad = INDENT_W - col % INDENT_W`) — no `\t` byte ever reaches the file | helix's Spaces indent style; helix smart-tab skipped. After a `.` in a file the backend speaks, Tab instead asks for completion and only indents if the answer is empty (section A) | helix-verified (phase 5) |
## C. Skipped