keymap_converter.py 913 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/usr/bin/env python
  2. import re
  3. class KeymapConverter:
  4. def __init__(self, filename):
  5. self.filename = filename
  6. def read_keymaps(self):
  7. with open(self.filename) as f:
  8. lines = f.readlines()
  9. mode = 0
  10. for line in lines:
  11. line = line[:-1]
  12. if mode == 0:
  13. if "KC_KEYMAP" in line:
  14. matches = re.match(r'.*\[(.*)\] = .*', line)
  15. if matches:
  16. layer_name = matches.group(1)
  17. layer_name = layer_name[1:].capitalize()
  18. print '###', layer_name
  19. print '```'
  20. mode = 1
  21. elif mode == 1:
  22. if "//" in line:
  23. print line[4:]
  24. elif ")" in line:
  25. mode = 0
  26. print '```'
  27. print
  28. elif line[-1] == ',':
  29. print "|" + line[5:-1] + "|"
  30. else:
  31. print "|" + line[5:] + "|"
  32. converter = KeymapConverter('keymap.c')
  33. converter.read_keymaps()