Tweak check_layout.py

- Warn about missing esc, tab, f11_placeholder and f12_placeholder.
- Don't check non-layout files and special layouts.
This commit is contained in:
Jules Aguillon 2023-08-05 17:58:13 +02:00
parent 94bd9c6bc8
commit 76f01122c2
2 changed files with 33 additions and 39 deletions

View File

@ -1,24 +1,28 @@
# res/xml/arab_alt.xml # res/xml/arab_alt.xml
Layout includes some ASCII punctuation but not all, missing: !, ", ', +, -, /, :, ;, <, =, >, ?, [, \, ], _, |, ~ Layout includes some ASCII punctuation but not all, missing: !, ", ', +, -, /, :, ;, <, =, >, ?, [, \, ], _, |, ~
1 warnings Layout doesn't define some important keys, missing: f11_placeholder, f12_placeholder
2 warnings
# res/xml/arab_pc_ckb.xml # res/xml/arab_pc_ckb.xml
Layout includes some ASCII punctuation but not all, missing: ", %, ', +, ,, ., :, ;, <, =, >, ?, `, |, ~ Layout includes some ASCII punctuation but not all, missing: ", %, ', +, ,, ., :, ;, <, =, >, ?, `, |, ~
1 warnings 1 warnings
# res/xml/arab_pc_ir.xml # res/xml/arab_pc_ir.xml
Layout includes some ASCII punctuation but not all, missing: ", %, ', ,, /, ;, <, =, >, ?, [, \, ], `, {, |, } Layout includes some ASCII punctuation but not all, missing: ", %, ', ,, /, ;, <, =, >, ?, [, \, ], `, {, |, }
1 warnings Layout doesn't define some important keys, missing: esc, f11_placeholder, f12_placeholder, tab
2 warnings
# res/xml/arab_pc.xml # res/xml/arab_pc.xml
Layout includes some ASCII punctuation but not all, missing: !, ', +, ;, ?, \, | Layout includes some ASCII punctuation but not all, missing: !, ', +, ;, ?, \, |
1 warnings Layout doesn't define some important keys, missing: f11_placeholder, f12_placeholder
2 warnings
# res/xml/beng_national.xml # res/xml/beng_national.xml
Layout includes some ASCII punctuation but not all, missing: $ Layout includes some ASCII punctuation but not all, missing: $
Layout doesn't define some important keys, missing: f11_placeholder, f12_placeholder
Layout doesn't specify a script. Layout doesn't specify a script.
2 warnings 3 warnings
# res/xml/beng_provat.xml # res/xml/beng_provat.xml
Layout includes some ASCII punctuation but not all, missing: $, &, *, ., /, <, >, [, \, ], `, {, |, } Layout includes some ASCII punctuation but not all, missing: $, &, *, ., /, <, >, [, \, ], `, {, |, }
Layout doesn't define some important keys, missing: f11_placeholder, f12_placeholder
Layout doesn't specify a script. Layout doesn't specify a script.
2 warnings 3 warnings
Not a layout file: res/xml/bottom_row.xml
# res/xml/cyrl_jcuken_ru.xml # res/xml/cyrl_jcuken_ru.xml
0 warnings 0 warnings
# res/xml/cyrl_jcuken_uk.xml # res/xml/cyrl_jcuken_uk.xml
@ -28,15 +32,12 @@ Layout includes some ASCII punctuation but not all, missing: ~
1 warnings 1 warnings
# res/xml/deva_alt.xml # res/xml/deva_alt.xml
Layout includes some ASCII punctuation but not all, missing: #, $, %, &, ', (, ), *, +, ., /, :, <, =, >, @, [, \, ], ^, _, `, {, |, }, ~ Layout includes some ASCII punctuation but not all, missing: #, $, %, &, ', (, ), *, +, ., /, :, <, =, >, @, [, \, ], ^, _, `, {, |, }, ~
1 warnings Layout doesn't define some important keys, missing: f11_placeholder, f12_placeholder
2 warnings
# res/xml/deva_inscript.xml # res/xml/deva_inscript.xml
Layout includes some ASCII punctuation but not all, missing: ", $, ', ^, _, `, | Layout includes some ASCII punctuation but not all, missing: ", $, ', ^, _, `, |
1 warnings Layout doesn't define some important keys, missing: f11_placeholder, f12_placeholder
# res/xml/greekmath.xml 2 warnings
Layout includes some ASCII punctuation but not all, missing: !, ", #, $, %, &, ', (, ), *, +, ,, -, /, :, ;, <, >, ?, @, [, \, ], _, `, {, |, }, ~
Layout redefines the bottom row but some important keys are missing, missing: change_method, config, ctrl, switch_backward, switch_emoji, switch_forward
Layout doesn't specify a script.
3 warnings
# res/xml/grek_qwerty.xml # res/xml/grek_qwerty.xml
0 warnings 0 warnings
# res/xml/hang_dubeolsik_kr.xml # res/xml/hang_dubeolsik_kr.xml
@ -77,7 +78,8 @@ Layout redefines the bottom row but some important keys are missing, missing: sw
# res/xml/latn_qwerty_se.xml # res/xml/latn_qwerty_se.xml
0 warnings 0 warnings
# res/xml/latn_qwerty_tr.xml # res/xml/latn_qwerty_tr.xml
0 warnings Layout doesn't define some important keys, missing: f11_placeholder, f12_placeholder
1 warnings
# res/xml/latn_qwerty_us.xml # res/xml/latn_qwerty_us.xml
0 warnings 0 warnings
# res/xml/latn_qwerty_vi.xml # res/xml/latn_qwerty_vi.xml
@ -85,34 +87,18 @@ Layout includes some ASCII punctuation but not all, missing: \
1 warnings 1 warnings
# res/xml/latn_qwertz_cz_multifunctional.xml # res/xml/latn_qwertz_cz_multifunctional.xml
Layout includes some ASCII punctuation but not all, missing: ` Layout includes some ASCII punctuation but not all, missing: `
1 warnings Layout doesn't define some important keys, missing: f11_placeholder, f12_placeholder
2 warnings
# res/xml/latn_qwertz_cz.xml # res/xml/latn_qwertz_cz.xml
0 warnings Layout doesn't define some important keys, missing: f11_placeholder, f12_placeholder
1 warnings
# res/xml/latn_qwertz_de.xml # res/xml/latn_qwertz_de.xml
0 warnings 0 warnings
# res/xml/latn_qwertz_hu.xml # res/xml/latn_qwertz_hu.xml
0 warnings 0 warnings
# res/xml/latn_qwertz_sk.xml # res/xml/latn_qwertz_sk.xml
Layout includes some ASCII punctuation but not all, missing: \, ` Layout includes some ASCII punctuation but not all, missing: \, `
1 warnings Layout doesn't define some important keys, missing: f11_placeholder, f12_placeholder
2 warnings
# res/xml/latn_qwertz.xml # res/xml/latn_qwertz.xml
0 warnings 0 warnings
Not a layout file: res/xml/method.xml
Not a layout file: res/xml/number_row.xml
# res/xml/numeric.xml
Layout includes some ASCII punctuation but not all, missing: &, ?, @, `
Layout redefines the bottom row but some important keys are missing, missing: change_method, config, switch_backward, switch_emoji, switch_forward, switch_numeric
Layout doesn't specify a script.
3 warnings
# res/xml/numpad.xml
Layout includes some ASCII punctuation but not all, missing: !, ", #, $, %, &, ', (, ), ,, :, ;, <, >, ?, @, [, \, ], ^, _, `, {, |, }, ~
Layout doesn't define some important keys, missing: backspace, delete
Layout redefines the bottom row but some important keys are missing, missing: action, change_method, config, ctrl, down, enter, fn, left, right, space, switch_backward, switch_emoji, switch_forward, switch_numeric, up
Layout doesn't specify a script.
4 warnings
# res/xml/pin.xml
Layout includes some ASCII punctuation but not all, missing: !, ", $, %, &, ', ;, <, >, ?, @, [, \, ], ^, _, `, {, |, }, ~
Layout redefines the bottom row but some important keys are missing, missing: change_method, config, ctrl, fn, switch_backward, switch_emoji, switch_forward
Layout doesn't specify a script.
3 warnings
Not a layout file: res/xml/settings.xml

