Skip to content

Commit bd1bd45

Browse files
committed
docs(nook): mark split panes done in v0.51.0, note minimap foundation
1 parent 98088a5 commit bd1bd45

1 file changed

Lines changed: 16 additions & 20 deletions

File tree

cmd/nook/ROADMAP.md

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ These are load-bearing and do not bend for a feature.
2929
debug adapter client are all in-tree or shell out to tools the user
3030
already has (`gopls`, `git`, a DAP server).
3131

32-
## Done (v0.50.0)
32+
## Done (v0.51.0)
3333

3434
The editing core and most of the language-intelligence surface are in
3535
place. Grouped by area, each backed by a package under
@@ -39,7 +39,9 @@ place. Grouped by area, each backed by a package under
3939
highlight, comment toggling, indent guides, code folding, find and
4040
replace, register-based clipboard.
4141
- **Buffers & layout** — tab bar, buffer manager, multibuffer, file
42-
tree with file operations, fuzzy finder, picker.
42+
tree with file operations, fuzzy finder, picker, split panes
43+
(horizontal and vertical, per-buffer sizing, `alt+w` window leader for
44+
split/close/navigate/resize, click-to-focus).
4345
- **Language intelligence (LSP)** — hover, signature help with overload
4446
cycling, completion, code actions, rename, find-references, call
4547
hierarchy, inlay hints, document outline, symbol search, semantic
@@ -59,33 +61,27 @@ place. Grouped by area, each backed by a package under
5961

6062
Roughly in priority order.
6163

62-
1. **Split panes.** Horizontal and vertical view splits over the same or
63-
different buffers. The single biggest layout gap against Zed. Has to
64-
respect the first-paint rule and the recursive pump pattern used for
65-
the existing panes. The geometry foundation is in place:
66-
`internal/splitlayout` is a pure binary layout tree (leaf = pane,
67-
internal = Columns/Rows split with a ratio) with split, close, ordered
68-
and directional focus, divider-resize, rectangle computation, divider
69-
line positions for rendering, and `PaneAt` hit-testing for mouse focus,
70-
all constant-time and unit-tested. What remains is host wiring: rendering
71-
each pane's editor view into its rect, drawing the dividers, routing
72-
input to the focused pane, and the focus and split keybindings. The
73-
wiring is decomposed into four green-shippable slices in
74-
`docs/nook/design/01-split-panes-host-wiring.md`.
75-
2. **Full multi-cursor.** Add-cursor-at-next-match (ctrl+d),
64+
1. **Full multi-cursor.** Add-cursor-at-next-match (ctrl+d),
7665
select-all-occurrences (alt+d), stack-above/below (ctrl+↑/↓),
7766
split-selection-into-lines (alt+i), multi-line edit at every cursor,
7867
and consistent placement of the primary within its own match all
7968
work. What remains for a first class mode: column/box cursors (drag
8069
or keyboard column selection).
81-
3. **Vim mode.** Modal editing as an opt-in layer. Gated on an explicit
70+
2. **Vim mode.** Modal editing as an opt-in layer. Gated on an explicit
8271
product decision before build — it is a large surface and should not
8372
land half-done.
84-
4. **Tree-sitter highlighting.** Upgrade the syntax backend from chroma
73+
3. **Tree-sitter highlighting.** Upgrade the syntax backend from chroma
8574
to tree-sitter (via WASM) for incremental, error-tolerant parsing.
8675
chroma stays the fallback for grammars not yet wired.
87-
5. **Minimap.** Optional document overview gutter. Lowest priority of the
88-
five; useful but not load-bearing for the editing experience.
76+
4. **Minimap.** Optional document overview gutter. Lowest priority;
77+
useful but not load-bearing for the editing experience. The geometry
78+
foundation is in place: `internal/minimap` is a pure, constant-time
79+
`Model` that maps between source lines and minimap rows (`LineRange`,
80+
`RowForLine`, `ViewportWindow` for the highlight band, `LineForRow`
81+
for click-to-scroll), fully unit-tested, no I/O, inside the
82+
first-paint rule. What remains is host wiring: rendering the column
83+
from per-row buffer density, drawing the viewport band, and routing
84+
click-to-scroll.
8985

9086
## How to pick the next slice
9187

0 commit comments

Comments
 (0)