summaryrefslogtreecommitdiff
path: root/test/snapshots/wrap.snap
blob: c6e976b19f58aa200fbd20db2d048c538636b749 (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
# Soft line breaks (the Wrap builtin, `SPC t w`): a file line too long for the
# pane renders across several body rows instead of running off the right edge.
# OFF by default, and off it is the clipping render it has always been.
#
# Three rules pinned here. The break is at min(100, the pane's own content
# width), so a narrow pane breaks at its own edge and a wide one stops at 100.
# A continuation row carries a BLANK gutter — the number belongs to the LINE,
# and a number repeated down a wrapped line would read as several lines. And
# the mouse follows the render: a click on a continuation row lands on the
# character under the pointer, which only works if the click resolves through
# the same row->line map the body was drawn from.
#
# The line is 20 decades, each headed by its own column marker: `0` at column
# 0, `4` at 40, `A` at 100. So the first character of a continuation row NAMES
# the column it broke at, and the width rule is readable straight off the grid.
file long.txt 0---------1---------2---------3---------4---------5---------6---------7---------8---------9---------A---------B---------C---------D---------E---------F---------G---------H---------I---------J---------\nsecond line\nthird line\n
# 47 columns: the 2-column chrome gutter plus the 5-column line-number gutter
# leave 40 for content, under 100, so the PANE's width is the break.
start 14 47 long.txt
wait 8000 New Newcol
stable 700 20000
# off: line 1 on ONE row, cut at the right edge, lines 2 and 3 under it
snap off
key space t w
stable 400 5000
# on: five rows for line 1 (200 bytes / 40), the four continuations gutterless
# and starting at `4` `8` `C` `G` — the columns 40, 80, 120, 160
snap on-narrow
# a click on the SECOND row of line 1, on the `5` marker at column 50. The
# cursor must come back to the cell that was clicked (grid 17,3): the click
# resolved to line 1 column 50, and the render put line 1 column 50 back where
# the finger was. Off by one row and it would land in line 2 instead.
press left 18 4
release left 18 4
stable 400 5000
snap clicked
# motions stay LOGICAL: one `j` from line 1 leaves the whole wrapped line
# behind and lands on line 2, four screen rows down at once.
key j
stable 400 5000
snap logical-j
# ...and off again is off: the same clipped body as the first snap, because
# the map the readers consult goes back to empty and every one of them falls
# back to the row arithmetic it used before any of this existed
key space t w
stable 400 5000
snap off-again
# 127 columns: 120 for content, so the 100 wins and the break is at the `A`
start 14 127 long.txt
wait 8000 New Newcol
stable 700 20000
key space t w
stable 400 5000
snap on-wide