mirror of
https://github.com/odin-lang/Odin.git
synced 2026-07-19 22:21:07 +00:00
Adds constants DECASB_ENTER and DECASB_EXIT to ansi.odin. ASB stands for Alternate Screen Buffer. DECASB_ENTER ( ?1049h ) saves the cursor position, clears the alternate buffer, and switches the view to said buffer. DECASB_EXIT ( ?1049l ) restores the main buffer's contents and the cursor position. Commonly used by editors, games, and TUIs in general to avoid polluting the main buffer.
140 lines
4.5 KiB
Odin
140 lines
4.5 KiB
Odin
package ansi
|
|
|
|
BEL :: "\a" // Bell
|
|
BS :: "\b" // Backspace
|
|
ESC :: "\e" // Escape
|
|
|
|
// Fe Escape sequences
|
|
|
|
CSI :: ESC + "[" // Control Sequence Introducer
|
|
OSC :: ESC + "]" // Operating System Command
|
|
ST :: ESC + "\\" // String Terminator
|
|
|
|
// CSI sequences
|
|
|
|
CUU :: "A" // Cursor Up
|
|
CUD :: "B" // Cursor Down
|
|
CUF :: "C" // Cursor Forward
|
|
CUB :: "D" // Cursor Back
|
|
CNL :: "E" // Cursor Next Line
|
|
CPL :: "F" // Cursor Previous Line
|
|
CHA :: "G" // Cursor Horizontal Absolute
|
|
CUP :: "H" // Cursor Position
|
|
ED :: "J" // Erase in Display
|
|
EL :: "K" // Erase in Line
|
|
SU :: "S" // Scroll Up
|
|
SD :: "T" // Scroll Down
|
|
HVP :: "f" // Horizontal Vertical Position
|
|
SGR :: "m" // Select Graphic Rendition
|
|
AUX_ON :: "5i" // AUX Port On
|
|
AUX_OFF :: "4i" // AUX Port Off
|
|
DSR :: "6n" // Device Status Report
|
|
|
|
// CSI: private sequences
|
|
|
|
SCP :: "s" // Save Current Cursor Position
|
|
RCP :: "u" // Restore Saved Cursor Position
|
|
DECAWM_ON :: "?7h" // Auto Wrap Mode (Enabled)
|
|
DECAWM_OFF :: "?7l" // Auto Wrap Mode (Disabled)
|
|
DECTCEM_SHOW :: "?25h" // Text Cursor Enable Mode (Visible)
|
|
DECTCEM_HIDE :: "?25l" // Text Cursor Enable Mode (Invisible)
|
|
DECASB_ENTER :: "?1049h" // Alternate Screen Buffer (Enter)
|
|
DECASB_EXIT :: "?1049l" // Alternate Screen Buffer (Exit)
|
|
|
|
// SGR sequences
|
|
|
|
RESET :: "0"
|
|
BOLD :: "1"
|
|
FAINT :: "2"
|
|
ITALIC :: "3" // Not widely supported.
|
|
UNDERLINE :: "4"
|
|
BLINK_SLOW :: "5"
|
|
BLINK_RAPID :: "6" // Not widely supported.
|
|
INVERT :: "7" // Also known as reverse video.
|
|
HIDE :: "8" // Not widely supported.
|
|
STRIKE :: "9"
|
|
FONT_PRIMARY :: "10"
|
|
FONT_ALT1 :: "11"
|
|
FONT_ALT2 :: "12"
|
|
FONT_ALT3 :: "13"
|
|
FONT_ALT4 :: "14"
|
|
FONT_ALT5 :: "15"
|
|
FONT_ALT6 :: "16"
|
|
FONT_ALT7 :: "17"
|
|
FONT_ALT8 :: "18"
|
|
FONT_ALT9 :: "19"
|
|
FONT_FRAKTUR :: "20" // Rarely supported.
|
|
UNDERLINE_DOUBLE :: "21" // May be interpreted as "disable bold."
|
|
NO_BOLD_FAINT :: "22"
|
|
NO_ITALIC_BLACKLETTER :: "23"
|
|
NO_UNDERLINE :: "24"
|
|
NO_BLINK :: "25"
|
|
PROPORTIONAL_SPACING :: "26"
|
|
NO_REVERSE :: "27"
|
|
NO_HIDE :: "28"
|
|
NO_STRIKE :: "29"
|
|
|
|
FG_BLACK :: "30"
|
|
FG_RED :: "31"
|
|
FG_GREEN :: "32"
|
|
FG_YELLOW :: "33"
|
|
FG_BLUE :: "34"
|
|
FG_MAGENTA :: "35"
|
|
FG_CYAN :: "36"
|
|
FG_WHITE :: "37"
|
|
FG_COLOR :: "38"
|
|
FG_COLOR_8_BIT :: "38;5" // Followed by ";n" where n is in 0..=255
|
|
FG_COLOR_24_BIT :: "38;2" // Followed by ";r;g;b" where r,g,b are in 0..=255
|
|
FG_DEFAULT :: "39"
|
|
|
|
BG_BLACK :: "40"
|
|
BG_RED :: "41"
|
|
BG_GREEN :: "42"
|
|
BG_YELLOW :: "43"
|
|
BG_BLUE :: "44"
|
|
BG_MAGENTA :: "45"
|
|
BG_CYAN :: "46"
|
|
BG_WHITE :: "47"
|
|
BG_COLOR :: "48"
|
|
BG_COLOR_8_BIT :: "48;5" // Followed by ";n" where n is in 0..=255
|
|
BG_COLOR_24_BIT :: "48;2" // Followed by ";r;g;b" where r,g,b are in 0..=255
|
|
BG_DEFAULT :: "49"
|
|
|
|
NO_PROPORTIONAL_SPACING :: "50"
|
|
FRAMED :: "51"
|
|
ENCIRCLED :: "52"
|
|
OVERLINED :: "53"
|
|
NO_FRAME_ENCIRCLE :: "54"
|
|
NO_OVERLINE :: "55"
|
|
|
|
// SGR: non-standard bright colors
|
|
|
|
FG_BRIGHT_BLACK :: "90" // Also known as grey.
|
|
FG_BRIGHT_RED :: "91"
|
|
FG_BRIGHT_GREEN :: "92"
|
|
FG_BRIGHT_YELLOW :: "93"
|
|
FG_BRIGHT_BLUE :: "94"
|
|
FG_BRIGHT_MAGENTA :: "95"
|
|
FG_BRIGHT_CYAN :: "96"
|
|
FG_BRIGHT_WHITE :: "97"
|
|
|
|
BG_BRIGHT_BLACK :: "100" // Also known as grey.
|
|
BG_BRIGHT_RED :: "101"
|
|
BG_BRIGHT_GREEN :: "102"
|
|
BG_BRIGHT_YELLOW :: "103"
|
|
BG_BRIGHT_BLUE :: "104"
|
|
BG_BRIGHT_MAGENTA :: "105"
|
|
BG_BRIGHT_CYAN :: "106"
|
|
BG_BRIGHT_WHITE :: "107"
|
|
|
|
// Fp Escape sequences
|
|
|
|
DECSC :: ESC + "7" // DEC Save Cursor
|
|
DECRC :: ESC + "8" // DEC Restore Cursor
|
|
|
|
// OSC sequences
|
|
|
|
WINDOW_TITLE :: "2" // Followed by ";<text>" ST.
|
|
HYPERLINK :: "8" // Followed by ";[params];<URI>" ST. Closed by OSC HYPERLINK ";;" ST.
|
|
CLIPBOARD :: "52" // Followed by ";c;<Base64-encoded string>" ST.
|