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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
# The Find builtin (SPC f f) = `fd`, in-core: it arms the SAME tag input `/`
# does, but Enter walks the pane's DIRECTORY instead of its text and writes one
# matching path per row into a "+Search" OUTPUT BUFFER. Every row is therefore
# an ordinary look target, which is the whole point: n/N SELECT the next/prev
# one with no code of their own, and the look chord — Enter, the same one that
# opens a path anywhere else — is what OPENS it. Focus then follows the file
# that opened, but the look was made FROM the results buffer, so the next n
# resumes stepping that same list. Where each pane lands is acme's placement
# (docs/typ/guide.typ, where new panes go): under the text of the pane with the
# most blank rows. The walk skips .git, matches the NAME
# case-insensitively, and sorts (readdir order is not stable). `SPC f s` is
# Save, which moved out of `w` to make this group.
dirmk sub
dirmk sub/nest
dirmk .git
file here.txt Find
file zqmark-alpha.txt alpha body
file sub/ZQMARK-beta.txt beta body
file sub/nest/zqmark-gamma.txt gamma body
file other.txt nothing to match here
file .git/zqmark-hidden.txt hidden body
start 41 120 here.txt
wait 8000 here.txt
stable 700 20000
# SPC f is a GROUP now (Find + New + Save): the indicator stays on the tag
key space
key f
stable 400 5000
snap group
# ... and the second f arms the input, marker visible in the tag
key f
stable 400 5000
snap armed
text zqm
stable 400 5000
snap typing
# Enter walks: three hits, sorted, .git's copy skipped, other.txt not matched
key enter
wait 10000 zqmark-alpha.txt
stable 700 15000
snap results
# n SELECTS row 1 and Enter looks it — a path, so the file OPENS, under the
# list's text, and each file after it under the one before.
key n
key enter
wait 10000 beta body
stable 700 15000
snap first
snapstyle first
key n
key enter
wait 10000 gamma body
stable 700 15000
snap second
key n
key enter
wait 10000 alpha body
stable 700 15000
snap third
# N walks back up one row; Enter looks it, and the file is already open, so
# the look just focuses it
key N
key enter
stable 700 15000
snap back
# executing the WORD Find (middle-click in a body) arms the same input — the
# enum IS the dispatch — and Esc abandons it. The input is its own line, so an
# abandoned one leaves nothing behind in the tag
press middle 8 4
release middle 8 4
stable 700 10000
snap word
key esc
settle 100
stable 400 5000
snap cancel
# every search is asked from a PANE, and both a look and now a step leave you
# somewhere else — so click back into here.txt first. That is not bookkeeping:
# a search never refills the buffer it was asked FROM (fillResults skips it),
# so `owned by here.txt` is the whole premise of the two steps below.
press left 8 4
release left 8 4
stable 400 5000
# a no-match walk opens an empty list of its own, under the last file's text.
key space
key f
key f
text zzqq
key enter
stable 700 10000
# n does not stop on the empty list, because the walk is a RING across panes
# rather than one buffer's rows: with nothing look-able here it carries on
# into the list that DOES have some — the zqm one — and resumes it one row
# past where the N above left it. Nothing opens; only the selection moved.
key n
stable 400 5000
snap nomatch
# ... and asking for `zqm` AGAIN re-arms the list it ALREADY filled instead of
# stacking an identical twin under the empty one — even though the step above
# left the cursor sitting in the zqm list, so the reuse is by what a buffer
# HOLDS (this search, this pattern, this directory), not by which one anything
# happens to point at. Asked from here.txt again (the click, as above), and
# the LIST it rewrites is therefore the `nomatch` frame unchanged, down to the
# byte — only the cursor comes back with it.
press left 8 4
release left 8 4
stable 400 5000
key space
key f
key f
text zqm
key enter
wait 10000 zqmark-alpha.txt
stable 700 15000
snap refit
# Find is a TOPBAR word too: the same
# builtin the leader path runs, reached with the mouse. Chorded — a selection
# held when it runs IS the argument — so dragging over `alpha` and clicking
# Find walks for that name with nothing typed and no input armed. Row 17 is
# `alpha body`: the three found files stack in the order the looks above
# OPENED them, which is beta, gamma, alpha down the column.
press left 8 17
drag left 13 17
release left 13 17
stable 400 5000
press middle @Find 1
release middle @Find 1
stable 700 15000
snap topbar
|