From 294d0e7ee3476f4425c3d21fbaf82dfce3aba017 Mon Sep 17 00:00:00 2001 From: adamdotdevin <2363879+adamdottv@users.noreply.github.com> Date: Thu, 10 Jul 2025 15:49:49 -0500 Subject: fix(tui): mouse wheel ansi codes leaking into editor --- packages/tui/input/input.go | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 packages/tui/input/input.go (limited to 'packages/tui/input/input.go') diff --git a/packages/tui/input/input.go b/packages/tui/input/input.go new file mode 100644 index 000000000..da5e4f0be --- /dev/null +++ b/packages/tui/input/input.go @@ -0,0 +1,45 @@ +package input + +import ( + "fmt" + "strings" +) + +// Event represents a terminal event. +type Event any + +// UnknownEvent represents an unknown event. +type UnknownEvent string + +// String returns a string representation of the unknown event. +func (e UnknownEvent) String() string { + return fmt.Sprintf("%q", string(e)) +} + +// MultiEvent represents multiple messages event. +type MultiEvent []Event + +// String returns a string representation of the multiple messages event. +func (e MultiEvent) String() string { + var sb strings.Builder + for _, ev := range e { + sb.WriteString(fmt.Sprintf("%v\n", ev)) + } + return sb.String() +} + +// WindowSizeEvent is used to report the terminal size. Note that Windows does +// not have support for reporting resizes via SIGWINCH signals and relies on +// the Windows Console API to report window size changes. +type WindowSizeEvent struct { + Width int + Height int +} + +// WindowOpEvent is a window operation (XTWINOPS) report event. This is used to +// report various window operations such as reporting the window size or cell +// size. +type WindowOpEvent struct { + Op int + Args []int +} -- cgit v1.2.3