mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-17 04:31:55 +00:00
fix(tui): tighten SGR fragment matching
This commit is contained in:
parent
71b685aee0
commit
ded011c5a5
4 changed files with 11 additions and 5 deletions
|
|
@ -127,4 +127,10 @@ describe('fragmented SGR mouse recovery', () => {
|
|||
|
||||
expect(key).toMatchObject({ kind: 'key', sequence: 'see 1;2;3M for details' })
|
||||
})
|
||||
|
||||
it('does not match prefixless fragments inside longer digit runs', () => {
|
||||
const [[key]] = parseMultipleKeypresses(INITIAL_STATE, '1234;56;78M9;10;11M')
|
||||
|
||||
expect(key).toMatchObject({ kind: 'key', sequence: '1234;56;78M9;10;11M' })
|
||||
})
|
||||
})
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ const XTVERSION_RE = /^\x1bP>\|(.*?)(?:\x07|\x1b\\)$/s
|
|||
// Button 32=left-drag (0x20 | motion-bit). Plain 0/1/2 = left/mid/right click.
|
||||
// eslint-disable-next-line no-control-regex
|
||||
const SGR_MOUSE_RE = /^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/
|
||||
const SGR_MOUSE_FRAGMENT_RE = /(?:\[<|<)?(?:[0-9]|[1-9][0-9]|1\d{2}|2[0-4]\d|25[0-5]);\d+;\d+[Mm]/g
|
||||
const SGR_MOUSE_FRAGMENT_RE = /(?<!\d)(?:\[<|<)?(?:[0-9]|[1-9][0-9]|1\d{2}|2[0-4]\d|25[0-5]);\d+;\d+[Mm]/g
|
||||
|
||||
function createPasteKey(content: string): ParsedKey {
|
||||
return {
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ import { resetTerminalModes, TERMINAL_MODE_RESET } from '../lib/terminalModes.js
|
|||
|
||||
describe('terminal mode reset', () => {
|
||||
it('includes common sticky input modes', () => {
|
||||
expect(TERMINAL_MODE_RESET).toContain("\x1b[0'z")
|
||||
expect(TERMINAL_MODE_RESET).toContain("\x1b[0'{")
|
||||
expect(TERMINAL_MODE_RESET).toContain('\x1b[0\'z')
|
||||
expect(TERMINAL_MODE_RESET).toContain('\x1b[0\'{')
|
||||
expect(TERMINAL_MODE_RESET).toContain('\x1b[?2029l')
|
||||
expect(TERMINAL_MODE_RESET).toContain('\x1b[?1016l')
|
||||
expect(TERMINAL_MODE_RESET).toContain('\x1b[?1015l')
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import { writeSync } from 'node:fs'
|
||||
|
||||
export const TERMINAL_MODE_RESET =
|
||||
"\x1b[0'z" + // DEC locator reporting
|
||||
"\x1b[0'{" + // selectable locator events
|
||||
'\x1b[0\'z' + // DEC locator reporting
|
||||
'\x1b[0\'{' + // selectable locator events
|
||||
'\x1b[?2029l' + // passive mouse
|
||||
'\x1b[?1016l' + // SGR-pixels mouse
|
||||
'\x1b[?1015l' + // urxvt decimal mouse
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue