diff options
| -rw-r--r-- | next-steps.txt | 2 | ||||
| -rw-r--r-- | src/pardes.zig | 105 | ||||
| -rw-r--r-- | src/themes/acme.zig | 7 | ||||
| -rw-r--r-- | src/themes/dark.zig | 8 | ||||
| -rw-r--r-- | src/themes/helix.zig | 9 | ||||
| -rw-r--r-- | test/snapshots/chordcut.golden | 2 | ||||
| -rw-r--r-- | test/snapshots/find.golden | 2 | ||||
| -rw-r--r-- | test/snapshots/fsearch.golden | 4 | ||||
| -rw-r--r-- | test/snapshots/jumps.golden | 2 | ||||
| -rw-r--r-- | test/snapshots/lookrange.golden | 30 | ||||
| -rw-r--r-- | test/snapshots/modal.golden | 8 | ||||
| -rw-r--r-- | test/snapshots/multicursor.golden | 12 | ||||
| -rw-r--r-- | test/snapshots/psearch.golden | 4 | ||||
| -rw-r--r-- | test/snapshots/selregex.golden | 24 | ||||
| -rw-r--r-- | test/snapshots/tagpath.golden | 4 | ||||
| -rw-r--r-- | test/snapshots/themesel.golden | 8 | ||||
| -rw-r--r-- | test/snapshots/ttylook.golden | 2 | ||||
| -rw-r--r-- | tools/gen_themes.zig | 43 |
18 files changed, 198 insertions, 78 deletions
diff --git a/next-steps.txt b/next-steps.txt index 0422595d..facca8c9 100644 --- a/next-steps.txt +++ b/next-steps.txt @@ -1,4 +1,4 @@ -- The selection colors should be based on the theme. ++ The selection colors should be based on the theme. - The default layout for when just opening a file should be just the file without the term. - Implement soft line breaks with a builtin to toggle it; the line breaks at min(100 chars, window width) - A new UI semantic element will be implemented which is the transient message section: it will be the latest row of a pane. When executing any builtin that requires and string argument but none was provided right now it should ask for input at the tagline. now it will be at this transient msg that will be left-aligned on the last row. Also when saving a file or a file is reloaded it should display a message there saying the time and what happened. the message should clear when any key on the keyboard is pressed or any mouse button is moved
\ No newline at end of file diff --git a/src/pardes.zig b/src/pardes.zig index 471817f7..aa2ec398 100644 --- a/src/pardes.zig +++ b/src/pardes.zig @@ -2226,18 +2226,18 @@ pub const bash_rc = // ---- theme ---- -// per-button selection highlight: distinct muted colors per mouse button -const SEL_BG = [3][3]u8{ .{ 0x2c, 0x46, 0x74 }, .{ 0x2c, 0x60, 0x38 }, .{ 0x64, 0x2c, 0x58 } }; -const sel_fg = [3]u8{ 0xd2, 0xd2, 0xd2 }; -// modal line/char selection: warm tan, reads as keyboard-driven -const msel_bg = [3]u8{ 0x4a, 0x3a, 0x1e }; -const msel_fg = [3]u8{ 0xd8, 0xc8, 0xa8 }; -// the OTHER cursors of a multi-selection: the same tan turned down, so the -// primary is the one that reads as "here" at a glance (helix does the same -// with its two selection styles). Each secondary's own cursor cell is then -// painted msel_fg-on-msel_bg — there is only one hardware cursor. -const msel2_bg = [3]u8{ 0x2e, 0x26, 0x16 }; -const msel2_fg = [3]u8{ 0xa8, 0x9c, 0x84 }; +/// Halfway between two colors, channel by channel. Every selection tint pardes +/// paints is a mix of theme colors — the per-mouse-button ones pull the theme's +/// selection toward one of its own accents, a quarter of the way and so a mix +/// of a mix; the extra cursors' pulls it back toward the page — and renderPane +/// makes seven of those, which is six more than spelling the same three-channel +/// loop out at the call site is worth. +fn mix(a: [3]u8, b: [3]u8) [3]u8 { + var out: [3]u8 = undefined; + for (&out, a, b) |*c, x, y| c.* = @intCast((@as(u16, x) + y) / 2); + return out; +} + const UNDO_MAX = 256; const EDIT_UNDO_MAX = 64; // terminal snapshots copy the edit buffer; cap tighter @@ -2249,10 +2249,18 @@ const EDIT_UNDO_MAX = 64; // terminal snapshots copy the edit buffer; cap tighte /// piece of loud chrome on screen. The overlay/drag greys that were also /// hardcoded turned out to be the dark theme's own scroll_track/lineno/tag_fg /// spelled a second time, so they read those fields now instead. +/// +/// Selection is ONE pair, `sel_bg`/`sel_fg`, and the rest is arithmetic: the +/// three per-mouse-button tints and the dimmed extra cursors are mixed off it in +/// renderPane rather than named here. A theme author gets their selection colour +/// right and would get four more by accident — and every source gen_themes reads +/// names exactly one selection anyway. pub const Theme = struct { name: []const u8, bg: ?[3]u8, fg: ?[3]u8, + sel_bg: [3]u8, + sel_fg: [3]u8, tag_bg: [3]u8, tag_fg: [3]u8, box: [3]u8, // move box, focused pane @@ -10194,9 +10202,15 @@ pub const Pardes = struct { } if (pv.selection) |selection| { try highlights.ensureUnusedCapacity(arena, selection.quads.len); + // a page is not a grid of cells, so this is the one selection that + // paints as a translucent wash over rendered pixels rather than as + // a cell's background — but it is the same selection, so it is the + // same colour. The alpha stays hardcoded: it is what makes the + // glyphs underneath readable, and no theme has an opinion on it. + const sel = p.theme().sel_bg; for (selection.quads) |quad| highlights.appendAssumeCapacity(pdf_impl.Highlight.init( quad, - .{ 0x55, 0xa7, 0xff, 0x78 }, + .{ sel[0], sel[1], sel[2], 0x78 }, .selection, )); } @@ -11615,6 +11629,11 @@ pub const Pardes = struct { // scrollbar's second column. `.default` means the host terminal's own // background, which is what a themeless dark pane wants. const pane_bg: Color = if (th.bg) |c| .{ .rgb = c } else .default; + // ...and the same background as a colour to do arithmetic on, which the + // dimmed selections below need. A theme with a null bg cannot say what + // the host's own cell looks like, so its tag bar stands in — the + // substitution pdfTintColors already makes. + const page_rgb = th.bg orelse th.tag_bg; // text area resets to terminal-default cells (vaxis clear semantics); // light themes paint the page over it. @@ -11681,7 +11700,13 @@ pub const Pardes = struct { if (w < tw) _ = s.print(tx + tw - w, r.y, w, ibuf[0..iw], tag_style); } // tag char selection highlight (helix v/x, or a tagline sweep), - // inclusive [lo, hi] — rendered-tag columns, so no conversion + // inclusive [lo, hi] — rendered-tag columns, so no conversion. + // + // Every selection on screen paints in the LIVE theme (`th`) and not in + // `chrome`: a highlight is not attached to any geometry, it appears + // under the range you just swept, so it has to arrive with the theme + // the way syntax colours do rather than slide in over the chrome + // animation's frames. if (pane.tag_edit and pane.tag_sel) { const b = tagSelBounds(pane); var col: usize = b.lo; @@ -11689,8 +11714,8 @@ pub const Pardes = struct { while (col <= end and col < tw) : (col += 1) { const cell = s.at(tx + @as(u16, @intCast(col)), r.y); cell.default = false; - cell.style.bg = .{ .rgb = msel_bg }; - cell.style.fg = .{ .rgb = msel_fg }; + cell.style.bg = .{ .rgb = th.sel_bg }; + cell.style.fg = .{ .rgb = th.sel_fg }; } } // cursor while editing the tag: a rendered-tag column, verbatim @@ -11774,6 +11799,28 @@ pub const Pardes = struct { // mouse selections (pane-local coords), one pass per button — later // buttons win on overlap. A left .done stays highlighted after release; // middle/right .done are transient (they fire their action on release). + // + // Which button drew a sweep is worth seeing, so each gets the theme's + // selection tinted toward one of the theme's own syntax accents: three + // colours that are visibly not each other on a dark theme and on a + // light one, without asking a theme to name three more. A QUARTER of + // the accent, which is the mix of a mix — at a half, an accent as + // bright as the theme's text lands on top of sel_fg and the selected + // text stops being readable on a couple of dozen generated themes. + // `num` gives way to `comment` when a theme paints numbers and strings + // alike — the shipped helix theme does, 24 of the generated ones do — + // because two buttons landing on one colour is the whole thing this + // avoids. + // ponytail: 20 of the 228 themes colour two of these three scopes the + // same anyway and still collapse two buttons. Upgrade path is to walk + // the theme for a third colour far enough from the other two, rather + // than naming the scopes here. + const accent2 = if (std.mem.eql(u8, &th.num, &th.str)) th.comment else th.num; + const sel_btn = [3][3]u8{ + mix(th.sel_bg, mix(th.sel_bg, th.kw)), + mix(th.sel_bg, mix(th.sel_bg, th.str)), + mix(th.sel_bg, mix(th.sel_bg, accent2)), + }; for (pane.sel, 0..) |sl, b| { if (sl.state == .none) continue; if (sl.state == .done and b != 0) continue; @@ -11788,8 +11835,8 @@ pub const Pardes = struct { while (col <= c1 and col < tw) : (col += 1) { const cell = s.at(tx + @as(u16, @intCast(col)), r.y + row); cell.default = false; - cell.style.bg = .{ .rgb = SEL_BG[b] }; - cell.style.fg = .{ .rgb = sel_fg }; + cell.style.bg = .{ .rgb = sel_btn[b] }; + cell.style.fg = .{ .rgb = th.sel_fg }; } } } @@ -11804,8 +11851,8 @@ pub const Pardes = struct { while (col < tw) : (col += 1) { const cell = s.at(tx + col, r.y + row); cell.default = false; - cell.style.bg = .{ .rgb = msel_bg }; - cell.style.fg = .{ .rgb = msel_fg }; + cell.style.bg = .{ .rgb = th.sel_bg }; + cell.style.fg = .{ .rgb = th.sel_fg }; } } } @@ -11838,8 +11885,16 @@ pub const Pardes = struct { .acol = if (pane.vsel.active) pane.vsel.col else pane.cur_col, } else pane.sels[si]; const bnd = cellBounds(sr); - const bg = if (primary) msel_bg else msel2_bg; - const fg = if (primary) msel_fg else msel2_fg; + // an extra cursor is the selection colour turned down: the + // highlight pulled halfway back to the page, so the primary is + // the one that reads as "here" at a glance. On a light theme + // that dims toward white rather than toward black, which is the + // same statement. The INK stays put — helix's two selection + // styles differ in their background too, and dimming both ends + // walks the text and its cell toward each other until neither + // is readable on the themes whose selection is already close to + // the page. + const bg = if (primary) th.sel_bg else mix(th.sel_bg, page_rgb); var ar: i32 = bnd.lo_row; while (ar <= bnd.hi_row) : (ar += 1) { const prow = ar - off + @as(i32, BOX_H); @@ -11851,7 +11906,7 @@ pub const Pardes = struct { const cell = s.at(tx + @as(u16, @intCast(col)), r.y + @as(u16, @intCast(prow))); cell.default = false; cell.style.bg = .{ .rgb = bg }; - cell.style.fg = .{ .rgb = fg }; + cell.style.fg = .{ .rgb = th.sel_fg }; } } if (primary and !preview) continue; // the hardware cursor IS the primary's @@ -11860,8 +11915,8 @@ pub const Pardes = struct { if (crow >= BOX_H and crow < @as(i32, r.h) and ccol >= vpfx and ccol < tw) { const cell = s.at(tx + @as(u16, @intCast(ccol)), r.y + @as(u16, @intCast(crow))); cell.default = false; - cell.style.bg = .{ .rgb = msel_fg }; - cell.style.fg = .{ .rgb = msel_bg }; + cell.style.bg = .{ .rgb = th.sel_fg }; + cell.style.fg = .{ .rgb = th.sel_bg }; } } } diff --git a/src/themes/acme.zig b/src/themes/acme.zig index 925cacfb..87183ebc 100644 --- a/src/themes/acme.zig +++ b/src/themes/acme.zig @@ -5,10 +5,17 @@ //! darkened for paper: index 7 (the "white" a shell writes most of its output //! in) is a mid grey, and 15 (bright white) is BLACK, because a program asking //! for the brightest color on a light page means "make this stand out". +//! +//! The selection is acme's own: plan9's DDarkyellow #eeee9e, the colour acme +//! sweeps text with, and black ink over it — acme changes the paper under a +//! selection and never the letters. Out of the same draw.h palette the +//! scrollbar's #99994c (DYellowgreen) is already taken from. pub const theme = .{ .name = "acme", .bg = .{ 0xff, 0xff, 0xea }, .fg = .{ 0x00, 0x00, 0x00 }, + .sel_bg = .{ 0xee, 0xee, 0x9e }, + .sel_fg = .{ 0x00, 0x00, 0x00 }, .tag_bg = .{ 0xea, 0xff, 0xff }, .tag_fg = .{ 0x00, 0x00, 0x00 }, .box = .{ 0x6e, 0x4f, 0xd0 }, diff --git a/src/themes/dark.zig b/src/themes/dark.zig index df418982..5b39b1c7 100644 --- a/src/themes/dark.zig +++ b/src/themes/dark.zig @@ -3,10 +3,18 @@ //! `bg`/`fg` NULL: the page keeps the host terminal's own default cell, so //! pardes sits inside whatever the surrounding terminal already looks like and //! only paints its chrome. Every other theme here dresses the whole page. +//! +//! The selection pair is the warm tan pardes used to paint EVERY theme's +//! selection with, back when those six numbers were module constants. This is +//! the theme it belongs to: a null page is the host terminal's, and a tan that +//! reads as keyboard-driven on whatever dark cell that turns out to be is +//! exactly what it was picked for. pub const theme = .{ .name = "dark", .bg = null, .fg = null, + .sel_bg = .{ 0x4a, 0x3a, 0x1e }, + .sel_fg = .{ 0xd8, 0xc8, 0xa8 }, .tag_bg = .{ 0x2c, 0x2a, 0x3e }, .tag_fg = .{ 0x96, 0x96, 0x96 }, .box = .{ 0x6e, 0x4f, 0xd0 }, diff --git a/src/themes/helix.zig b/src/themes/helix.zig index 26c156ff..3c2934f7 100644 --- a/src/themes/helix.zig +++ b/src/themes/helix.zig @@ -18,6 +18,13 @@ //! #121212 for the bars, 238 #444444 for the thumb, 235 #262626 for an //! unfocused box. No hue anywhere outside the syntax colors. //! +//! The selection pair is the one thing not in that capture, because the capture +//! has nothing selected in it: it is pardes.toml's own +//! `"ui.selection" = { bg = "#80a0ff" }`, verbatim. helix names no foreground +//! there — it tints the cell and lets the syntax colour ride, which at #bdbdbd +//! on #80a0ff is not something to copy — so the ink is the page's own +//! near-black, the other end of the theme's own two extremes. +//! //! Shape: bg/fg are explicit rather than null, because "just really dark" must //! not depend on whose terminal it lands in — but `palette` stays null so a //! shell's ANSI indices still resolve to the host's own 16 colors. helix does @@ -32,6 +39,8 @@ pub const theme = .{ .name = "helix", .bg = .{ 0x08, 0x08, 0x08 }, .fg = .{ 0xbd, 0xbd, 0xbd }, + .sel_bg = .{ 0x80, 0xa0, 0xff }, + .sel_fg = .{ 0x08, 0x08, 0x08 }, .tag_bg = .{ 0x12, 0x12, 0x12 }, .tag_fg = .{ 0x94, 0x94, 0x94 }, .box = .{ 0x62, 0x62, 0x62 }, diff --git a/test/snapshots/chordcut.golden b/test/snapshots/chordcut.golden index 9d63862f..ebe3769a 100644 --- a/test/snapshots/chordcut.golden +++ b/test/snapshots/chordcut.golden @@ -283,7 +283,7 @@ |2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-29 d,#080808, 30-30 d,#444444, 31-31 d,#080808, 32-59 #bdbdbd,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-89 #bdbdbd,#080808, |3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-24 #bdbdbd,#080808, 25-29 d,#080808, 30-30 d,#444444, 31-31 d,#080808, 32-59 #bdbdbd,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-89 #bdbdbd,#080808, |4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-29 d,#080808, 30-30 d,#444444, 31-31 d,#080808, 32-59 #bdbdbd,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-89 #bdbdbd,#080808, -|5: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-10 #d8c8a8,#4a3a1e, 11-16 #bdbdbd,#080808, 17-29 d,#080808, 30-30 d,#444444, 31-31 d,#080808, 32-59 #bdbdbd,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-89 #bdbdbd,#080808, +|5: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-10 #080808,#80a0ff, 11-16 #bdbdbd,#080808, 17-29 d,#080808, 30-30 d,#444444, 31-31 d,#080808, 32-59 #bdbdbd,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-89 #bdbdbd,#080808, |6: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-29 d,#080808, 30-30 d,#444444, 31-31 d,#080808, 32-59 #bdbdbd,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-89 #bdbdbd,#080808, |7: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-29 d,#080808, 30-30 d,#444444, 31-31 d,#080808, 32-38 #bdbdbd,#080808, 39-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-89 #bdbdbd,#080808, |8: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-29 d,#080808, 30-30 d,#444444, 31-31 d,#080808, 32-59 #bdbdbd,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-89 #bdbdbd,#080808, diff --git a/test/snapshots/find.golden b/test/snapshots/find.golden index 760de02a..0b2da4f8 100644 --- a/test/snapshots/find.golden +++ b/test/snapshots/find.golden @@ -241,7 +241,7 @@ |34: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, |35: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, |36: 0-1 #ffffff,#262626, 2-42 #949494,#121212, 43-59 d,#121212, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, -|37: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-59 #d8c8a8,#4a3a1e, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, +|37: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-59 #080808,#80a0ff, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, |38: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-31 #bdbdbd,#080808, 32-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, |39: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-22 #bdbdbd,#080808, 23-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, == snap second grid=120x40 cursor=7,2 diff --git a/test/snapshots/fsearch.golden b/test/snapshots/fsearch.golden index a596cc15..61866b75 100644 --- a/test/snapshots/fsearch.golden +++ b/test/snapshots/fsearch.golden @@ -126,7 +126,7 @@ |0: 0-56 #949494,#121212, 57-179 d,#121212, |1: 0-1 #ffffff,#626262, 2-48 #949494,#121212, 49-59 d,#121212, 60-61 #ffffff,#262626, 62-97 #949494,#121212, 98-119 d,#121212, 120-121 #ffffff,#262626, 122-157 #949494,#121212, 158-179 d,#121212, |2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-8 #bdbdbd,#080808, 9-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, 120-120 d,#444444, 121-121 d,#080808, 122-179 #bdbdbd,#080808, -|3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-10 #d8c8a8,#4a3a1e, 11-12 #bdbdbd,#080808, 13-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, 120-120 d,#444444, 121-121 d,#080808, 122-179 #bdbdbd,#080808, +|3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-10 #080808,#80a0ff, 11-12 #bdbdbd,#080808, 13-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, 120-120 d,#444444, 121-121 d,#080808, 122-179 #bdbdbd,#080808, |4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-8 #bdbdbd,#080808, 9-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, 120-120 d,#444444, 121-121 d,#080808, 122-179 #bdbdbd,#080808, |5: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-8 #bdbdbd,#080808, 9-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, 120-120 d,#444444, 121-121 d,#080808, 122-179 #bdbdbd,#080808, |6: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-8 #bdbdbd,#080808, 9-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, 120-120 d,#444444, 121-121 d,#080808, 122-179 #bdbdbd,#080808, @@ -150,7 +150,7 @@ |24: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, 120-120 d,#444444, 121-121 d,#080808, 122-179 #bdbdbd,#080808, |25: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, 120-120 d,#444444, 121-121 d,#080808, 122-179 #bdbdbd,#080808, |26: 0-1 #ffffff,#262626, 2-45 #949494,#121212, 46-59 d,#121212, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, 120-120 d,#444444, 121-121 d,#080808, 122-179 #bdbdbd,#080808, -|27: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-59 #d8c8a8,#4a3a1e, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, 120-120 d,#444444, 121-121 d,#080808, 122-179 #bdbdbd,#080808, +|27: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-59 #080808,#80a0ff, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, 120-120 d,#444444, 121-121 d,#080808, 122-179 #bdbdbd,#080808, |28: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-24 #bdbdbd,#080808, 25-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, 120-120 d,#444444, 121-121 d,#080808, 122-179 #bdbdbd,#080808, |29: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-25 #bdbdbd,#080808, 26-59 d,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, 120-120 d,#444444, 121-121 d,#080808, 122-179 #bdbdbd,#080808, == snap second grid=180x30 cursor=10,7 diff --git a/test/snapshots/jumps.golden b/test/snapshots/jumps.golden index 417ecf10..72f4f789 100644 --- a/test/snapshots/jumps.golden +++ b/test/snapshots/jumps.golden @@ -395,7 +395,7 @@ |21: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |22: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |23: 0-1 #ffffff,#262626, 2-42 #949494,#121212, 43-74 d,#121212, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, -|24: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 #d8c8a8,#4a3a1e, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, +|24: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 #080808,#80a0ff, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |25: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-40 #bdbdbd,#080808, 41-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |26: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-51 #bdbdbd,#080808, 52-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |27: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-55 #bdbdbd,#080808, 56-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, diff --git a/test/snapshots/lookrange.golden b/test/snapshots/lookrange.golden index 513a9c6a..5bb08a17 100644 --- a/test/snapshots/lookrange.golden +++ b/test/snapshots/lookrange.golden @@ -80,9 +80,9 @@ |16: 0-1 #ffffff,#626262, 2-50 #949494,#121212, 51-74 d,#121212, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |17: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |18: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, -|19: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 #d8c8a8,#4a3a1e, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, -|20: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 #d8c8a8,#4a3a1e, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, -|21: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-11 #d8c8a8,#4a3a1e, 12-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, +|19: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 #080808,#80a0ff, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, +|20: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 #080808,#80a0ff, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, +|21: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-11 #080808,#80a0ff, 12-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |22: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |23: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-18 #bdbdbd,#080808, 19-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |24: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, @@ -146,7 +146,7 @@ |20: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |21: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |22: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, -|23: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-9 #bdbdbd,#080808, 10-15 #d8c8a8,#4a3a1e, 16-18 #bdbdbd,#080808, 19-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, +|23: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-9 #bdbdbd,#080808, 10-15 #080808,#80a0ff, 16-18 #bdbdbd,#080808, 19-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |24: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |25: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |26: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, @@ -204,9 +204,9 @@ |16: 0-1 #ffffff,#626262, 2-50 #949494,#121212, 51-74 d,#121212, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |17: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |18: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, -|19: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-7 #bdbdbd,#080808, 8-74 #d8c8a8,#4a3a1e, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, -|20: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 #d8c8a8,#4a3a1e, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, -|21: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-9 #d8c8a8,#4a3a1e, 10-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, +|19: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-7 #bdbdbd,#080808, 8-74 #080808,#80a0ff, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, +|20: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 #080808,#80a0ff, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, +|21: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-9 #080808,#80a0ff, 10-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |22: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |23: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-18 #bdbdbd,#080808, 19-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |24: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, @@ -270,8 +270,8 @@ |20: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |21: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |22: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-18 #bdbdbd,#080808, 19-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, -|23: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-11 #bdbdbd,#080808, 12-74 #d8c8a8,#4a3a1e, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, -|24: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-10 #d8c8a8,#4a3a1e, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, +|23: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-11 #bdbdbd,#080808, 12-74 #080808,#80a0ff, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, +|24: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-10 #080808,#80a0ff, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |25: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |26: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |27: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, @@ -362,13 +362,13 @@ |19: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |20: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |21: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, -|22: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-9 #bdbdbd,#080808, 10-15 #d8c8a8,#4a3a1e, 16-18 #bdbdbd,#080808, 19-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, +|22: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-9 #bdbdbd,#080808, 10-15 #080808,#80a0ff, 16-18 #bdbdbd,#080808, 19-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |23: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |24: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |25: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |26: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |27: 0-1 #ffffff,#262626, 2-47 #949494,#121212, 48-74 d,#121212, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, -|28: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 #d8c8a8,#4a3a1e, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, +|28: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 #080808,#80a0ff, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |29: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-30 #bdbdbd,#080808, 31-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, == snap hit2 grid=150x30 cursor=17,22 |New Newcol Find Grep Help Tutor Dump NextColor Debug Kill @@ -424,14 +424,14 @@ |19: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |20: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |21: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-18 #bdbdbd,#080808, 19-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, -|22: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-11 #bdbdbd,#080808, 12-17 #d8c8a8,#4a3a1e, 18-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, +|22: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-11 #bdbdbd,#080808, 12-17 #080808,#80a0ff, 18-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |23: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |24: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |25: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |26: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |27: 0-1 #ffffff,#262626, 2-47 #949494,#121212, 48-74 d,#121212, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |28: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-30 #bdbdbd,#080808, 31-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, -|29: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 #d8c8a8,#4a3a1e, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, +|29: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 #080808,#80a0ff, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, == snap back grid=150x30 cursor=15,22 |New Newcol Find Grep Help Tutor Dump NextColor Debug Kill | /tmp/pardes-snap/lookrange/cwd/look.txt Save New Del /tmp/pardes-snap/lookrange/cwd New Del @@ -486,11 +486,11 @@ |19: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |20: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |21: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, -|22: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-9 #bdbdbd,#080808, 10-15 #d8c8a8,#4a3a1e, 16-18 #bdbdbd,#080808, 19-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, +|22: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-9 #bdbdbd,#080808, 10-15 #080808,#80a0ff, 16-18 #bdbdbd,#080808, 19-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |23: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |24: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |25: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |26: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |27: 0-1 #ffffff,#262626, 2-47 #949494,#121212, 48-74 d,#121212, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, -|28: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 #d8c8a8,#4a3a1e, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, +|28: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-74 #080808,#80a0ff, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, |29: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-30 #bdbdbd,#080808, 31-74 d,#080808, 75-75 d,#444444, 76-76 d,#080808, 77-149 #bdbdbd,#080808, diff --git a/test/snapshots/modal.golden b/test/snapshots/modal.golden index d78755a8..0a30d313 100644 --- a/test/snapshots/modal.golden +++ b/test/snapshots/modal.golden @@ -98,7 +98,7 @@ |3: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |4: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |5: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, -|6: 0-0 d,#444444, 1-1 d,#080808, 2-15 #d8c8a8,#4a3a1e, 16-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, +|6: 0-0 d,#444444, 1-1 d,#080808, 2-15 #080808,#80a0ff, 16-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |7: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |8: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |9: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, @@ -222,9 +222,9 @@ |3: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |4: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |5: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, -|6: 0-0 d,#444444, 1-1 d,#080808, 2-49 #d8c8a8,#4a3a1e, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, -|7: 0-0 d,#444444, 1-1 d,#080808, 2-49 #d8c8a8,#4a3a1e, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, -|8: 0-0 d,#444444, 1-1 d,#080808, 2-16 #d8c8a8,#4a3a1e, 17-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, +|6: 0-0 d,#444444, 1-1 d,#080808, 2-49 #080808,#80a0ff, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, +|7: 0-0 d,#444444, 1-1 d,#080808, 2-49 #080808,#80a0ff, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, +|8: 0-0 d,#444444, 1-1 d,#080808, 2-16 #080808,#80a0ff, 17-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |9: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |10: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |11: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, diff --git a/test/snapshots/multicursor.golden b/test/snapshots/multicursor.golden index 10f81d6f..0e66f357 100644 --- a/test/snapshots/multicursor.golden +++ b/test/snapshots/multicursor.golden @@ -32,8 +32,8 @@ == style three-cursors |0: 0-56 #949494,#121212, 57-149 d,#121212, |1: 0-1 #ffffff,#626262, 2-49 #949494,#121212, 50-51 #ffffff,#262626, 52-91 #949494,#121212, 92-99 d,#121212, 100-101 #ffffff,#262626, 102-141 #949494,#121212, 142-149 d,#121212, -|2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-7 #4a3a1e,#d8c8a8, 8-12 #bdbdbd,#080808, 13-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, -|3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-7 #4a3a1e,#d8c8a8, 8-12 #bdbdbd,#080808, 13-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, +|2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-7 #80a0ff,#080808, 8-12 #bdbdbd,#080808, 13-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, +|3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-7 #80a0ff,#080808, 8-12 #bdbdbd,#080808, 13-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, |4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-12 #bdbdbd,#080808, 13-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, |5: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, |6: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, @@ -125,9 +125,9 @@ == style three-selections |0: 0-56 #949494,#121212, 57-149 d,#121212, |1: 0-1 #ffffff,#626262, 2-49 #949494,#121212, 50-51 #ffffff,#262626, 52-91 #949494,#121212, 92-99 d,#121212, 100-101 #ffffff,#262626, 102-141 #949494,#121212, 142-149 d,#121212, -|2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-7 #a89c84,#2e2616, 8-8 #4a3a1e,#d8c8a8, 9-14 #bdbdbd,#080808, 15-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, -|3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-7 #a89c84,#2e2616, 8-8 #4a3a1e,#d8c8a8, 9-14 #bdbdbd,#080808, 15-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, -|4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-8 #d8c8a8,#4a3a1e, 9-14 #bdbdbd,#080808, 15-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, +|2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-7 #080808,#445483, 8-8 #80a0ff,#080808, 9-14 #bdbdbd,#080808, 15-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, +|3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-7 #080808,#445483, 8-8 #80a0ff,#080808, 9-14 #bdbdbd,#080808, 15-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, +|4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-8 #080808,#80a0ff, 9-14 #bdbdbd,#080808, 15-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, |5: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, |6: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, |7: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-58 #bdbdbd,#080808, 59-99 d,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, @@ -189,7 +189,7 @@ |1: 0-1 #ffffff,#626262, 2-49 #949494,#121212, 50-51 #ffffff,#262626, 52-91 #949494,#121212, 92-99 d,#121212, 100-101 #ffffff,#262626, 102-141 #949494,#121212, 142-149 d,#121212, |2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-14 #bdbdbd,#080808, 15-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, |3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-14 #bdbdbd,#080808, 15-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, -|4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-8 #d8c8a8,#4a3a1e, 9-14 #bdbdbd,#080808, 15-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, +|4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-8 #080808,#80a0ff, 9-14 #bdbdbd,#080808, 15-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, |5: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, |6: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, |7: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-58 #bdbdbd,#080808, 59-99 d,#080808, 100-100 d,#444444, 101-101 d,#080808, 102-149 #bdbdbd,#080808, diff --git a/test/snapshots/psearch.golden b/test/snapshots/psearch.golden index e626faf6..a3e65037 100644 --- a/test/snapshots/psearch.golden +++ b/test/snapshots/psearch.golden @@ -126,7 +126,7 @@ |0: 0-56 #949494,#121212, 57-139 d,#121212, |1: 0-1 #ffffff,#626262, 2-37 #949494,#121212, 38-139 d,#121212, |2: 0-0 d,#444444, 1-1 d,#080808, 2-139 #bdbdbd,#080808, -|3: 0-0 d,#444444, 1-1 d,#080808, 2-3 #bdbdbd,#080808, 4-7 #d8c8a8,#4a3a1e, 8-139 #bdbdbd,#080808, +|3: 0-0 d,#444444, 1-1 d,#080808, 2-3 #bdbdbd,#080808, 4-7 #080808,#80a0ff, 8-139 #bdbdbd,#080808, |4: 0-0 d,#444444, 1-1 d,#080808, 2-139 #bdbdbd,#080808, |5: 0-0 d,#444444, 1-1 d,#080808, 2-139 #bdbdbd,#080808, |6: 0-0 d,#444444, 1-1 d,#080808, 2-139 #bdbdbd,#080808, @@ -150,7 +150,7 @@ |24: 0-0 d,#444444, 1-1 d,#080808, 2-139 #bdbdbd,#080808, |25: 0-0 d,#444444, 1-1 d,#080808, 2-139 #bdbdbd,#080808, |26: 0-1 #ffffff,#262626, 2-45 #949494,#121212, 46-139 d,#121212, -|27: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-139 #d8c8a8,#4a3a1e, +|27: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-139 #080808,#80a0ff, |28: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-24 #bdbdbd,#080808, 25-139 d,#080808, |29: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-24 #bdbdbd,#080808, 25-139 d,#080808, == snap second grid=140x30 cursor=7,5 diff --git a/test/snapshots/selregex.golden b/test/snapshots/selregex.golden index febf4193..2a0e30b8 100644 --- a/test/snapshots/selregex.golden +++ b/test/snapshots/selregex.golden @@ -51,9 +51,9 @@ == style preview |0: 0-56 #949494,#121212, 57-159 d,#121212, |1: 0-1 #ffffff,#626262, 2-63 #949494,#121212, 64-79 d,#121212, 80-81 #ffffff,#262626, 82-118 #949494,#121212, 119-159 d,#121212, -|2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #d8c8a8,#4a3a1e, 11-11 #4a3a1e,#d8c8a8, 12-18 #bdbdbd,#080808, 19-19 #e3c78a,#080808, 20-20 #bdbdbd,#080808, 21-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, -|3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #a89c84,#2e2616, 11-11 #4a3a1e,#d8c8a8, 12-18 #bdbdbd,#080808, 19-19 #e3c78a,#080808, 20-20 #bdbdbd,#080808, 21-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, -|4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #a89c84,#2e2616, 11-11 #4a3a1e,#d8c8a8, 12-20 #bdbdbd,#080808, 21-21 #e3c78a,#080808, 22-22 #bdbdbd,#080808, 23-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, +|2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #080808,#80a0ff, 11-11 #80a0ff,#080808, 12-18 #bdbdbd,#080808, 19-19 #e3c78a,#080808, 20-20 #bdbdbd,#080808, 21-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, +|3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #080808,#445483, 11-11 #80a0ff,#080808, 12-18 #bdbdbd,#080808, 19-19 #e3c78a,#080808, 20-20 #bdbdbd,#080808, 21-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, +|4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #080808,#445483, 11-11 #80a0ff,#080808, 12-20 #bdbdbd,#080808, 21-21 #e3c78a,#080808, 22-22 #bdbdbd,#080808, 23-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, |5: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, |6: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, |7: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, @@ -101,9 +101,9 @@ == style three-selected |0: 0-56 #949494,#121212, 57-159 d,#121212, |1: 0-1 #ffffff,#626262, 2-49 #949494,#121212, 50-79 d,#121212, 80-81 #ffffff,#262626, 82-118 #949494,#121212, 119-159 d,#121212, -|2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-11 #d8c8a8,#4a3a1e, 12-18 #bdbdbd,#080808, 19-19 #e3c78a,#080808, 20-20 #bdbdbd,#080808, 21-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, -|3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #a89c84,#2e2616, 11-11 #4a3a1e,#d8c8a8, 12-18 #bdbdbd,#080808, 19-19 #e3c78a,#080808, 20-20 #bdbdbd,#080808, 21-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, -|4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #a89c84,#2e2616, 11-11 #4a3a1e,#d8c8a8, 12-20 #bdbdbd,#080808, 21-21 #e3c78a,#080808, 22-22 #bdbdbd,#080808, 23-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, +|2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-11 #080808,#80a0ff, 12-18 #bdbdbd,#080808, 19-19 #e3c78a,#080808, 20-20 #bdbdbd,#080808, 21-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, +|3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #080808,#445483, 11-11 #80a0ff,#080808, 12-18 #bdbdbd,#080808, 19-19 #e3c78a,#080808, 20-20 #bdbdbd,#080808, 21-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, +|4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #080808,#445483, 11-11 #80a0ff,#080808, 12-20 #bdbdbd,#080808, 21-21 #e3c78a,#080808, 22-22 #bdbdbd,#080808, 23-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, |5: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, |6: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, |7: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, @@ -151,9 +151,9 @@ == style narrowed |0: 0-56 #949494,#121212, 57-159 d,#121212, |1: 0-1 #ffffff,#626262, 2-59 #949494,#121212, 60-79 d,#121212, 80-81 #ffffff,#262626, 82-118 #949494,#121212, 119-159 d,#121212, -|2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-11 #4a3a1e,#d8c8a8, 12-18 #bdbdbd,#080808, 19-19 #e3c78a,#080808, 20-20 #bdbdbd,#080808, 21-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, -|3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-11 #4a3a1e,#d8c8a8, 12-18 #bdbdbd,#080808, 19-19 #e3c78a,#080808, 20-20 #bdbdbd,#080808, 21-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, -|4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-11 #4a3a1e,#d8c8a8, 12-20 #bdbdbd,#080808, 21-21 #e3c78a,#080808, 22-22 #bdbdbd,#080808, 23-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, +|2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-11 #80a0ff,#080808, 12-18 #bdbdbd,#080808, 19-19 #e3c78a,#080808, 20-20 #bdbdbd,#080808, 21-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, +|3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-11 #80a0ff,#080808, 12-18 #bdbdbd,#080808, 19-19 #e3c78a,#080808, 20-20 #bdbdbd,#080808, 21-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, +|4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #bdbdbd,#080808, 11-11 #80a0ff,#080808, 12-20 #bdbdbd,#080808, 21-21 #e3c78a,#080808, 22-22 #bdbdbd,#080808, 23-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, |5: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, |6: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, |7: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, @@ -201,9 +201,9 @@ == style esc-restores |0: 0-56 #949494,#121212, 57-159 d,#121212, |1: 0-1 #ffffff,#626262, 2-49 #949494,#121212, 50-79 d,#121212, 80-81 #ffffff,#262626, 82-118 #949494,#121212, 119-159 d,#121212, -|2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-11 #d8c8a8,#4a3a1e, 12-18 #bdbdbd,#080808, 19-19 #e3c78a,#080808, 20-20 #bdbdbd,#080808, 21-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, -|3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #a89c84,#2e2616, 11-11 #4a3a1e,#d8c8a8, 12-18 #bdbdbd,#080808, 19-19 #e3c78a,#080808, 20-20 #bdbdbd,#080808, 21-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, -|4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #a89c84,#2e2616, 11-11 #4a3a1e,#d8c8a8, 12-20 #bdbdbd,#080808, 21-21 #e3c78a,#080808, 22-22 #bdbdbd,#080808, 23-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, +|2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #949494,#121212, 7-11 #080808,#80a0ff, 12-18 #bdbdbd,#080808, 19-19 #e3c78a,#080808, 20-20 #bdbdbd,#080808, 21-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, +|3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #080808,#445483, 11-11 #80a0ff,#080808, 12-18 #bdbdbd,#080808, 19-19 #e3c78a,#080808, 20-20 #bdbdbd,#080808, 21-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, +|4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-10 #080808,#445483, 11-11 #80a0ff,#080808, 12-20 #bdbdbd,#080808, 21-21 #e3c78a,#080808, 22-22 #bdbdbd,#080808, 23-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, |5: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, |6: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, |7: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-79 d,#080808, 80-80 d,#444444, 81-81 d,#080808, 82-159 #bdbdbd,#080808, diff --git a/test/snapshots/tagpath.golden b/test/snapshots/tagpath.golden index aa7e8b08..bcd3db10 100644 --- a/test/snapshots/tagpath.golden +++ b/test/snapshots/tagpath.golden @@ -124,7 +124,7 @@ | == style sel-path |0: 0-56 #949494,#121212, 57-99 d,#121212, -|1: 0-1 #ffffff,#626262, 2-35 #d8c8a8,#4a3a1e, 36-48 #949494,#121212, 49-49 d,#121212, 50-51 #ffffff,#262626, 52-87 #949494,#121212, 88-99 d,#121212, +|1: 0-1 #ffffff,#626262, 2-35 #080808,#80a0ff, 36-48 #949494,#121212, 49-49 d,#121212, 50-51 #ffffff,#262626, 52-87 #949494,#121212, 88-99 d,#121212, |2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, @@ -217,7 +217,7 @@ | == style drag-cross |0: 0-56 #949494,#121212, 57-99 d,#121212, -|1: 0-1 #ffffff,#626262, 2-10 #949494,#121212, 11-41 #d8c8a8,#4a3a1e, 42-48 #949494,#121212, 49-49 d,#121212, 50-51 #ffffff,#262626, 52-87 #949494,#121212, 88-99 d,#121212, +|1: 0-1 #ffffff,#626262, 2-10 #949494,#121212, 11-41 #080808,#80a0ff, 42-48 #949494,#121212, 49-49 d,#121212, 50-51 #ffffff,#262626, 52-87 #949494,#121212, 88-99 d,#121212, |2: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-46 #bdbdbd,#080808, 47-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, diff --git a/test/snapshots/themesel.golden b/test/snapshots/themesel.golden index ab642f26..69dda0fe 100644 --- a/test/snapshots/themesel.golden +++ b/test/snapshots/themesel.golden @@ -109,7 +109,7 @@ |14: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |15: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |16: 0-1 #ffffff,#262626, 2-46 #949494,#121212, 47-49 d,#121212, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, -|17: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-49 #d8c8a8,#4a3a1e, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, +|17: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-49 #080808,#80a0ff, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |18: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-16 #bdbdbd,#080808, 17-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |19: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-16 #bdbdbd,#080808, 17-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, |20: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-16 #bdbdbd,#080808, 17-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808, @@ -235,7 +235,7 @@ |16: 0-1 #ffffff,#383c54, 2-46 #000000,#eaffff, 47-49 d,#eaffff, 50-51 d,#ffffea, 52-99 #000000,#ffffea, |17: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-17 #000000,#ffffea, 18-51 d,#ffffea, 52-99 #000000,#ffffea, |18: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-16 #000000,#ffffea, 17-51 d,#ffffea, 52-99 #000000,#ffffea, -|19: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-49 #d8c8a8,#4a3a1e, 50-51 d,#ffffea, 52-99 #000000,#ffffea, +|19: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-49 #000000,#eeee9e, 50-51 d,#ffffea, 52-99 #000000,#ffffea, |20: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-16 #000000,#ffffea, 17-51 d,#ffffea, 52-99 #000000,#ffffea, |21: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-22 #000000,#ffffea, 23-51 d,#ffffea, 52-99 #000000,#ffffea, |22: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-24 #000000,#ffffea, 25-51 d,#ffffea, 52-99 #000000,#ffffea, @@ -298,7 +298,7 @@ |17: 0-0 d,#303840, 1-1 d,#161e26, 2-6 #303840,#161e26, 7-17 #e0e0e0,#161e26, 18-49 d,#161e26, 50-50 d,#303840, 51-51 d,#161e26, 52-99 #e0e0e0,#161e26, |18: 0-0 d,#1e262e, 1-1 d,#161e26, 2-6 #303840,#161e26, 7-16 #e0e0e0,#161e26, 17-49 d,#161e26, 50-50 d,#303840, 51-51 d,#161e26, 52-99 #e0e0e0,#161e26, |19: 0-0 d,#1e262e, 1-1 d,#161e26, 2-6 #303840,#161e26, 7-16 #e0e0e0,#161e26, 17-49 d,#161e26, 50-50 d,#303840, 51-51 d,#161e26, 52-99 #e0e0e0,#161e26, -|20: 0-0 d,#1e262e, 1-1 d,#161e26, 2-6 #303840,#161e26, 7-49 #d8c8a8,#4a3a1e, 50-50 d,#303840, 51-51 d,#161e26, 52-99 #e0e0e0,#161e26, +|20: 0-0 d,#1e262e, 1-1 d,#161e26, 2-6 #303840,#161e26, 7-49 #e0e0e0,#303840, 50-50 d,#303840, 51-51 d,#161e26, 52-99 #e0e0e0,#161e26, |21: 0-0 d,#1e262e, 1-1 d,#161e26, 2-6 #303840,#161e26, 7-22 #e0e0e0,#161e26, 23-49 d,#161e26, 50-50 d,#303840, 51-51 d,#161e26, 52-99 #e0e0e0,#161e26, |22: 0-0 d,#1e262e, 1-1 d,#161e26, 2-6 #303840,#161e26, 7-24 #e0e0e0,#161e26, 25-49 d,#161e26, 50-50 d,#303840, 51-51 d,#161e26, 52-99 #e0e0e0,#161e26, |23: 0-0 d,#1e262e, 1-1 d,#161e26, 2-6 #303840,#161e26, 7-25 #e0e0e0,#161e26, 26-49 d,#161e26, 50-50 d,#303840, 51-51 d,#161e26, 52-99 #e0e0e0,#161e26, @@ -359,7 +359,7 @@ |16: 0-1 #ffffff,#383c54, 2-46 #000000,#eaffff, 47-49 d,#eaffff, 50-51 d,#ffffea, 52-99 #000000,#ffffea, |17: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-17 #000000,#ffffea, 18-51 d,#ffffea, 52-99 #000000,#ffffea, |18: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-16 #000000,#ffffea, 17-51 d,#ffffea, 52-99 #000000,#ffffea, -|19: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-49 #d8c8a8,#4a3a1e, 50-51 d,#ffffea, 52-99 #000000,#ffffea, +|19: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-49 #000000,#eeee9e, 50-51 d,#ffffea, 52-99 #000000,#ffffea, |20: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-16 #000000,#ffffea, 17-51 d,#ffffea, 52-99 #000000,#ffffea, |21: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-22 #000000,#ffffea, 23-51 d,#ffffea, 52-99 #000000,#ffffea, |22: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-24 #000000,#ffffea, 25-51 d,#ffffea, 52-99 #000000,#ffffea, diff --git a/test/snapshots/ttylook.golden b/test/snapshots/ttylook.golden index f8e43731..09b54c88 100644 --- a/test/snapshots/ttylook.golden +++ b/test/snapshots/ttylook.golden @@ -33,7 +33,7 @@ |0: 0-56 #949494,#121212, 57-119 d,#121212, |1: 0-1 #ffffff,#626262, 2-37 #949494,#121212, 38-59 d,#121212, 60-61 #ffffff,#262626, 62-97 #949494,#121212, 98-119 d,#121212, |2: 0-0 d,#444444, 1-1 d,#080808, 2-59 #bdbdbd,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, -|3: 0-0 d,#444444, 1-1 d,#080808, 2-8 #d8c8a8,#4a3a1e, 9-59 #bdbdbd,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, +|3: 0-0 d,#444444, 1-1 d,#080808, 2-8 #080808,#80a0ff, 9-59 #bdbdbd,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, |4: 0-0 d,#444444, 1-1 d,#080808, 2-59 #bdbdbd,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, |5: 0-0 d,#444444, 1-1 d,#080808, 2-59 #bdbdbd,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, |6: 0-0 d,#444444, 1-1 d,#080808, 2-59 #bdbdbd,#080808, 60-60 d,#444444, 61-61 d,#080808, 62-119 #bdbdbd,#080808, diff --git a/tools/gen_themes.zig b/tools/gen_themes.zig index 4fc7ab67..23bcad75 100644 --- a/tools/gen_themes.zig +++ b/tools/gen_themes.zig @@ -55,6 +55,8 @@ const Theme = struct { name: []const u8, bg: ?Rgb, fg: ?Rgb, + sel_bg: Rgb, + sel_fg: Rgb, tag_bg: Rgb, tag_fg: Rgb, box: Rgb, @@ -268,11 +270,14 @@ fn resolve(arena: std.mem.Allocator, tomls: *const std.StringHashMapUnmanaged(To /// else ink — skipping any of them that IS the page (see /// firstNotPage) /// box_dim, -/// scroll_thumb ui.selection.bg, else ui.selection.primary.bg, else +/// scroll_thumb, +/// sel_bg ui.selection.bg, else ui.selection.primary.bg, else /// ui.selection.fg, same page-skipping, else page. No selection /// colour anywhere means the author drew no selection either, /// and a dim box the colour of the page is the honest rendering /// of that — no theme in the vendored set actually gets there +/// sel_fg ui.selection.fg, unless that IS sel_bg, else whichever of +/// ink and page the highlight is farther from /// tag_bg, /// scroll_track ui.statusline.bg, else page /// tag_fg ui.statusline.fg, else ink @@ -295,12 +300,38 @@ fn helixTheme(arena: std.mem.Allocator, stem: []const u8, h: Helix, out: *std.Ar // foreground for it (peachpuff, base16_terminal) is naming the colour the // reverse will land in the background. const sel = h.firstNotPage(page, &.{ .{ "ui.selection", .bg }, .{ "ui.selection.primary", .bg }, .{ "ui.selection", .fg } }) orelse page; + // ...and the same colour is what pardes paints a SELECTION with, which needs + // an ink over it as well. Most themes name none — helix tints the cell and + // lets the syntax colour ride — so the stand-in is whichever of the theme's + // own two extremes the highlight is farther from, in the Rec.601-ish weights + // the move box's glyph is picked with, left unscaled because these three are + // only ever compared with each other. Not a fixed threshold like that one: + // a quarter of the ring is light, and there "the bright end" is the page. + // + // ponytail: two of the theme's own colours, whichever is farther. A theme + // that styles neither ui.text nor a selection foreground on a LIGHT page + // has no dark colour among the two — its ink stand-in is the default + // palette's index 7, a grey meant for dark terminals — and comes out pale + // on pale. One of the 228 (iceberg_light, which inherits its selection from + // the dark variant it repaints). Upgrade path is the move box's other half: + // fall back to flat black or white when neither extreme separates. + const sel_lum = @as(i32, sel[0]) * 3 + @as(i32, sel[1]) * 6 + sel[2]; + const ink_lum = @as(i32, ink[0]) * 3 + @as(i32, ink[1]) * 6 + ink[2]; + const page_lum = @as(i32, page[0]) * 3 + @as(i32, page[1]) * 6 + page[2]; + const sel_far = if (@abs(sel_lum - ink_lum) >= @abs(sel_lum - page_lum)) ink else page; + // A theme that DID name a selection foreground meant it — 16 of the + // vendored ones do — except when it is the colour taken for the background + // one line up, which is the reverse-video case again: those two would paint + // the highlight in one colour on itself. + const named_ink = h.get("ui.selection", .fg); try out.append(arena, .{ .name = try slug(arena, stem), // `palette` stays null: helix leaves the colors a PROGRAM emits alone, // and so do we. .bg = bg, .fg = fg, + .sel_bg = sel, + .sel_fg = if (named_ink) |c| (if (std.mem.eql(u8, &c, &sel)) sel_far else c) else sel_far, .tag_bg = h.get("ui.statusline", .bg) orelse page, .tag_fg = h.get("ui.statusline", .fg) orelse ink, .box = box, @@ -508,6 +539,16 @@ fn readZed(arena: std.mem.Allocator, gpa: std.mem.Allocator, path: []const u8, t .name = try std.fmt.allocPrint(arena, "{s}_zed", .{try slug(arena, (v.get("name") orelse std.process.fatal("{s}: a variant has no `name`", .{path})).string)}), .bg = z.need("editor.background"), .fg = z.need("editor.foreground"), + // zed's TEXT selection is `players[0].selection`, and it is a 24% + // alpha over the page — the colour on screen is the composite, not + // the value. pardes paints opaque cells and `hex` drops alpha, so + // taking it raw would put a full-strength accent behind the text. + // `element.selected` is the same theme's own opaque "this is + // selected" fill, which is the question actually being asked. The + // ink then stays the editor's own text colour, because that fill is + // always a step off the background and never off the text. + .sel_bg = z.need("element.selected"), + .sel_fg = z.need("editor.foreground"), .tag_bg = z.need("status_bar.background"), .tag_fg = z.need("text.muted"), // zed names its accent, so the move box does not have to be guessed |
