ansi.odin 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package ansi
  2. BEL :: "\a" // Bell
  3. BS :: "\b" // Backspace
  4. ESC :: "\e" // Escape
  5. // Fe Escape sequences
  6. CSI :: ESC + "[" // Control Sequence Introducer
  7. OSC :: ESC + "]" // Operating System Command
  8. ST :: ESC + "\\" // String Terminator
  9. // CSI sequences
  10. CUU :: "A" // Cursor Up
  11. CUD :: "B" // Cursor Down
  12. CUF :: "C" // Cursor Forward
  13. CUB :: "D" // Cursor Back
  14. CNL :: "E" // Cursor Next Line
  15. CPL :: "F" // Cursor Previous Line
  16. CHA :: "G" // Cursor Horizontal Absolute
  17. CUP :: "H" // Cursor Position
  18. ED :: "J" // Erase in Display
  19. EL :: "K" // Erase in Line
  20. SU :: "S" // Scroll Up
  21. SD :: "T" // Scroll Down
  22. HVP :: "f" // Horizontal Vertical Position
  23. SGR :: "m" // Select Graphic Rendition
  24. AUX_ON :: "5i" // AUX Port On
  25. AUX_OFF :: "4i" // AUX Port Off
  26. DSR :: "6n" // Device Status Report
  27. // CSI: private sequences
  28. SCP :: "s" // Save Current Cursor Position
  29. RCP :: "u" // Restore Saved Cursor Position
  30. DECAWM_ON :: "?7h" // Auto Wrap Mode (Enabled)
  31. DECAWM_OFF :: "?7l" // Auto Wrap Mode (Disabled)
  32. DECTCEM_SHOW :: "?25h" // Text Cursor Enable Mode (Visible)
  33. DECTCEM_HIDE :: "?25l" // Text Cursor Enable Mode (Invisible)
  34. // SGR sequences
  35. RESET :: "0"
  36. BOLD :: "1"
  37. FAINT :: "2"
  38. ITALIC :: "3" // Not widely supported.
  39. UNDERLINE :: "4"
  40. BLINK_SLOW :: "5"
  41. BLINK_RAPID :: "6" // Not widely supported.
  42. INVERT :: "7" // Also known as reverse video.
  43. HIDE :: "8" // Not widely supported.
  44. STRIKE :: "9"
  45. FONT_PRIMARY :: "10"
  46. FONT_ALT1 :: "11"
  47. FONT_ALT2 :: "12"
  48. FONT_ALT3 :: "13"
  49. FONT_ALT4 :: "14"
  50. FONT_ALT5 :: "15"
  51. FONT_ALT6 :: "16"
  52. FONT_ALT7 :: "17"
  53. FONT_ALT8 :: "18"
  54. FONT_ALT9 :: "19"
  55. FONT_FRAKTUR :: "20" // Rarely supported.
  56. UNDERLINE_DOUBLE :: "21" // May be interpreted as "disable bold."
  57. NO_BOLD_FAINT :: "22"
  58. NO_ITALIC_BLACKLETTER :: "23"
  59. NO_UNDERLINE :: "24"
  60. NO_BLINK :: "25"
  61. PROPORTIONAL_SPACING :: "26"
  62. NO_REVERSE :: "27"
  63. NO_HIDE :: "28"
  64. NO_STRIKE :: "29"
  65. FG_BLACK :: "30"
  66. FG_RED :: "31"
  67. FG_GREEN :: "32"
  68. FG_YELLOW :: "33"
  69. FG_BLUE :: "34"
  70. FG_MAGENTA :: "35"
  71. FG_CYAN :: "36"
  72. FG_WHITE :: "37"
  73. FG_COLOR :: "38"
  74. FG_COLOR_8_BIT :: "38;5" // Followed by ";n" where n is in 0..=255
  75. FG_COLOR_24_BIT :: "38;2" // Followed by ";r;g;b" where r,g,b are in 0..=255
  76. FG_DEFAULT :: "39"
  77. BG_BLACK :: "40"
  78. BG_RED :: "41"
  79. BG_GREEN :: "42"
  80. BG_YELLOW :: "43"
  81. BG_BLUE :: "44"
  82. BG_MAGENTA :: "45"
  83. BG_CYAN :: "46"
  84. BG_WHITE :: "47"
  85. BG_COLOR :: "48"
  86. BG_COLOR_8_BIT :: "48;5" // Followed by ";n" where n is in 0..=255
  87. BG_COLOR_24_BIT :: "48;2" // Followed by ";r;g;b" where r,g,b are in 0..=255
  88. BG_DEFAULT :: "49"
  89. NO_PROPORTIONAL_SPACING :: "50"
  90. FRAMED :: "51"
  91. ENCIRCLED :: "52"
  92. OVERLINED :: "53"
  93. NO_FRAME_ENCIRCLE :: "54"
  94. NO_OVERLINE :: "55"
  95. // SGR: non-standard bright colors
  96. FG_BRIGHT_BLACK :: "90" // Also known as grey.
  97. FG_BRIGHT_RED :: "91"
  98. FG_BRIGHT_GREEN :: "92"
  99. FG_BRIGHT_YELLOW :: "93"
  100. FG_BRIGHT_BLUE :: "94"
  101. FG_BRIGHT_MAGENTA :: "95"
  102. FG_BRIGHT_CYAN :: "96"
  103. FG_BRIGHT_WHITE :: "97"
  104. BG_BRIGHT_BLACK :: "100" // Also known as grey.
  105. BG_BRIGHT_RED :: "101"
  106. BG_BRIGHT_GREEN :: "102"
  107. BG_BRIGHT_YELLOW :: "103"
  108. BG_BRIGHT_BLUE :: "104"
  109. BG_BRIGHT_MAGENTA :: "105"
  110. BG_BRIGHT_CYAN :: "106"
  111. BG_BRIGHT_WHITE :: "107"
  112. // Fp Escape sequences
  113. DECSC :: ESC + "7" // DEC Save Cursor
  114. DECRC :: ESC + "8" // DEC Restore Cursor
  115. // OSC sequences
  116. WINDOW_TITLE :: "2" // Followed by ";<text>" ST.
  117. HYPERLINK :: "8" // Followed by ";[params];<URI>" ST. Closed by OSC HYPERLINK ";;" ST.
  118. CLIPBOARD :: "52" // Followed by ";c;<Base64-encoded string>" ST.