summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-07-30 23:35:45 -0300
committerGabriel Schneider <[email protected]>2026-08-01 15:02:07 -0300
commit19f7322100062b7c1adcde3376063ce6c1d8c72d (patch)
treeb76347dffe0347c29a38b4cad6031678683dba74 /docs
parent753d5451ca7d09dbc5ff44f3c2dcf9a47fb87f96 (diff)
downloadpardes-19f7322100062b7c1adcde3376063ce6c1d8c72d.tar.gz
pardes-19f7322100062b7c1adcde3376063ce6c1d8c72d.zip
structure: backends into src/{tty,gui,lsp}, pane kinds and builtins into their own files
The core now lies FLAT at src/ and every subdirectory is one backend, so a file being in no directory at all is what says it is core. Pane-kind bodies leave pardes.zig for term_pane.zig / file_pane.zig / output_pane.zig, leaving it the layout, the event/effect machine and the generic render loop. Builtins are one struct each in builtins.zig, and the enum is folded out of the file's own declaration list at comptime — a zig file IS a struct, so the list of builtins and the builtins themselves are the same text. Adding one is writing a struct. Key paths deliberately stay one table for the config pass. Pure refactor: no golden moved.
Diffstat (limited to 'docs')
-rw-r--r--docs/lsp-evaluation.md4
-rw-r--r--docs/lsp.md4
2 files changed, 4 insertions, 4 deletions
diff --git a/docs/lsp-evaluation.md b/docs/lsp-evaluation.md
index 5f660640..1756ec94 100644
--- a/docs/lsp-evaluation.md
+++ b/docs/lsp-evaluation.md
@@ -1,6 +1,6 @@
# Three language backends, measured
-Same core, same seam (`src/lsp.zig`), same 17-probe harness (`zig build lspbench`)
+Same core, same seam (`src/lsp/lsp.zig`), same 17-probe harness (`zig build lspbench`)
over the same corpus. Three jj workspaces, three independent implementations,
one function each. C landed; see **Decision** below.
@@ -84,7 +84,7 @@ real binary through the helix keymap, and pass `hxdiff` (360) and `hxparity`
## Decision
-**C landed.** It is what `src/lsp_zls.zig` is, and ZLS is now a fetched
+**C landed.** It is what `src/lsp/lsp_zls.zig` is, and ZLS is now a fetched
dependency (`build.zig.zon`, pinned to commit `3e0d0820` on the 0.16.x branch)
so it sits in `zig-pkg/` like everything else and the build is reproducible
from the .zon alone — no path dependency on a local checkout.
diff --git a/docs/lsp.md b/docs/lsp.md
index 2a4c8784..91d07231 100644
--- a/docs/lsp.md
+++ b/docs/lsp.md
@@ -5,7 +5,7 @@ Three things landed together, and only the first two are permanent:
1. **An async execution model.** The core stays a state machine; slow work goes
to a worker and comes back as an event.
2. **A helix-exact keymap** for every LSP command.
-3. **A seam** (`src/lsp.zig`) with exactly one function behind it, so competing
+3. **A seam** (`src/lsp/lsp.zig`) with exactly one function behind it, so competing
backends can be swapped, measured, and thrown away.
## The async model
@@ -126,7 +126,7 @@ document — which matters precisely when the pane you are in is the problem.
## Writing a backend
-`src/lsp.zig` is the seam. An implementation supplies three things and touches
+`src/lsp/lsp.zig` is the seam. An implementation supplies three things and touches
nothing else:
```zig