mirror of
https://github.com/lihop/godot-xterm.git
synced 2025-05-10 14:05:32 +02:00
Add more features, bug fixes and bugs ;-)
Most notably: - Reflow is now working. Terminal size will fill the window and cols/rows will be resized/calculated based on window and font size. - Added support for different fonts (i.e. bold, italic, bolditalic). - Enabled blinking characters. - Adde more tests and caught a few subtle bugs. - Removed renderer code (which was part of xterm.js) and just doing naive rendering in terminal.gd, but it seems to perform a lot faster. Still not working completely: - vim (some weirdness going on). - vttest (more weirdness). Todo: - Fix the above. - Draw the cursor! - Improve performance. Performance is still not great. The terminal becomes unusable when running `yes` or `cmatrix -r`.
This commit is contained in:
parent
0769592a1b
commit
0d4e10f5ab
30 changed files with 2640 additions and 1157 deletions
|
@ -2,23 +2,255 @@
|
|||
# Ported to GDScript by the GodotXterm authors.
|
||||
# License MIT
|
||||
extends Reference
|
||||
|
||||
|
||||
# The character sets supported by the terminal. These enable several languages
|
||||
# to be represented within the terminal with only 8-bit encoding. See ISO 2022
|
||||
# for a discussion on character sets. Only VT100 character sets are supported.
|
||||
|
||||
const CHARSETS = {
|
||||
# DEC Special Character and Line Drawing Set.
|
||||
# Reference: http:#vt100.net/docs/vt102-ug/table5-13.html
|
||||
# A lot of curses apps use this if they see TERM=xterm.
|
||||
# testing: echo -e "\e(0a\e(B"
|
||||
# The xterm output sometimes seems to conflict with the
|
||||
# reference above. xterm seems in line with the reference
|
||||
# when running vttest however.
|
||||
# The table below now uses xterm"s output from vttest.
|
||||
"0": {
|
||||
"`": "\u25c6", # "◆"
|
||||
"a": "\u2592", # "▒"
|
||||
"b": "\u2409", # "␉" (HT)
|
||||
"c": "\u240c", # "␌" (FF)
|
||||
"d": "\u240d", # "␍" (CR)
|
||||
"e": "\u240a", # "␊" (LF)
|
||||
"f": "\u00b0", # "°"
|
||||
"g": "\u00b1", # "±"
|
||||
"h": "\u2424", # "" (NL)
|
||||
"i": "\u240b", # "␋" (VT)
|
||||
"j": "\u2518", # "┘"
|
||||
"k": "\u2510", # "┐"
|
||||
"l": "\u250c", # "┌"
|
||||
"m": "\u2514", # "└"
|
||||
"n": "\u253c", # "┼"
|
||||
"o": "\u23ba", # "⎺"
|
||||
"p": "\u23bb", # "⎻"
|
||||
"q": "\u2500", # "─"
|
||||
"r": "\u23bc", # "⎼"
|
||||
"s": "\u23bd", # "⎽"
|
||||
"t": "\u251c", # "├"
|
||||
"u": "\u2524", # "┤"
|
||||
"v": "\u2534", # "┴"
|
||||
"w": "\u252c", # "┬"
|
||||
"x": "\u2502", # "│"
|
||||
"y": "\u2264", # "≤"
|
||||
"z": "\u2265", # "≥"
|
||||
"{": "\u03c0", # "π"
|
||||
"|": "\u2260", # "≠"
|
||||
"}": "\u00a3", # "£"
|
||||
"~": "\u00b7" # "·"
|
||||
},
|
||||
|
||||
# British character set
|
||||
# ESC (A
|
||||
# Reference: http://vt100.net/docs/vt220-rm/table2-5.html
|
||||
'A': {
|
||||
'#': '£'
|
||||
# Reference: http:#vt100.net/docs/vt220-rm/table2-5.html
|
||||
"A": {
|
||||
"#": "£"
|
||||
},
|
||||
|
||||
# United States character set
|
||||
# ESC (B
|
||||
'B': null,
|
||||
"B": null,
|
||||
|
||||
# Dutch character set
|
||||
# ESC (4
|
||||
# Reference: http:#vt100.net/docs/vt220-rm/table2-6.html
|
||||
"4": {
|
||||
"#": "£",
|
||||
"@": "¾",
|
||||
"[": "ij",
|
||||
"\\": "½",
|
||||
"]": "|",
|
||||
"{": "¨",
|
||||
"|": "f",
|
||||
"}": "¼",
|
||||
"~": "´"
|
||||
},
|
||||
|
||||
# Finnish character set
|
||||
# ESC (C or ESC (5
|
||||
# Reference: http:#vt100.net/docs/vt220-rm/table2-7.html
|
||||
"C": {
|
||||
"[": "Ä",
|
||||
"\\": "Ö",
|
||||
"]": "Å",
|
||||
"^": "Ü",
|
||||
"`": "é",
|
||||
"{": "ä",
|
||||
"|": "ö",
|
||||
"}": "å",
|
||||
"~": "ü"
|
||||
},
|
||||
"5": {
|
||||
"[": "Ä",
|
||||
"\\": "Ö",
|
||||
"]": "Å",
|
||||
"^": "Ü",
|
||||
"`": "é",
|
||||
"{": "ä",
|
||||
"|": "ö",
|
||||
"}": "å",
|
||||
"~": "ü"
|
||||
},
|
||||
|
||||
# French character set
|
||||
# ESC (R
|
||||
# Reference: http:#vt100.net/docs/vt220-rm/table2-8.html
|
||||
"R": {
|
||||
"#": "£",
|
||||
"@": "à",
|
||||
"[": "°",
|
||||
"\\": "ç",
|
||||
"]": "§",
|
||||
"{": "é",
|
||||
"|": "ù",
|
||||
"}": "è",
|
||||
"~": "¨"
|
||||
},
|
||||
|
||||
# French Canadian character set
|
||||
# ESC (Q
|
||||
# Reference: http:#vt100.net/docs/vt220-rm/table2-9.html
|
||||
"Q": {
|
||||
"@": "à",
|
||||
"[": "â",
|
||||
"\\": "ç",
|
||||
"]": "ê",
|
||||
"^": "î",
|
||||
"`": "ô",
|
||||
"{": "é",
|
||||
"|": "ù",
|
||||
"}": "è",
|
||||
"~": "û"
|
||||
},
|
||||
|
||||
# German character set
|
||||
# ESC (K
|
||||
# Reference: http:#vt100.net/docs/vt220-rm/table2-10.html
|
||||
"K": {
|
||||
"@": "§",
|
||||
"[": "Ä",
|
||||
"\\": "Ö",
|
||||
"]": "Ü",
|
||||
"{": "ä",
|
||||
"|": "ö",
|
||||
"}": "ü",
|
||||
"~": "ß"
|
||||
},
|
||||
|
||||
# Italian character set
|
||||
# ESC (Y
|
||||
# Reference: http:#vt100.net/docs/vt220-rm/table2-11.html
|
||||
"Y": {
|
||||
"#": "£",
|
||||
"@": "§",
|
||||
"[": "°",
|
||||
"\\": "ç",
|
||||
"]": "é",
|
||||
"`": "ù",
|
||||
"{": "à",
|
||||
"|": "ò",
|
||||
"}": "è",
|
||||
"~": "ì"
|
||||
},
|
||||
|
||||
# Norwegian/Danish character set
|
||||
# ESC (E or ESC (6
|
||||
# Reference: http:#vt100.net/docs/vt220-rm/table2-12.html
|
||||
"E": {
|
||||
"@": "Ä",
|
||||
"[": "Æ",
|
||||
"\\": "Ø",
|
||||
"]": "Å",
|
||||
"^": "Ü",
|
||||
"`": "ä",
|
||||
"{": "æ",
|
||||
"|": "ø",
|
||||
"}": "å",
|
||||
"~": "ü"
|
||||
},
|
||||
"6": {
|
||||
"@": "Ä",
|
||||
"[": "Æ",
|
||||
"\\": "Ø",
|
||||
"]": "Å",
|
||||
"^": "Ü",
|
||||
"`": "ä",
|
||||
"{": "æ",
|
||||
"|": "ø",
|
||||
"}": "å",
|
||||
"~": "ü"
|
||||
},
|
||||
|
||||
# Spanish character set
|
||||
# ESC (Z
|
||||
# Reference: http:#vt100.net/docs/vt220-rm/table2-13.html
|
||||
"Z": {
|
||||
"#": "£",
|
||||
"@": "§",
|
||||
"[": "¡",
|
||||
"\\": "Ñ",
|
||||
"]": "¿",
|
||||
"{": "°",
|
||||
"|": "ñ",
|
||||
"}": "ç"
|
||||
},
|
||||
|
||||
# Swedish character set
|
||||
# ESC (H or ESC (7
|
||||
# Reference: http:#vt100.net/docs/vt220-rm/table2-14.html
|
||||
"H": {
|
||||
"@": "É",
|
||||
"[": "Ä",
|
||||
"\\": "Ö",
|
||||
"]": "Å",
|
||||
"^": "Ü",
|
||||
"`": "é",
|
||||
"{": "ä",
|
||||
"|": "ö",
|
||||
"}": "å",
|
||||
"~": "ü"
|
||||
},
|
||||
"7": {
|
||||
"@": "É",
|
||||
"[": "Ä",
|
||||
"\\": "Ö",
|
||||
"]": "Å",
|
||||
"^": "Ü",
|
||||
"`": "é",
|
||||
"{": "ä",
|
||||
"|": "ö",
|
||||
"}": "å",
|
||||
"~": "ü"
|
||||
},
|
||||
|
||||
# Swiss character set
|
||||
# ESC (=
|
||||
# Reference: http:#vt100.net/docs/vt220-rm/table2-15.html
|
||||
#/
|
||||
"=": {
|
||||
"#": "ù",
|
||||
"@": "à",
|
||||
"[": "é",
|
||||
"\\": "ç",
|
||||
"]": "ê",
|
||||
"^": "î",
|
||||
"_": "è",
|
||||
"`": "ô",
|
||||
"{": "ä",
|
||||
"|": "ö",
|
||||
"}": "ü",
|
||||
"~": "û"
|
||||
},
|
||||
}
|
||||
|
||||
# The default character set, US.
|
||||
const DEFAULT_CHARSET = CHARSETS['B']
|
||||
const DEFAULT_CHARSET = CHARSETS["B"]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue