From 70bde600793ea70bd68832018a154671c6bf1512 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Thu, 20 Aug 2026 17:10:22 -0300 Subject: animation: six character-motion panel transitions, composed in the core so backends agree --- test/macos_e2e.swift | 7 ++ test/snapshots/builtins.golden | 188 ++++++++++++++++++++--------------------- test/snapshots/builtins.snap | 6 +- test/snapshots/leader.golden | 36 ++++---- test/snapshots/leader.snap | 16 ++-- test/snapshots/ttyhelp.golden | 68 +++++++-------- 6 files changed, 165 insertions(+), 156 deletions(-) (limited to 'test') diff --git a/test/macos_e2e.swift b/test/macos_e2e.swift index 791dd945..f1bad492 100644 --- a/test/macos_e2e.swift +++ b/test/macos_e2e.swift @@ -781,6 +781,13 @@ private final class Driver: PardesViewDelegate { case UInt8(PARDES_PANEL_ZOOM): "zoom" case UInt8(PARDES_PANEL_DISSOLVE): "dissolve" case UInt8(PARDES_PANEL_ASCII): "ascii" + case UInt8(PARDES_PANEL_VERTICAL): "vertical" + case UInt8(PARDES_PANEL_EDGES): "edges" + case UInt8(PARDES_PANEL_FALL): "fall" + case UInt8(PARDES_PANEL_WAVE): "wave" + case UInt8(PARDES_PANEL_CURTAIN): "curtain" + case UInt8(PARDES_PANEL_SCRAMBLE): "scramble" + case UInt8(PARDES_PANEL_TYPEWRITER): "typewriter" default: "off" } let got = "\(phase):\(effect)" diff --git a/test/snapshots/builtins.golden b/test/snapshots/builtins.golden index 5751b5b1..13ed8313 100644 --- a/test/snapshots/builtins.golden +++ b/test/snapshots/builtins.golden @@ -101,25 +101,25 @@ | 7 SPC R ClipReplace | 8 SPC Y ClipYankMain | 9 SPC a a PanelAscii -| 10 SPC a d PanelDissolve -| 11 SPC a s PanelSlide -| 12 SPC a v PanelVertical -| 13 SPC a z PanelZoom -| 14 SPC c d Delcol -| 15 SPC c n Newcol topbar -| 16 SPC d Del -| 17 SPC f c Config -| 18 SPC f f Find topbar -| 19 SPC f g Grep topbar -| 20 SPC f n New topbar -| 21 SPC f s Save -| 22 SPC h t Tutor topbar -| 23 SPC j i Forward C-i -| 24 SPC j j Last -| 25 SPC j l Jumplist -| 26 SPC j o Back C-o -| 27 SPC k Kill topbar -| 28 SPC l D WsDiagnostics +| 10 SPC a c PanelCurtain +| 11 SPC a d PanelDissolve +| 12 SPC a e PanelEdges +| 13 SPC a f PanelFall +| 14 SPC a r PanelScramble +| 15 SPC a s PanelSlide +| 16 SPC a t PanelType +| 17 SPC a v PanelVertical +| 18 SPC a w PanelWave +| 19 SPC a z PanelZoom +| 20 SPC c d Delcol +| 21 SPC c n Newcol topbar +| 22 SPC d Del +| 23 SPC f c Config +| 24 SPC f f Find topbar +| 25 SPC f g Grep topbar +| 26 SPC f n New topbar +| 27 SPC f s Save +| 28 SPC h t Tutor topbar == snap index-tail grid=120x60 cursor=7,58 |New Newcol Find Grep Help Tutor Dump NextColor Debug Kill | /tmp/pardes-snap/builtins/cwd/notes.txt Save New Del @@ -153,34 +153,34 @@ | | | /tmp/pardes-snap/builtins/cwd/+Help New Del -| 40 SPC s r Restore -| 41 SPC t a Ascii -| 42 SPC t b Tagbottom -| 43 SPC t c Colors -| 44 SPC t d Debug topbar -| 45 SPC t i PdfTint -| 46 SPC t l Palette -| 47 SPC t n NextColor topbar -| 48 SPC t p Petscii -| 49 SPC t s PdfSections -| 50 SPC t t ThemeSel -| 51 SPC t w Wrap -| 52 SPC t z PdfFit -| 53 SPC w h Left C-w h, C-w left -| 54 SPC w j Down C-w j, C-w down -| 55 SPC w k Up C-w k, C-w up -| 56 SPC w l Right C-w l, C-w right -| 57 SPC y ClipYank -| 58 Look enter, right-click -| 59 Exec tab, middle-click -| 60 Msg -| 61 ThemeFile -| 62 DumpThemes -| 63 Filter -| 64 EffectCode -| 65 Theme -| 66 Shell -| 67 +| 46 SPC s r Restore +| 47 SPC t a Ascii +| 48 SPC t b Tagbottom +| 49 SPC t c Colors +| 50 SPC t d Debug topbar +| 51 SPC t i PdfTint +| 52 SPC t l Palette +| 53 SPC t n NextColor topbar +| 54 SPC t p Petscii +| 55 SPC t s PdfSections +| 56 SPC t t ThemeSel +| 57 SPC t w Wrap +| 58 SPC t z PdfFit +| 59 SPC w h Left C-w h, C-w left +| 60 SPC w j Down C-w j, C-w down +| 61 SPC w k Up C-w k, C-w up +| 62 SPC w l Right C-w l, C-w right +| 63 SPC y ClipYank +| 64 Look enter, right-click +| 65 Exec tab, middle-click +| 66 Msg +| 67 ThemeFile +| 68 DumpThemes +| 69 Filter +| 70 EffectCode +| 71 Theme +| 72 Shell +| 73 == snap not-a-picker grid=120x60 cursor=7,58 |New Newcol Find Grep Help Tutor Dump NextColor Debug Kill | /tmp/pardes-snap/builtins/cwd/notes.txt Save New Del @@ -214,34 +214,34 @@ | | | /tmp/pardes-snap/builtins/cwd/+Help New Del -| 40 SPC s r Restore -| 41 SPC t a Ascii -| 42 SPC t b Tagbottom -| 43 SPC t c Colors -| 44 SPC t d Debug topbar -| 45 SPC t i PdfTint -| 46 SPC t l Palette -| 47 SPC t n NextColor topbar -| 48 SPC t p Petscii -| 49 SPC t s PdfSections -| 50 SPC t t ThemeSel -| 51 SPC t w Wrap -| 52 SPC t z PdfFit -| 53 SPC w h Left C-w h, C-w left -| 54 SPC w j Down C-w j, C-w down -| 55 SPC w k Up C-w k, C-w up -| 56 SPC w l Right C-w l, C-w right -| 57 SPC y ClipYank -| 58 Look enter, right-click -| 59 Exec tab, middle-click -| 60 Msg -| 61 ThemeFile -| 62 DumpThemes -| 63 Filter -| 64 EffectCode -| 65 Theme -| 66 Shell -| 67 +| 46 SPC s r Restore +| 47 SPC t a Ascii +| 48 SPC t b Tagbottom +| 49 SPC t c Colors +| 50 SPC t d Debug topbar +| 51 SPC t i PdfTint +| 52 SPC t l Palette +| 53 SPC t n NextColor topbar +| 54 SPC t p Petscii +| 55 SPC t s PdfSections +| 56 SPC t t ThemeSel +| 57 SPC t w Wrap +| 58 SPC t z PdfFit +| 59 SPC w h Left C-w h, C-w left +| 60 SPC w j Down C-w j, C-w down +| 61 SPC w k Up C-w k, C-w up +| 62 SPC w l Right C-w l, C-w right +| 63 SPC y ClipYank +| 64 Look enter, right-click +| 65 Exec tab, middle-click +| 66 Msg +| 67 ThemeFile +| 68 DumpThemes +| 69 Filter +| 70 EffectCode +| 71 Theme +| 72 Shell +| 73 == snap window-group grid=120x60 cursor=7,32 |New Newcol Find Grep Help Tutor Dump NextColor Debug Kill | /tmp/pardes-snap/builtins/cwd/notes.txt Save New Del @@ -345,22 +345,22 @@ | 7 SPC R ClipReplace | 8 SPC Y ClipYankMain | 9 SPC a a PanelAscii -| 10 SPC a d PanelDissolve -| 11 SPC a s PanelSlide -| 12 SPC a v PanelVertical -| 13 SPC a z PanelZoom -| 14 SPC c d Delcol -| 15 SPC c n Newcol topbar -| 16 SPC d Del -| 17 SPC f c Config -| 18 SPC f f Find topbar -| 19 SPC f g Grep topbar -| 20 SPC f n New topbar -| 21 SPC f s Save -| 22 SPC h t Tutor topbar -| 23 SPC j i Forward C-i -| 24 SPC j j Last -| 25 SPC j l Jumplist -| 26 SPC j o Back C-o -| 27 SPC k Kill topbar -| 28 SPC l D WsDiagnostics +| 10 SPC a c PanelCurtain +| 11 SPC a d PanelDissolve +| 12 SPC a e PanelEdges +| 13 SPC a f PanelFall +| 14 SPC a r PanelScramble +| 15 SPC a s PanelSlide +| 16 SPC a t PanelType +| 17 SPC a v PanelVertical +| 18 SPC a w PanelWave +| 19 SPC a z PanelZoom +| 20 SPC c d Delcol +| 21 SPC c n Newcol topbar +| 22 SPC d Del +| 23 SPC f c Config +| 24 SPC f f Find topbar +| 25 SPC f g Grep topbar +| 26 SPC f n New topbar +| 27 SPC f s Save +| 28 SPC h t Tutor topbar diff --git a/test/snapshots/builtins.snap b/test/snapshots/builtins.snap index 3ec6b9d3..55f858ff 100644 --- a/test/snapshots/builtins.snap +++ b/test/snapshots/builtins.snap @@ -58,12 +58,12 @@ snap window-group # a SCREEN coordinate, so every row inserted above `SPC h t` in the listing # moves Tutor down one and this number with it. The five clipboard builtins # put three there — SPC P, SPC R and SPC Y, uppercase sorting ahead of the -# lowercase `SPC h`; the five panel effects now follow them as well. +# lowercase `SPC h`; the eleven panel effects now follow them as well. key space ? wait 10000 SPC c n stable 700 15000 -press middle 20 54 -release middle 20 54 +press middle 20 60 +release middle 20 60 wait 10000 PARDES TUTOR stable 700 15000 snap tutor-from-index diff --git a/test/snapshots/leader.golden b/test/snapshots/leader.golden index bb6ee8f1..4ef7c4a6 100644 --- a/test/snapshots/leader.golden +++ b/test/snapshots/leader.golden @@ -194,15 +194,15 @@ | 7 SPC R ClipReplace | 8 SPC Y ClipYankMain | 9 SPC a a PanelAscii -| 10 SPC a d PanelDissolve -| 11 SPC a s PanelSlide -| 12 SPC a v PanelVertical -| 13 SPC a z PanelZoom -| 14 SPC c d Delcol -| 15 SPC c n Newcol topbar -| 16 SPC d Del -| 17 SPC f c Config -| 18 SPC f f Find topbar +| 10 SPC a c PanelCurtain +| 11 SPC a d PanelDissolve +| 12 SPC a e PanelEdges +| 13 SPC a f PanelFall +| 14 SPC a r PanelScramble +| 15 SPC a s PanelSlide +| 16 SPC a t PanelType +| 17 SPC a v PanelVertical +| 18 SPC a w PanelWave == snap help-group grid=100x40 cursor=7,22 |New Newcol Find Grep Help Tutor Dump NextColor Debug Kill | /tmp/pardes-snap/leader/cwd/cmds.txt Save New Del @@ -358,15 +358,15 @@ | 7 SPC R ClipReplace | 8 SPC Y ClipYankMain | 9 SPC a a PanelAscii -| 10 SPC a d PanelDissolve -| 11 SPC a s PanelSlide -| 12 SPC a v PanelVertical -| 13 SPC a z PanelZoom -| 14 SPC c d Delcol -| 15 SPC c n Newcol topbar -| 16 SPC d Del -| 17 SPC f c Config -| 18 SPC f f Find topbar +| 10 SPC a c PanelCurtain +| 11 SPC a d PanelDissolve +| 12 SPC a e PanelEdges +| 13 SPC a f PanelFall +| 14 SPC a r PanelScramble +| 15 SPC a s PanelSlide +| 16 SPC a t PanelType +| 17 SPC a v PanelVertical +| 18 SPC a w PanelWave == snap help-toggles grid=100x40 cursor=7,22 |New Newcol Find Grep Help Tutor Dump NextColor Debug Kill | /tmp/pardes-snap/leader/cwd/cmds.txt Save New Del diff --git a/test/snapshots/leader.snap b/test/snapshots/leader.snap index 8c22717d..f6eae3ea 100644 --- a/test/snapshots/leader.snap +++ b/test/snapshots/leader.snap @@ -34,10 +34,11 @@ snap unmapped # lookup, so a name works anywhere text lives. Every builtin, with its keys. press middle 9 3 release middle 9 3 -# New builtins can push the h-group below this short pane; Config is an early -# full-index row and proves the same Help buffer opened without tying the test -# to the registry's current length. -wait 10000 SPC f c +# New builtins can push most of the index below this short pane, so this waits +# on a row ABOVE the growth: the clipboard builtins sort first (uppercase paths) +# and only the whole-index listing shows them, which is exactly the fact under +# test — the word `Help` opened the full registry, not a group. +wait 10000 ClipPasteBefore stable 700 15000 snap help-word # `SPC h ?`: only the `h` group, rewritten into the SAME +Help buffer @@ -62,11 +63,12 @@ key d stable 700 15000 snap deleted # `SPC ?` at the root lists everything again. Waits on an EARLY row: the full -# listing outgrew this pane when the language group landed (Restore, which this -# used to watch for, is now row 21 of 33 and falls off the bottom). +# listing outgrew this pane when the language group landed, and the panel +# effects pushed `SPC c n` off the bottom too. The clipboard paths sort first +# and appear only in the whole-index listing, so they stay a valid witness. key space key ? -wait 10000 SPC c n +wait 10000 ClipPasteBefore stable 700 15000 snap help-all # `SPC t ?`: the TTY toggle group, including the image-renderer and PDF diff --git a/test/snapshots/ttyhelp.golden b/test/snapshots/ttyhelp.golden index 20c67685..27b16dbf 100644 --- a/test/snapshots/ttyhelp.golden +++ b/test/snapshots/ttyhelp.golden @@ -43,23 +43,23 @@ | 7 SPC R ClipReplace | 8 SPC Y ClipYankMain | 9 SPC a a PanelAscii -| 10 SPC a d PanelDissolve -| 11 SPC a s PanelSlide -| 12 SPC a v PanelVertical -| 13 SPC a z PanelZoom -| 14 SPC c d Delcol -| 15 SPC c n Newcol topbar -| 16 SPC d Del -| 17 SPC f c Config -| 18 SPC f f Find topbar -| 19 SPC f g Grep topbar -| 20 SPC f n New topbar -| 21 SPC f s Save -| 22 SPC h t Tutor topbar -| 23 SPC j i Forward C-i -| 24 SPC j j Last -| 25 SPC j l Jumplist -| 26 SPC j o Back C-o +| 10 SPC a c PanelCurtain +| 11 SPC a d PanelDissolve +| 12 SPC a e PanelEdges +| 13 SPC a f PanelFall +| 14 SPC a r PanelScramble +| 15 SPC a s PanelSlide +| 16 SPC a t PanelType +| 17 SPC a v PanelVertical +| 18 SPC a w PanelWave +| 19 SPC a z PanelZoom +| 20 SPC c d Delcol +| 21 SPC c n Newcol topbar +| 22 SPC d Del +| 23 SPC f c Config +| 24 SPC f f Find topbar +| 25 SPC f g Grep topbar +| 26 SPC f n New topbar == snap leaderworks grid=100x30 cursor=7,4 |New Newcol Find Grep Help Tutor Dump NextColor Debug Kill |$ /tmp/pardes-snap/ttyhelp/cwd New Del Filter @@ -74,20 +74,20 @@ | 7 SPC R ClipReplace | 8 SPC Y ClipYankMain | 9 SPC a a PanelAscii -| 10 SPC a d PanelDissolve -| 11 SPC a s PanelSlide -| 12 SPC a v PanelVertical -| 13 SPC a z PanelZoom -| 14 SPC c d Delcol -| 15 SPC c n Newcol topbar -| 16 SPC d Del -| 17 SPC f c Config -| 18 SPC f f Find topbar -| 19 SPC f g Grep topbar -| 20 SPC f n New topbar -| 21 SPC f s Save -| 22 SPC h t Tutor topbar -| 23 SPC j i Forward C-i -| 24 SPC j j Last -| 25 SPC j l Jumplist -| 26 SPC j o Back C-o +| 10 SPC a c PanelCurtain +| 11 SPC a d PanelDissolve +| 12 SPC a e PanelEdges +| 13 SPC a f PanelFall +| 14 SPC a r PanelScramble +| 15 SPC a s PanelSlide +| 16 SPC a t PanelType +| 17 SPC a v PanelVertical +| 18 SPC a w PanelWave +| 19 SPC a z PanelZoom +| 20 SPC c d Delcol +| 21 SPC c n Newcol topbar +| 22 SPC d Del +| 23 SPC f c Config +| 24 SPC f f Find topbar +| 25 SPC f g Grep topbar +| 26 SPC f n New topbar -- cgit v1.3