From ecfaeabf2a92e26c6a521d5fac404a0fff6263b6 Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Wed, 16 Sep 2026 01:34:45 +0200 Subject: milestone 1 review: claims span the run, explain's chain is opt-in and its own, overrides keyed by clean path, splice and enum guards --- docs/gui-design.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'docs/gui-design.md') diff --git a/docs/gui-design.md b/docs/gui-design.md index d377bb2..a7c5089 100644 --- a/docs/gui-design.md +++ b/docs/gui-design.md @@ -55,10 +55,13 @@ Made first, each tested through the CLI's existing tests as well as new ones: - **Load with overrides.** `engine.LoadWith(mainFile, overrides map[string][]byte, names...)` loads the configuration with some files' text replaced in memory, so unsaved editor text is checked exactly as a run would read it. -- **Explain with outcomes.** `Explain` also returns, per matching rule, the - capture values, and the chain the file would get (each step's action, - destination after placeholders and conflicts, skip reason), so the test - pane shows `{1}=2026` and `→ Pictures/Screenshots/2026-09/`. +- **Explain with outcomes.** `Explain` returns, per matching rule, the + capture values; `ExplainWithChain` also returns the chain this file alone + would get (each step's action, destination after placeholders and + conflicts with what is on disk, skip reason), so the test pane shows + `{1}=2026` and `→ Pictures/Screenshots/2026-09/`. A clash with another + file of the same plan is resolved in the Plan tab, not here; the CLI's + `explain` does not ask for the chain, since building it can read files. - **Printer and splice.** `internal/config` gains a printer for rule and exclude forms (two-space indentation as in `examples/`) and a splice that replaces one form's byte range (`sexp.Node.Pos`/`End`) and nothing else. -- cgit v1.3