diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-27 22:49:49 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:14 -0300 |
| commit | c8f0c25a854b8e169db08a84d1fdcd915a70aaa0 (patch) | |
| tree | a468a2ae2596f9eb162270b32dfb3787e6b5c670 /docs | |
| parent | 71a9f04342493325c10b1b9bc122a88d41143782 (diff) | |
| download | pardes-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')
| -rw-r--r-- | docs/design.typ | 11 | ||||
| -rw-r--r-- | docs/helix-keys.md | 16 | ||||
| -rw-r--r-- | docs/open-questions.md | 4 |
3 files changed, 18 insertions, 13 deletions
diff --git a/docs/design.typ b/docs/design.typ index 01b850b9..82bafb49 100644 --- a/docs/design.typ +++ b/docs/design.typ @@ -521,13 +521,18 @@ const platform_has_fs = !pardes.isolated and the option is comptime, so every libc path below is dead code the compiler removes rather than a branch that could be taken by accident. -The core's one `pointerOperand` primitive owns click-word expansion and is shared +The core's one `pointerOperand` primitive (in `exec.zig`) owns click-word expansion and is shared verbatim by right-click and the delayed hover preview; that policy stays beside input because it also observes live pane selections and wrapped grid coordinates. -`panes.zig` keeps each pane kind's storage and operations together. +Each pane kind keeps its storage and operations together in its own file +(`File.zig`, `Terminal.zig`, `Output.zig`, `Mini.zig`, `pdf_view.zig`, and the +image pane in `image.zig`), reached through `panes.zig` beside `Pane`. `layout.zig` owns placement and presentation state. `pardes.zig` handles input -and cross-pane state directly, without a pane vtable. Integration fixtures live +and cross-pane state directly, without a pane vtable; the rest of the editor +is split by thing as acme is: `edit.zig`, `normal.zig`, `look.zig`, `exec.zig`, +`mouse.zig`, `Messages.zig`, `Pipe.zig`, `colors.zig`, `surface.zig`, +`body_layer.zig` and `dump.zig`. Integration fixtures live in `test/panes.zig`, `test/output.zig`, and `test/pdf.zig`. = State 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 diff --git a/docs/open-questions.md b/docs/open-questions.md index e48d715e..9f4f44f5 100644 --- a/docs/open-questions.md +++ b/docs/open-questions.md @@ -10,8 +10,8 @@ Raised 2026-09-27 in the review of pardes against acme (Plan 9 source at **Today.** A middle-click, an `exec` write or a tag word that is not a builtin is typed into a terminal pane: the pane itself when it takes a command line, -else a shell for the pane's directory (`Pardes.execute`, `ttyForDir` in -`src/pardes.zig`). The command shares that shell's cwd, environment, history +else a shell for the pane's directory (`execute`, `ttyForDir` in +`src/exec.zig`). The command shares that shell's cwd, environment, history and aliases, and its output lands in the terminal. **acme.** An external command runs as its own process: stdin from |
