diff options
| author | Gabriel Schneider <[email protected]> | 2026-07-26 18:36:08 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-08-01 15:02:07 -0300 |
| commit | e381c96a08f08e03a340a24acb3fe5fe1fca51be (patch) | |
| tree | db0ef0cc2652d2797b9e2f73709db601816436d1 /test/hxcases | |
| parent | a4a2a96d023a5977ae7a7d07c7ee9e4fe38e9c60 (diff) | |
| download | pardes-e381c96a08f08e03a340a24acb3fe5fe1fca51be.tar.gz pardes-e381c96a08f08e03a340a24acb3fe5fe1fca51be.zip | |
adding better search to tty mode
Diffstat (limited to 'test/hxcases')
| -rw-r--r-- | test/hxcases/parity-waivers.jsonl | 10 | ||||
| -rw-r--r-- | test/hxcases/parity.jsonl | 80 |
2 files changed, 90 insertions, 0 deletions
diff --git a/test/hxcases/parity-waivers.jsonl b/test/hxcases/parity-waivers.jsonl new file mode 100644 index 00000000..d48f4670 --- /dev/null +++ b/test/hxcases/parity-waivers.jsonl @@ -0,0 +1,10 @@ +{"name":"ctrl-b-page","reason":"not a parity bug: Ctrl-b IS pardes's tty toggle (Options.tty_toggle = 'b'), so on a shell pane it enters raw tty mode instead of paging the view. Deliberate binding, same class as the alt-c-window-op waiver in the helix suite; Ctrl-u/Ctrl-d and PageUp cover half/full page scrolling on terminals."} +{"name":"ctrl-f-page","reason":"viewport geometry: a file pane's view scrolls anywhere inside its line count, a terminal's is the vt's and cannot move below the live grid bottom, so a full-page move clamps and the cursor snaps into a different scrolloff band. The edit model is not involved - no text differs, only where the view landed."} +{"name":"ctrl-f-small","reason":"viewport geometry: same as ctrl-f-page with a document shorter than the pane, where the terminal's view cannot scroll at all and the cursor snaps to the top scrolloff margin instead of the last line."} +{"name":"pgdn-basic","reason":"viewport geometry: PageDown is the same view scroll as Ctrl-f, and clamps at the terminal's live grid bottom. Text identical, view position differs."} +{"name":"z-pgdn-alias","reason":"viewport geometry: z-prefixed PageDown aliases the Ctrl-f view scroll, so it clamps at the terminal's live grid bottom exactly like pgdn-basic."} +{"name":"ins-pgdn","reason":"viewport geometry: insert-mode PageDown is bound to the same view scroll as normal mode, so it clamps at the terminal's live grid bottom. Text identical, view position differs."} +{"name":"zj-snaps-cursor","reason":"viewport geometry: zj scrolls the view one row and snaps the cursor back into the scrolloff band; on a terminal whose view is already at the vt's bottom the scroll is a no-op, so the cursor snaps from a different band."} +{"name":"zj-noop-in-band","reason":"viewport geometry: same as zj-snaps-cursor - the terminal's view cannot scroll past the live grid bottom, so the cursor's band differs by one row."} +{"name":"zk-bottom-snap","reason":"viewport geometry: zk scrolls the view up one row and snaps the cursor; the terminal's starting view offset differs because it could not scroll as far down in the first place."} +{"name":"unindent-tab","reason":"the case text is not representable in a pty pane: a literal TAB fed through the terminal is expanded to the next tab stop by the emulator, so the shell rows hold spaces and never the tab the file pane unindents. Not an editing divergence - unindent-basic, unindent-partial, unindent-realign and unindent-cursor all match; only a byte a terminal cannot hold verbatim."} diff --git a/test/hxcases/parity.jsonl b/test/hxcases/parity.jsonl new file mode 100644 index 00000000..ee09dac1 --- /dev/null +++ b/test/hxcases/parity.jsonl @@ -0,0 +1,80 @@ +{"name": "type-midline", "text": "abc def\n", "keys": "lliXY<esc>"} +{"name": "type-linestart", "text": "abc\ndef\n", "keys": "iZZ<esc>"} +{"name": "type-lineend", "text": "abc\ndef\n", "keys": "AZZ<esc>"} +{"name": "type-second-line", "text": "abc\ndef\n", "keys": "jlliQ<esc>"} +{"name": "type-append", "text": "abc\n", "keys": "aX<esc>"} +{"name": "type-insert-at-first-nonws", "text": " abc\n", "keys": "glIX<esc>"} +{"name": "enter-splits-line", "text": "abcdef\n", "keys": "lli<ret><esc>"} +{"name": "enter-at-line-end", "text": "abc\ndef\n", "keys": "A<ret><esc>"} +{"name": "enter-at-line-start", "text": "abc\ndef\n", "keys": "i<ret><esc>"} +{"name": "enter-then-type", "text": "abcdef\n", "keys": "lli<ret>XY<esc>"} +{"name": "enter-twice", "text": "abcdef\n", "keys": "lli<ret><ret><esc>"} +{"name": "enter-last-line", "text": "abc\ndef\n", "keys": "jA<ret>ZZ<esc>"} +{"name": "enter-keeps-indent", "text": " abc\n", "keys": "A<ret>X<esc>"} +{"name": "enter-mid-indented", "text": " abcdef\n", "keys": "6li<ret><esc>"} +{"name": "multiline-insert", "text": "abc\n", "keys": "llia<ret>b<ret>c<esc>"} +{"name": "multiline-insert-midline", "text": "abcdef\n", "keys": "lliX<ret>Y<ret>Z<esc>"} +{"name": "open-below", "text": "abc\ndef\n", "keys": "oX<esc>"} +{"name": "open-below-last", "text": "abc\ndef\n", "keys": "joX<esc>"} +{"name": "open-above", "text": "abc\ndef\n", "keys": "OX<esc>"} +{"name": "open-above-second", "text": "abc\ndef\n", "keys": "jOX<esc>"} +{"name": "open-below-indent", "text": " abc\n", "keys": "oX<esc>"} +{"name": "open-below-count", "text": "abc\ndef\n", "keys": "2oX<esc>"} +{"name": "open-above-count", "text": "abc\ndef\n", "keys": "j2OX<esc>"} +{"name": "bs-joins-lines", "text": "abc\ndef\n", "keys": "ji<backspace><esc>"} +{"name": "bs-joins-then-types", "text": "abc\ndef\n", "keys": "ji<backspace>X<esc>"} +{"name": "bs-midline", "text": "abcdef\n", "keys": "lli<backspace><esc>"} +{"name": "bs-joins-twice", "text": "ab\ncd\nef\n", "keys": "jji<backspace><backspace><esc>"} +{"name": "bs-at-doc-start", "text": "abc\n", "keys": "i<backspace><esc>"} +{"name": "ctrl-h-joins", "text": "abc\ndef\n", "keys": "ji<C-h><esc>"} +{"name": "del-at-line-end", "text": "abc\ndef\n", "keys": "A<del><esc>"} +{"name": "del-midline", "text": "abcdef\n", "keys": "lli<del><esc>"} +{"name": "del-joins-twice", "text": "ab\ncd\nef\n", "keys": "A<del><del><esc>"} +{"name": "enter-then-bs", "text": "abcdef\n", "keys": "lli<ret><backspace><esc>"} +{"name": "tab-insert", "text": "abc\n", "keys": "i<tab><esc>"} +{"name": "tab-midline", "text": "abcdef\n", "keys": "lli<tab><esc>"} +{"name": "ctrl-w-kills-word", "text": "alpha beta\n", "keys": "A<C-w><esc>"} +{"name": "ctrl-w-crosses-newline", "text": "alpha\nbeta\n", "keys": "ji<C-w><esc>"} +{"name": "ctrl-u-kills-to-start", "text": "alpha beta\n", "keys": "A<C-u><esc>"} +{"name": "ctrl-k-kills-to-end", "text": "alpha beta\n", "keys": "lli<C-k><esc>"} +{"name": "insert-home-end", "text": "abc def\n", "keys": "lli<end>X<home>Y<esc>"} +{"name": "insert-arrows", "text": "abc\ndef\n", "keys": "i<down><right>X<esc>"} +{"name": "d-char", "text": "abc\n", "keys": "d"} +{"name": "d-line-selection", "text": "aa\nbb\ncc\n", "keys": "jxd"} +{"name": "d-across-lines", "text": "abc\ndef\nghi\n", "keys": "lvjd"} +{"name": "d-across-two-lines", "text": "abc\ndef\nghi\n", "keys": "lv2jd"} +{"name": "d-whole-first-line", "text": "abc\ndef\n", "keys": "xd"} +{"name": "d-two-lines", "text": "aa\nbb\ncc\ndd\n", "keys": "2xd"} +{"name": "c-across-lines", "text": "abc\ndef\nghi\n", "keys": "lvjcZ<esc>"} +{"name": "c-line-selection", "text": "aa\nbb\ncc\n", "keys": "jxcZ<esc>"} +{"name": "c-char", "text": "abc\n", "keys": "cZ<esc>"} +{"name": "c-then-enter", "text": "abc\ndef\n", "keys": "lvjcX<ret>Y<esc>"} +{"name": "d-then-o", "text": "abc\ndef\nghi\n", "keys": "jxdoZ<esc>"} +{"name": "d-then-type", "text": "abcdef\n", "keys": "lvldiZ<esc>"} +{"name": "r-replace-char", "text": "abc\n", "keys": "lrZ"} +{"name": "r-replace-selection", "text": "abc def\n", "keys": "vlrZ"} +{"name": "tilde-case", "text": "abc\n", "keys": "vll~"} +{"name": "yank-paste-charwise", "text": "abc def\n", "keys": "vlyp"} +{"name": "yank-paste-linewise", "text": "aa\nbb\n", "keys": "xyp"} +{"name": "undo-after-typing", "text": "abc\n", "keys": "liXY<esc>u"} +{"name": "undo-after-enter", "text": "abcdef\n", "keys": "lli<ret><esc>u"} +{"name": "undo-redo-after-enter", "text": "abcdef\n", "keys": "lli<ret><esc>uU"} +{"name": "undo-after-open", "text": "abc\n", "keys": "oX<esc>u"} +{"name": "undo-after-delete", "text": "abc\ndef\n", "keys": "xdu"} +{"name": "type-then-motion", "text": "abc\ndef\n", "keys": "liX<esc>jw"} +{"name": "enter-then-motion", "text": "abcdef\nghi\n", "keys": "lli<ret><esc>ge"} +{"name": "enter-then-goto-last", "text": "ab\ncd\n", "keys": "A<ret>X<esc>ge"} +{"name": "open-then-goto-last", "text": "ab\ncd\n", "keys": "ozz<esc>ge"} +{"name": "md-second-line", "text": "aa\nb(cd)e\n", "keys": "j3lmd("} +{"name": "md-third-line", "text": "aa\nbb\nx(yz)w\n", "keys": "2j3lmd("} +{"name": "mr-second-line", "text": "aa\nb(cd)e\n", "keys": "j3lmr(["} +{"name": "mr-quote-third-line", "text": "aa\nbb\nc 'de' f\n", "keys": "2j4lmr'\""} +{"name": "ms-second-line", "text": "aa\nbcd\n", "keys": "jvlms("} +{"name": "indent-second-line", "text": "aa\nbb\ncc\n", "keys": "j<gt>"} +{"name": "indent-span-later-lines", "text": "aa\nbb\ncc\ndd\n", "keys": "jx2x<gt>"} +{"name": "unindent-second-line", "text": "aa\n bb\n", "keys": "j<lt>"} +{"name": "J-second-line", "text": "aa\nbb\ncc\n", "keys": "jJ"} +{"name": "J-sel-later-lines", "text": "aa\nbb\ncc\ndd\n", "keys": "jxxJ"} +{"name": "d-on-nl-second-line", "text": "aa\nbb\ncc\n", "keys": "jlld"} +{"name": "adjust-number-second-line", "text": "aa\nx 41 y\n", "keys": "jw<C-a>"} +{"name": "R-replace-second-line", "text": "aa\nbb\ncc\n", "keys": "vlyjvlR"} |
