mirror of
https://github.com/Julow/Unexpected-Keyboard.git
synced 2024-11-21 23:03:11 +01:00
check_layout: Warn about duplicate keys
This commit is contained in:
parent
8d7b3efeb1
commit
eeae964ae6
@ -6,8 +6,9 @@ Layout doesn't define some important keys, missing: f11_placeholder, f12_placeho
|
|||||||
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
|
||||||
|
Duplicate keys: (, )
|
||||||
Layout includes some ASCII punctuation but not all, missing: ", %, ', ,, /, ;, <, =, >, ?, [, \, ], `, {, |, }
|
Layout includes some ASCII punctuation but not all, missing: ", %, ', ,, /, ;, <, =, >, ?, [, \, ], `, {, |, }
|
||||||
1 warnings
|
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
|
1 warnings
|
||||||
@ -33,11 +34,13 @@ Layout includes some ASCII punctuation but not all, missing: #, $, %, &, ', (, )
|
|||||||
Layout doesn't define some important keys, missing: f11_placeholder, f12_placeholder
|
Layout doesn't define some important keys, missing: f11_placeholder, f12_placeholder
|
||||||
2 warnings
|
2 warnings
|
||||||
# res/xml/deva_inscript.xml
|
# res/xml/deva_inscript.xml
|
||||||
|
Duplicate keys: , ।
|
||||||
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 define some important keys, missing: f11_placeholder, f12_placeholder
|
||||||
2 warnings
|
3 warnings
|
||||||
# res/xml/grek_qwerty.xml
|
# res/xml/grek_qwerty.xml
|
||||||
0 warnings
|
Duplicate keys: ;
|
||||||
|
1 warnings
|
||||||
# res/xml/hang_dubeolsik_kr.xml
|
# res/xml/hang_dubeolsik_kr.xml
|
||||||
0 warnings
|
0 warnings
|
||||||
# res/xml/hebr_1_il.xml
|
# res/xml/hebr_1_il.xml
|
||||||
@ -57,8 +60,9 @@ Layout redefines the bottom row but some important keys are missing, missing: sw
|
|||||||
# res/xml/latn_dvorak.xml
|
# res/xml/latn_dvorak.xml
|
||||||
0 warnings
|
0 warnings
|
||||||
# res/xml/latn_neo2.xml
|
# res/xml/latn_neo2.xml
|
||||||
|
Duplicate keys: -
|
||||||
Layout redefines the bottom row but some important keys are missing, missing: switch_forward
|
Layout redefines the bottom row but some important keys are missing, missing: switch_forward
|
||||||
1 warnings
|
2 warnings
|
||||||
# res/xml/latn_qwerty_br.xml
|
# res/xml/latn_qwerty_br.xml
|
||||||
0 warnings
|
0 warnings
|
||||||
# res/xml/latn_qwerty_es.xml
|
# res/xml/latn_qwerty_es.xml
|
||||||
@ -74,7 +78,8 @@ Layout redefines the bottom row but some important keys are missing, missing: sw
|
|||||||
# res/xml/latn_qwerty_ro.xml
|
# res/xml/latn_qwerty_ro.xml
|
||||||
0 warnings
|
0 warnings
|
||||||
# res/xml/latn_qwerty_se.xml
|
# res/xml/latn_qwerty_se.xml
|
||||||
0 warnings
|
Duplicate keys: !, ', ,, -, ., ?
|
||||||
|
1 warnings
|
||||||
# res/xml/latn_qwerty_tr.xml
|
# res/xml/latn_qwerty_tr.xml
|
||||||
Layout doesn't define some important keys, missing: f11_placeholder, f12_placeholder
|
Layout doesn't define some important keys, missing: f11_placeholder, f12_placeholder
|
||||||
1 warnings
|
1 warnings
|
||||||
|
@ -36,17 +36,22 @@ def unexpected_keys(keys, symbols, msg):
|
|||||||
|
|
||||||
def parse_layout(fname):
|
def parse_layout(fname):
|
||||||
keys = set()
|
keys = set()
|
||||||
|
dup = set()
|
||||||
root = ET.parse(fname).getroot()
|
root = ET.parse(fname).getroot()
|
||||||
if root.tag != "keyboard":
|
if root.tag != "keyboard":
|
||||||
return None
|
return None
|
||||||
for row in root:
|
for row in root:
|
||||||
for key in row:
|
for key in row:
|
||||||
for attr in key.keys():
|
for attr in key.keys():
|
||||||
keys.add(key.get(attr).removeprefix("\\"))
|
if attr.startswith("key"):
|
||||||
return root, keys
|
k = key.get(attr).removeprefix("\\")
|
||||||
|
if k in keys: dup.add(k)
|
||||||
|
keys.add(k)
|
||||||
|
return root, keys, dup
|
||||||
|
|
||||||
def check_layout(layout):
|
def check_layout(layout):
|
||||||
root, keys = layout
|
root, keys, dup = layout
|
||||||
|
if len(dup) > 0: warn("Duplicate keys: " + key_list_str(dup))
|
||||||
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_required(keys,
|
missing_required(keys,
|
||||||
|
Loading…
Reference in New Issue
Block a user