Clean up code tables

This commit is contained in:
Kovid Goyal 2021-01-15 11:09:28 +05:30
parent b60c84ecdc
commit 7ea1deba8f
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 64 additions and 112 deletions

View File

@ -480,112 +480,60 @@ compatibility reasons.
.. start functional key table (auto generated by gen-key-constants.py do not edit)
.. csv-table:: Functional key codes
:header: "Name", "CSI sequence"
:header: "Name", "CSI", "Name", "CSI"
"ESCAPE", "CSI 27 u"
"ENTER", "CSI 13 u"
"TAB", "CSI 9 u"
"BACKSPACE", "CSI 127 u"
"INSERT", "CSI 2 ~"
"DELETE", "CSI 3 ~"
"LEFT", "CSI 1 D"
"RIGHT", "CSI 1 C"
"UP", "CSI 1 A"
"DOWN", "CSI 1 B"
"PAGE_UP", "CSI 5 ~"
"PAGE_DOWN", "CSI 6 ~"
"HOME", "CSI 1 H or CSI 7 ~"
"END", "CSI 1 F or CSI 8 ~"
"CAPS_LOCK", "CSI 57358 u"
"SCROLL_LOCK", "CSI 57359 u"
"NUM_LOCK", "CSI 57360 u"
"PRINT_SCREEN", "CSI 57361 u"
"PAUSE", "CSI 57362 u"
"MENU", "CSI 57363 u"
"F1", "CSI 1 P or CSI 11 ~"
"F2", "CSI 1 Q or CSI 12 ~"
"F3", "CSI 1 R or CSI 13 ~"
"F4", "CSI 1 S or CSI 14 ~"
"F5", "CSI 15 ~"
"F6", "CSI 17 ~"
"F7", "CSI 18 ~"
"F8", "CSI 19 ~"
"F9", "CSI 20 ~"
"F10", "CSI 21 ~"
"F11", "CSI 23 ~"
"F12", "CSI 24 ~"
"F13", "CSI 57376 u"
"F14", "CSI 57377 u"
"F15", "CSI 57378 u"
"F16", "CSI 57379 u"
"F17", "CSI 57380 u"
"F18", "CSI 57381 u"
"F19", "CSI 57382 u"
"F20", "CSI 57383 u"
"F21", "CSI 57384 u"
"F22", "CSI 57385 u"
"F23", "CSI 57386 u"
"F24", "CSI 57387 u"
"F25", "CSI 57388 u"
"F26", "CSI 57389 u"
"F27", "CSI 57390 u"
"F28", "CSI 57391 u"
"F29", "CSI 57392 u"
"F30", "CSI 57393 u"
"F31", "CSI 57394 u"
"F32", "CSI 57395 u"
"F33", "CSI 57396 u"
"F34", "CSI 57397 u"
"F35", "CSI 57398 u"
"KP_0", "CSI 57399 u"
"KP_1", "CSI 57400 u"
"KP_2", "CSI 57401 u"
"KP_3", "CSI 57402 u"
"KP_4", "CSI 57403 u"
"KP_5", "CSI 57404 u"
"KP_6", "CSI 57405 u"
"KP_7", "CSI 57406 u"
"KP_8", "CSI 57407 u"
"KP_9", "CSI 57408 u"
"KP_DECIMAL", "CSI 57409 u"
"KP_DIVIDE", "CSI 57410 u"
"KP_MULTIPLY", "CSI 57411 u"
"KP_SUBTRACT", "CSI 57412 u"
"KP_ADD", "CSI 57413 u"
"KP_ENTER", "CSI 57414 u"
"KP_EQUAL", "CSI 57415 u"
"KP_SEPARATOR", "CSI 57416 u"
"KP_LEFT", "CSI 57417 u"
"KP_RIGHT", "CSI 57418 u"
"KP_UP", "CSI 57419 u"
"KP_DOWN", "CSI 57420 u"
"KP_PAGE_UP", "CSI 57421 u"
"KP_PAGE_DOWN", "CSI 57422 u"
"KP_HOME", "CSI 57423 u"
"KP_END", "CSI 57424 u"
"KP_INSERT", "CSI 57425 u"
"KP_DELETE", "CSI 57426 u"
"LEFT_SHIFT", "CSI 57427 u"
"LEFT_CONTROL", "CSI 57428 u"
"LEFT_ALT", "CSI 57429 u"
"LEFT_SUPER", "CSI 57430 u"
"RIGHT_SHIFT", "CSI 57431 u"
"RIGHT_CONTROL", "CSI 57432 u"
"RIGHT_ALT", "CSI 57433 u"
"RIGHT_SUPER", "CSI 57434 u"
"MEDIA_PLAY", "CSI 57435 u"
"MEDIA_PAUSE", "CSI 57436 u"
"MEDIA_PLAY_PAUSE", "CSI 57437 u"
"MEDIA_REVERSE", "CSI 57438 u"
"MEDIA_STOP", "CSI 57439 u"
"MEDIA_FAST_FORWARD", "CSI 57440 u"
"MEDIA_REWIND", "CSI 57441 u"
"MEDIA_TRACK_NEXT", "CSI 57442 u"
"MEDIA_TRACK_PREVIOUS", "CSI 57443 u"
"MEDIA_RECORD", "CSI 57444 u"
"LOWER_VOLUME", "CSI 57445 u"
"RAISE_VOLUME", "CSI 57446 u"
"MUTE_VOLUME", "CSI 57447 u"
"ESCAPE", "``27 u``", "ENTER", "``13 u``"
"TAB", "``9 u``", "BACKSPACE", "``127 u``"
"INSERT", "``2 ~``", "DELETE", "``3 ~``"
"LEFT", "``1 D``", "RIGHT", "``1 C``"
"UP", "``1 A``", "DOWN", "``1 B``"
"PAGE_UP", "``5 ~``", "PAGE_DOWN", "``6 ~``"
"HOME", "``1 H or CSI 7 ~``", "END", "``1 F or CSI 8 ~``"
"CAPS_LOCK", "``57358 u``", "SCROLL_LOCK", "``57359 u``"
"NUM_LOCK", "``57360 u``", "PRINT_SCREEN", "``57361 u``"
"PAUSE", "``57362 u``", "MENU", "``57363 u``"
"F1", "``1 P or CSI 11 ~``", "F2", "``1 Q or CSI 12 ~``"
"F3", "``1 R or CSI 13 ~``", "F4", "``1 S or CSI 14 ~``"
"F5", "``15 ~``", "F6", "``17 ~``"
"F7", "``18 ~``", "F8", "``19 ~``"
"F9", "``20 ~``", "F10", "``21 ~``"
"F11", "``23 ~``", "F12", "``24 ~``"
"F13", "``57376 u``", "F14", "``57377 u``"
"F15", "``57378 u``", "F16", "``57379 u``"
"F17", "``57380 u``", "F18", "``57381 u``"
"F19", "``57382 u``", "F20", "``57383 u``"
"F21", "``57384 u``", "F22", "``57385 u``"
"F23", "``57386 u``", "F24", "``57387 u``"
"F25", "``57388 u``", "F26", "``57389 u``"
"F27", "``57390 u``", "F28", "``57391 u``"
"F29", "``57392 u``", "F30", "``57393 u``"
"F31", "``57394 u``", "F32", "``57395 u``"
"F33", "``57396 u``", "F34", "``57397 u``"
"F35", "``57398 u``", "KP_0", "``57399 u``"
"KP_1", "``57400 u``", "KP_2", "``57401 u``"
"KP_3", "``57402 u``", "KP_4", "``57403 u``"
"KP_5", "``57404 u``", "KP_6", "``57405 u``"
"KP_7", "``57406 u``", "KP_8", "``57407 u``"
"KP_9", "``57408 u``", "KP_DECIMAL", "``57409 u``"
"KP_DIVIDE", "``57410 u``", "KP_MULTIPLY", "``57411 u``"
"KP_SUBTRACT", "``57412 u``", "KP_ADD", "``57413 u``"
"KP_ENTER", "``57414 u``", "KP_EQUAL", "``57415 u``"
"KP_SEPARATOR", "``57416 u``", "KP_LEFT", "``57417 u``"
"KP_RIGHT", "``57418 u``", "KP_UP", "``57419 u``"
"KP_DOWN", "``57420 u``", "KP_PAGE_UP", "``57421 u``"
"KP_PAGE_DOWN", "``57422 u``", "KP_HOME", "``57423 u``"
"KP_END", "``57424 u``", "KP_INSERT", "``57425 u``"
"KP_DELETE", "``57426 u``", "LEFT_SHIFT", "``57427 u``"
"LEFT_CONTROL", "``57428 u``", "LEFT_ALT", "``57429 u``"
"LEFT_SUPER", "``57430 u``", "RIGHT_SHIFT", "``57431 u``"
"RIGHT_CONTROL", "``57432 u``", "RIGHT_ALT", "``57433 u``"
"RIGHT_SUPER", "``57434 u``", "MEDIA_PLAY", "``57435 u``"
"MEDIA_PAUSE", "``57436 u``", "MEDIA_PLAY_PAUSE", "``57437 u``"
"MEDIA_REVERSE", "``57438 u``", "MEDIA_STOP", "``57439 u``"
"MEDIA_FAST_FORWARD", "``57440 u``", "MEDIA_REWIND", "``57441 u``"
"MEDIA_TRACK_NEXT", "``57442 u``", "MEDIA_TRACK_PREVIOUS", "``57443 u``"
"MEDIA_RECORD", "``57444 u``", "LOWER_VOLUME", "``57445 u``"
"RAISE_VOLUME", "``57446 u``", "MUTE_VOLUME", "``57447 u``"
.. end functional key table
.. }}}
@ -612,12 +560,12 @@ Any ASCII keys not in the table must be left untouched by :kbd:`ctrl`.
.. csv-table:: Emitted bytes when :kbd:`ctrl` is held down and a key is pressed
:header: "Key", "Byte", "Key", "Byte", "Key", "Byte"
" ", "0", "/", "31", "0", "48"
"SPC ", "0", "/", "31", "0", "48"
"1", "49", "2", "0", "3", "27"
"4", "28", "5", "29", "6", "30"
"7", "31", "8", "127", "9", "57"
"?", "127", "@", "0", "[", "27"
"\", "28", "]", "29", "^", "30"
"\\", "28", "]", "29", "^", "30"
"_", "31", "a", "1", "b", "2"
"c", "3", "d", "4", "e", "5"
"f", "6", "g", "7", "h", "8"