View File

@ -3,6 +3,11 @@ import sys
warning_count = 0 warning_count = 0
KNOWN_NOT_LAYOUT = set([
"res/xml/number_row.xml", "res/xml/numpad.xml", "res/xml/pin.xml",
"res/xml/bottom_row.xml", "res/xml/settings.xml", "res/xml/method.xml",
"res/xml/greekmath.xml", "res/xml/numeric.xml" ])
def warn(msg): def warn(msg):
global warning_count global warning_count
print(msg) print(msg)
@ -44,9 +49,10 @@ def check_layout(layout):
root, keys = layout root, keys = layout
missing_some_of(keys, "~!@#$%^&*(){}`[]=\\-_;:/.,?<>'\"+|", "ASCII punctuation") missing_some_of(keys, "~!@#$%^&*(){}`[]=\\-_;:/.,?<>'\"+|", "ASCII punctuation")
missing_some_of(keys, "0123456789", "digits") missing_some_of(keys, "0123456789", "digits")
missing_some_of(keys, ["f11_placeholder", "f12_placeholder"]) missing_required(keys,
missing_some_of(keys, ["esc", "tab"]) ["esc", "tab", "backspace", "delete",
missing_required(keys, ["backspace", "delete"], "Layout doesn't define some important keys") "f11_placeholder", "f12_placeholder"],
"Layout doesn't define some important keys")
unexpected_keys(keys, unexpected_keys(keys,
["copy", "paste", "cut", "selectAll", "shareText", ["copy", "paste", "cut", "selectAll", "shareText",
"pasteAsPlainText", "undo", "redo", "replaceText", "pasteAsPlainText", "undo", "redo", "replaceText",
@ -74,6 +80,8 @@ def check_layout(layout):
warn("Layout doesn't specify a script.") warn("Layout doesn't specify a script.")
for fname in sys.argv[1:]: for fname in sys.argv[1:]:
if fname in KNOWN_NOT_LAYOUT:
continue
layout = parse_layout(fname) layout = parse_layout(fname)
if layout == None: if layout == None:
print("Not a layout file: %s" % fname) print("Not a layout file: %s" % fname)