mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-15 00:06:09 +03:00
115 lines
2.7 KiB
Zig
115 lines
2.7 KiB
Zig
/// C0 (7-bit) control characters from ANSI.
|
|
///
|
|
/// This is not complete, control characters are only added to this
|
|
/// as the terminal emulator handles them.
|
|
pub const C0 = enum(u7) {
|
|
/// Null
|
|
NUL = 0x00,
|
|
/// Start of heading
|
|
SOH = 0x01,
|
|
/// Start of text
|
|
STX = 0x02,
|
|
/// Enquiry
|
|
ENQ = 0x05,
|
|
/// Bell
|
|
BEL = 0x07,
|
|
/// Backspace
|
|
BS = 0x08,
|
|
// Horizontal tab
|
|
HT = 0x09,
|
|
/// Line feed
|
|
LF = 0x0A,
|
|
/// Vertical Tab
|
|
VT = 0x0B,
|
|
/// Form feed
|
|
FF = 0x0C,
|
|
/// Carriage return
|
|
CR = 0x0D,
|
|
/// Shift out
|
|
SO = 0x0E,
|
|
/// Shift in
|
|
SI = 0x0F,
|
|
|
|
// Non-exhaustive so that @intToEnum never fails since the inputs are
|
|
// user-generated.
|
|
_,
|
|
};
|
|
|
|
/// The SGR rendition aspects that can be set, sometimes known as attributes.
|
|
/// The value corresponds to the parameter value for the SGR command (ESC [ m).
|
|
pub const RenditionAspect = enum(u16) {
|
|
default = 0,
|
|
bold = 1,
|
|
default_fg = 39,
|
|
default_bg = 49,
|
|
|
|
// Non-exhaustive so that @intToEnum never fails since the inputs are
|
|
// user-generated.
|
|
_,
|
|
};
|
|
|
|
/// The device attribute request type (ESC [ c).
|
|
pub const DeviceAttributeReq = enum {
|
|
primary, // Blank
|
|
secondary, // >
|
|
tertiary, // =
|
|
};
|
|
|
|
/// Possible cursor styles (ESC [ q)
|
|
pub const CursorStyle = enum(u16) {
|
|
default = 0,
|
|
blinking_block = 1,
|
|
steady_block = 2,
|
|
blinking_underline = 3,
|
|
steady_underline = 4,
|
|
blinking_bar = 5,
|
|
steady_bar = 6,
|
|
|
|
// Non-exhaustive so that @intToEnum never fails for unsupported modes.
|
|
_,
|
|
|
|
/// True if the cursor should blink.
|
|
pub fn blinking(self: CursorStyle) bool {
|
|
return switch (self) {
|
|
.blinking_block, .blinking_underline, .blinking_bar => true,
|
|
else => false,
|
|
};
|
|
}
|
|
};
|
|
|
|
/// The status line type for DECSSDT.
|
|
pub const StatusLineType = enum(u16) {
|
|
none = 0,
|
|
indicator = 1,
|
|
host_writable = 2,
|
|
|
|
// Non-exhaustive so that @intToEnum never fails for unsupported values.
|
|
_,
|
|
};
|
|
|
|
/// The display to target for status updates (DECSASD).
|
|
pub const StatusDisplay = enum(u16) {
|
|
main = 0,
|
|
status_line = 1,
|
|
|
|
// Non-exhaustive so that @intToEnum never fails for unsupported values.
|
|
_,
|
|
};
|
|
|
|
/// The possible modify key formats to ESC[>{a};{b}m
|
|
/// Note: this is not complete, we should add more as we support more
|
|
pub const ModifyKeyFormat = union(enum) {
|
|
legacy: void,
|
|
cursor_keys: void,
|
|
function_keys: void,
|
|
other_keys: enum { none, numeric_except, numeric },
|
|
};
|
|
|
|
/// The protection modes that can be set for the terminal. See DECSCA and
|
|
/// ESC V, W.
|
|
pub const ProtectedMode = enum {
|
|
off,
|
|
iso, // ESC V, W
|
|
dec, // CSI Ps " q
|
|
};
|