logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git
commit: e7b84e1cf6d864b1df41e7a81c576baa9d7ca30a
parent ffc45ac80c74a935efc921e7bca5066b5b148f0b
Author: Joel Challis <git@zvecr.com>
Date:   Thu,  8 Feb 2024 06:34:48 +0000

Flag invalid keyboard features during lint (#22832)


Diffstat:

Mlib/python/qmk/cli/lint.py15+++++++++++++++
1 file changed, 15 insertions(+), 0 deletions(-)

diff --git a/lib/python/qmk/cli/lint.py b/lib/python/qmk/cli/lint.py @@ -13,6 +13,7 @@ from qmk.git import git_get_ignored_files from qmk.c_parse import c_source_files CHIBIOS_CONF_CHECKS = ['chconf.h', 'halconf.h', 'mcuconf.h', 'board.h'] +INVALID_KB_FEATURES = set(['encoder_map', 'dip_switch_map', 'combo', 'tap_dance', 'via']) def _list_defaultish_keymaps(kb): @@ -69,6 +70,17 @@ def _handle_json_errors(kb, info): return ok +def _handle_invalid_features(kb, info): + """Check for features that should never be enabled at the keyboard level + """ + ok = True + features = set(info.get('features', [])) + for found in features & INVALID_KB_FEATURES: + ok = False + cli.log.error(f'{kb}: Invalid keyboard level feature detected - {found}') + return ok + + def _chibios_conf_includenext_check(target): """Check the ChibiOS conf.h for the correct inclusion of the next conf.h """ @@ -154,6 +166,9 @@ def keyboard_check(kb): ok = False # Additional checks + if not _handle_invalid_features(kb, kb_info): + ok = False + rules_mk_assignment_errors = _rules_mk_assignment_only(kb) if rules_mk_assignment_errors: ok = False