summaryrefslogtreecommitdiffstats
path: root/lib/python/qmk/cli/generate
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python/qmk/cli/generate')
-rwxr-xr-xlib/python/qmk/cli/generate/keyboard_h.py15
-rw-r--r--lib/python/qmk/cli/generate/keycodes.py5
2 files changed, 15 insertions, 5 deletions
diff --git a/lib/python/qmk/cli/generate/keyboard_h.py b/lib/python/qmk/cli/generate/keyboard_h.py
index fa4036e39a..b9e89032b9 100755
--- a/lib/python/qmk/cli/generate/keyboard_h.py
+++ b/lib/python/qmk/cli/generate/keyboard_h.py
@@ -37,14 +37,19 @@ def _generate_layouts(keyboard, kb_info_json):
row, col = key_data['matrix']
identifier = f'k{ROW_LETTERS[row]}{COL_LETTERS[col]}'
- try:
- layout_matrix[row][col] = identifier
- layout_keys.append(identifier)
- except IndexError:
+ if row >= row_num or col >= col_num:
key_name = key_data.get('label', identifier)
- cli.log.error(f'{keyboard}/{layout_name}: Matrix data out of bounds at index {index} ({key_name}): [{row}, {col}]')
+ if row >= row_num:
+ cli.log.error(f'{keyboard}/{layout_name}: Matrix row for key {index} ({key_name}) is {row} but must be less than {row_num}')
+
+ if col >= col_num:
+ cli.log.error(f'{keyboard}/{layout_name}: Matrix column for key {index} ({key_name}) is {col} but must be less than {col_num}')
+
return []
+ layout_matrix[row][col] = identifier
+ layout_keys.append(identifier)
+
lines.append('')
lines.append(f'#define {layout_name}({", ".join(layout_keys)}) {{ \\')
diff --git a/lib/python/qmk/cli/generate/keycodes.py b/lib/python/qmk/cli/generate/keycodes.py
index 3b69b17ed1..ed8b6827bd 100644
--- a/lib/python/qmk/cli/generate/keycodes.py
+++ b/lib/python/qmk/cli/generate/keycodes.py
@@ -96,6 +96,11 @@ def _generate_helpers(lines, keycodes):
def _generate_aliases(lines, keycodes):
+ # Work around ChibiOS ch.h include guard
+ if 'CH_H' in [value['key'] for value in keycodes['aliases'].values()]:
+ lines.append('')
+ lines.append('#undef CH_H')
+
lines.append('')
lines.append('// Aliases')
for key, value in keycodes["aliases"].items():