summaryrefslogtreecommitdiff
path: root/docs/ideas.typ
blob: 2485e3f982e9fd2f18305c5b051be34c0f1d4a0a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// STATUS: live scratch notes, deliberately unfiled — nothing compiles this file
// (no `build.zig` step or other document includes it); kept because
// the first two ideas are still open. The ideas themselves were last touched in
// change `xmzpwklp` (2026-08-01); this header and the LANDED annotation below
// are 2026-08-26 and changed no idea.

- grep shows treesitter context around
  - this could be implemented as a separate binary
- clickable file:lines show somehow (as highlights or something else)
  - is line above or below middle one on the editor
  - is this on the same file as open on the editor

- LANDED: clickable things for the mouse should be navigatable with the keyboard
  - like if I get some search results I can just use tab to navigate them, the editor should know:
    - semantic boundaries (maybe just jump to the next clickable thing?)
  - it is `n`/`N` rather than Tab (Tab is the acme execute chord): a MOTION over
    look-able text, not a jump (`Pardes.lookWalk`, `Pardes.lookSpanIn`). Enter —
    the look chord — on what a step leaves selected is what opens it.
  - the "semantic boundaries" are the pane's GRAIN (`output_pane.Grain`): in free
    text the largest whitespace-delimited run `look.resolve` can act on
    (`look.lookableSpan`), in a results buffer one stop per ROW
    (`look.lookableLineSpan`). Written up in `docs/helix-keys.md`, the `n`/`N`
    row of section A.

- OPEN (2026-10-01): a `Send` builtin, acme's Send in pardes terms
  - not a rename of `Repl`: `Repl lang` is a binding (where Exec on a
    language's files goes), Send is an action (push this text into a
    terminal now)
  - from a tag, type the pane's selection (else its current line) into the
    bound REPL, else the terminal in the same column, and run it
  - the gap it fills: sending from a pane no REPL routes (a .txt, a scratch,
    a README) without binding anything

- OPEN (2026-10-01): an explicit pane picker for moving between panes
  - the problem: SPC w h/l into a column that lands on a raw terminal leaves
    the keys with its program, so Ctrl-w/SPC can't move on without Ctrl-b or
    the mouse (raw terminals must keep Ctrl-w: bash deletes a word with it)
  - the fix has to choose before focus lands. Options:
    1. a window mode: SPC w holds the keyboard; h/j/k/l move a highlighted
       outline between panes (nothing receives keys meanwhile), Enter (or a
       non-motion key) commits, Esc cancels
    2. pane labels (avy / tmux display-panes): a letter on every pane, press
       one to jump there; skips raw terminals entirely
    3. landing rules: into a column, land on its last-focused non-terminal
       pane, or land a terminal in normal mode; no new mode but implicit
  - leaning: 1 with 2's labels shown while in the mode
  - open: does Ctrl-w enter it too; does the committing key reach the pane or
    only Enter commits; labels always or on a key