summaryrefslogtreecommitdiff
path: root/test/snapshots/jumps.snap
blob: 900b63a106d62d2b870decb660fca68312734369 (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
# RULE: there is ONE focus history and it is a stack of LOCATIONS — a pane and
# a spot in it. Ctrl-o walks it back, Ctrl-i walks it forward again, `SPC j j`
# (Last) hops to the newest OTHER pane, and `SPC j l` (Jumplist) writes the
# same stack out as an output buffer whose rows are ordinary look targets, so
# n/N step them. What gets ONTO the stack is decided in one place (trackJump):
# focus ended the update in a different pane, or more than a bodyful of rows
# away in the same one — which is why `100G` below leaves a location behind
# and the j/k that follow it do not.
#
# Focus and position both show in the golden's `cursor=` header: that is the
# ACTIVE pane's cursor, so each snap is named by where it should land.
lines big.txt 200
start 30 150 big.txt
wait 8000 big.txt
stable 700 20000
# left column = big.txt, right column = the launch shell; the file has focus
snap start
# two focus moves, so the stack is file -> shell -> file
key space w l
stable 400 5000
snap to-shell
key space w h
stable 400 5000
snap to-file
# a FAR motion inside one pane: 100G is a jump, so the line we left is
# remembered and Ctrl-o can come back to it
text 100
key G
stable 400 5000
snap goto-100
# Ctrl-o: back to line 1 of the same pane — a stack of panes could not do this
key c-o
stable 400 5000
snap back-in-file
# ...and back again into the shell
key c-o
stable 400 5000
snap back-to-shell
# Ctrl-i forward, twice: the shell entry, then line 100 again. Sent as the
# kitty-protocol CSI u (`CSI 105;5u`) because on the wire Ctrl-i IS Tab —
# see config.jump_keys.
send \e[105;5u
stable 400 5000
snap forward-file
send \e[105;5u
stable 400 5000
snap forward-100
# SPC j j — the newest OTHER pane, and pressing it again comes straight back
key space j j
stable 400 5000
snap last
key space j j
stable 400 5000
snap last-back
# SPC j l — the stack as text: `location text` rows, the file naming itself
# and the shell spelled @pN because it has no path
key space j l
stable 700 15000
snap jumplist
# n/N step the rows and look them, exactly as they do a +Search: the stepped
# row is selected in the buffer (snapstyle) and the pane it names follows.
# Row 1 is the file at line 1, row 2 the shell (no path, so `@pN`), row 4 the
# file at line 100 — so the body visibly rides the list.
key n
stable 700 15000
snap step1
snapstyle step1
key n
stable 700 15000
snap step2-shell
key n
stable 700 15000
key n
stable 700 15000
snap step4-line100
key N
stable 700 15000
snap step-back
# and an ordinary LOOK on a row goes there too — the leading word IS a
# location, so the right-click look resolves it like any other path. Row 4
# again, this time by clicking it.
press right 16 28
release right 16 28
stable 700 15000
snap look-row