summaryrefslogtreecommitdiff
path: root/test/snapshots/find.snap
blob: fe1ecad3824afe68710c8f91ca002aa3d1234685 (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
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
130
131
# 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. 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. The look
# comes FROM the results buffer, but that is an output pane and not a
# document, so the file joins the docs above it (below here.txt) instead of
# stacking under the list: the +Search stays at the foot of the column.
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. It is exactly as tall as its
# results — one blank row plus its tag — and it stacks above the earlier one,
# whose height is untouched.
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 34 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 35
drag left 13 35
release left 13 35
stable 400 5000
press middle @Find 1
release middle @Find 1
stable 700 15000
snap topbar