aboutsummaryrefslogtreecommitdiff
path: root/core/terminal/ansi/ansi.odin
blob: 5550a1671bb8e479bafe2f05f622dafdcbf20e63 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
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)

// 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.