View File

@ -214,9 +214,10 @@ def generate_functional_table() -> None:
lines = [
'',
'.. csv-table:: Functional key codes',
' :header: "Name", "CSI sequence"',
' :header: "Name", "CSI", "Name", "CSI"',
''
]
line_items = []
enc_lines = []
tilde_trailers = set()
for name, code in name_to_code.items():
@ -228,11 +229,13 @@ def generate_functional_table() -> None:
code = code if trailer in '~u' else 1
enc_lines.append((' ' * 8) + f"case GLFW_FKEY_{name.upper()}: S({code}, '{trailer}');")
if code == 1 and name not in ('up', 'down', 'left', 'right'):
trailer += f' or CSI {oc} ~'
trailer += f' or {oc} ~'
else:
trailer = 'u'
name = f'"{name.upper()}",'.ljust(25)
lines.append(f' {name} "CSI {code} {trailer}"')
line_items.append(name.upper())
line_items.append(f'``{code}\xa0{trailer}``')
for li in chunks(line_items, 4):
lines.append(' ' + ', '.join(f'"{x}"' for x in li))
lines.append('')
patch_file('docs/keyboard-protocol.rst', 'functional key table', '\n'.join(lines), start_marker='.. ', end_marker='')
patch_file('kitty/key_encoding.c', 'special numbers', '\n'.join(enc_lines))
@ -298,7 +301,8 @@ def generate_ctrl_mapping() -> None:
items = []
mi = []
for k in sorted(ctrl_mapping):
items.append(k)
prefix = '\\' if k == '\\' else ('SPC' if k == ' ' else '')
items.append(prefix + k)
val = str(ctrl_mapping[k])
items.append(val)
if k in "\\'":