keycodes: fix keycode serialization for layered keycodes

main
Ilya Zhuravlev 2021-03-22 11:53:59 -04:00
parent 4fc12b69b2
commit 92f13ad189
2 changed files with 11 additions and 2 deletions

View File

@ -89,7 +89,7 @@ class Keycode:
outer = cls.find_outer_keycode(code) outer = cls.find_outer_keycode(code)
inner = cls.find(code & 0xFF) inner = cls.find(code & 0xFF)
if outer is not None and inner is not None: if outer is not None and inner is not None:
return outer.qmk_id.replace("(kc)", "({})".format(inner.qmk_id)) return outer.qmk_id.replace("kc", inner.qmk_id)
return code return code
@classmethod @classmethod

View File

@ -1,11 +1,20 @@
import unittest import unittest
from keycodes import Keycode from keycodes import Keycode, recreate_keyboard_keycodes
class FakeKeyboard:
layers = 4
macro_count = 16
class TestKeycode(unittest.TestCase): class TestKeycode(unittest.TestCase):
def test_serialize(self): def test_serialize(self):
recreate_keyboard_keycodes(FakeKeyboard())
# at a minimum, we should be able to deserialize/serialize everything # at a minimum, we should be able to deserialize/serialize everything
for x in range(2 ** 16): for x in range(2 ** 16):
s = Keycode.serialize(x) s = Keycode.serialize(x)