mirror of
https://github.com/sst/opencode.git
synced 2025-08-24 15:04:10 +00:00
45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
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
|
|
}
|