qmk-firmware/quantum
Zach White 08ce0142ba
Macros in JSON keymaps (#14374)
* macros in json keymaps

* add advanced macro support to json

* add a note about escaping macro strings

* add simple examples

* format json

* add support for language specific keymap extras

* switch to dictionaries instead of inline text for macros

* use SS_TAP on the innermost tap keycode

* add the new macro format to the schema

* document the macro limit

* add the json keyword for syntax highlighting

* fix format that vscode screwed up

* Update feature_macros.md

* add tests for macros

* change ding to beep

* add json support for SENDSTRING_BELL

* update doc based on feedback from sigprof

* document host_layout

* remove unused var

* improve carriage return handling

* support tab characters as well

* Update docs/feature_macros.md

Co-authored-by: Nick Brassel <nick@tzarc.org>

* escape backslash characters

* format

* flake8

* Update quantum/quantum_keycodes.h

Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-11-22 11:11:35 -08:00
..
audio Move Audio drivers from quantum to platform drivers folder (#14308) 2021-10-06 12:01:45 +11:00
backlight [Bug] Revert backlight pins on function call (#15205) 2021-11-19 06:06:55 +11:00
bootmagic Fix issues with VIA EEPROM init and bring in line with eeconfig functionality (#13243) 2021-08-20 21:02:53 -07:00
debounce Move tmk_core/common/<plat> (#13918) 2021-11-19 10:41:02 -08:00
encoder/tests Rework encoders to enable asymmetric split keyboards (#12090) 2021-11-20 09:06:08 -08:00
keymap_extras Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
led_matrix Require explicit enabling of RGB Matrix modes (#15018) 2021-11-15 10:41:04 -08:00
logging Move print/debug files to quantum (#12069) 2021-08-03 18:49:33 +01:00
process_keycode Format code according to conventions (#15195) 2021-11-17 20:42:00 +00:00
rgb_matrix Format code according to conventions (#15195) 2021-11-17 20:42:00 +00:00
rgblight Merge remote-tracking branch 'upstream/master' into develop 2021-07-25 12:17:15 +10:00
sequencer Move tmk_core/common/<plat> (#13918) 2021-11-19 10:41:02 -08:00
split_common fix broken macro in transport.h (#15239) 2021-11-20 20:09:21 +00:00
action_code.h Migrate platform independent code from tmk_core -> quantum (#13673) 2021-08-18 00:18:58 +01:00
action_layer.c Migrate platform independent code from tmk_core -> quantum (#13673) 2021-08-18 00:18:58 +01:00
action_layer.h Migrate platform independent code from tmk_core -> quantum (#13673) 2021-08-18 00:18:58 +01:00
action_macro.c Migrate platform independent code from tmk_core -> quantum (#13673) 2021-08-18 00:18:58 +01:00
action_macro.h Migrate platform independent code from tmk_core -> quantum (#13673) 2021-08-18 00:18:58 +01:00
action_tapping.c Manually format develop (#15003) 2021-11-01 19:18:33 +00:00
action_tapping.h Migrate platform independent code from tmk_core -> quantum (#13673) 2021-08-18 00:18:58 +01:00
action_util.c Fix issues with Oneshot disabling (#14934) 2021-11-01 09:41:24 -07:00
action_util.h Migrate platform independent code from tmk_core -> quantum (#13673) 2021-08-18 00:18:58 +01:00
action.c Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
action.h Manually format develop (#15003) 2021-11-01 19:18:33 +00:00
bitwise.c Migrate some tmk_core files to quantum (#11791) 2021-02-07 23:16:15 +00:00
bitwise.h Migrate some tmk_core files to quantum (#11791) 2021-02-07 23:16:15 +00:00
color.c Add support for hsv->rgb conversion without using CIE curve. (#9856) 2020-08-29 14:30:02 -07:00
color.h Relocate RGB/HSV color defs to a more fitting place (#13377) 2021-06-29 19:15:58 +01:00
command.c [Bug] Fix command feature if mousekey is enabled and using 3-speed setting (#14697) 2021-10-05 17:50:23 -07:00
command.h Refactor quantum/command.{c,h} for code size & {read,maintain}ability (#11842) 2021-08-07 17:12:57 +10:00
config_common.h Remove deprecated KEYMAP alias (#15037) 2021-11-03 12:18:11 +11:00
crc.c Add CRC8 calculation subsystem to quantum (#12641) 2021-06-18 00:09:43 +01:00
crc.h Add CRC8 calculation subsystem to quantum (#12641) 2021-06-18 00:09:43 +01:00
debounce.h Avoid 8-bit timer overflows in debounce algorithms (#12240) 2021-06-09 17:23:21 +10:00
deferred_exec.c Add support for deferred executors. (#14859) 2021-11-15 18:21:09 +00:00
deferred_exec.h Add support for deferred executors. (#14859) 2021-11-15 18:21:09 +00:00
digitizer.c Digitizer HID interface : absolute coordinates for mouse cursor (#12851) 2021-08-18 04:52:44 +10:00
digitizer.h Digitizer HID interface : absolute coordinates for mouse cursor (#12851) 2021-08-18 04:52:44 +10:00
dip_switch.c Align DIP_SWITCH_PINS_RIGHT implementation with encoders (#14079) 2021-08-20 10:15:11 +01:00
dip_switch.h Convert Dip Switch callbacks to boolean functions (#13399) 2021-07-01 08:22:21 -07:00
dynamic_keymap.c Move tmk_core/common/<plat> (#13918) 2021-11-19 10:41:02 -08:00
dynamic_keymap.h clang-format changes 2019-08-30 15:01:52 -07:00
dynamic_macro.h [Core] Convert Dynamic Macro to a Core Feature (#5948) 2019-11-04 22:59:13 -08:00
eeconfig.c Migrate STM32_EEPROM_ENABLE to use EEPROM_DRIVER (#14433) 2021-09-15 01:21:36 -07:00
eeconfig.h Reuse of EEPROM debounce logic (#14699) 2021-10-07 01:47:14 +01:00
encoder.c Rework encoders to enable asymmetric split keyboards (#12090) 2021-11-20 09:06:08 -08:00
encoder.h Rework encoders to enable asymmetric split keyboards (#12090) 2021-11-20 09:06:08 -08:00
haptic.c haptic: Feature to disable it when usb port is not configured or suspended. (#12692) 2021-11-02 16:54:29 +11:00
haptic.h haptic: Feature to disable it when usb port is not configured or suspended. (#12692) 2021-11-02 16:54:29 +11:00
joystick.c Hid joystick interface (#4226) 2020-08-29 14:30:02 -07:00
joystick.h 2020 November 28 Breaking Changes Update (#11053) 2020-11-28 12:02:18 -08:00
keyboard.c Fix develop after recent changes (#14975) 2021-10-28 23:43:57 +01:00
keyboard.h Migrate platform independent code from tmk_core -> quantum (#13673) 2021-08-18 00:18:58 +01:00
keycode_config.c Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
keycode_config.h 2021 May 29 Breaking Changes Update (#13034) 2021-05-29 14:38:50 -07:00
keycode_legacy.h Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
keycode.h Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
keymap_common.c Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
keymap.h Revert 14083 && 14144 (#14150) 2021-08-25 01:16:59 +01:00
led_tables.c Remove unused LED_BREATHING_TABLE 2020-03-06 22:29:01 -08:00
led_tables.h Change include guards in quantum/ to pragma once (#11239) 2020-12-26 15:53:12 +11:00
led.c Ensure single newline at EOF for core files (#11310) 2020-12-28 04:36:32 +11:00
led.h Migrate some tmk_core files to quantum (#11791) 2021-02-07 23:16:15 +00:00
main.c Add support for deferred executors. (#14859) 2021-11-15 18:21:09 +00:00
matrix_common.c Change the prototype of matrix_output_unselect_delay() (#13045) 2021-07-13 16:50:25 +09:00
matrix.c Optimize matrix scanning by removing variable shifts (#14947) 2021-10-26 20:01:57 -07:00
matrix.h Change the prototype of matrix_output_unselect_delay() (#13045) 2021-07-13 16:50:25 +09:00
mousekey.c mousekey: expose current report to users (#13069) 2021-07-03 00:50:47 -07:00
mousekey.h mousekey: expose current report to users (#13069) 2021-07-03 00:50:47 -07:00
pointing_device_drivers.c Rework and expand Pointing Device support (#14343) 2021-11-14 22:03:24 -08:00
pointing_device.c Add needed include to pointing_device.c (#15167) 2021-11-16 04:09:31 +11:00
pointing_device.h Rework and expand Pointing Device support (#14343) 2021-11-14 22:03:24 -08:00
programmable_button.c Add Support for USB programmable buttons (#12950) 2021-09-15 08:40:22 -07:00
programmable_button.h Add Support for USB programmable buttons (#12950) 2021-09-15 08:40:22 -07:00
quantum_keycodes.h Macros in JSON keymaps (#14374) 2021-11-22 11:11:35 -08:00
quantum.c Rework and expand Pointing Device support (#14343) 2021-11-14 22:03:24 -08:00
quantum.h Add support for deferred executors. (#14859) 2021-11-15 18:21:09 +00:00
raw_hid.h Relocate protocol files within tmk_core/common/ (#14972) 2021-10-28 22:31:59 +01:00
ring_buffer.h Migrate some tmk_core files to quantum (#11791) 2021-02-07 23:16:15 +00:00
send_string_keycodes.h Workaround for recent changes to mouse keycodes (#12367) 2021-03-24 19:38:35 +00:00
send_string.c Move SENDSTRING_BELL code to send_string.h (#13566) 2021-07-16 09:40:20 -07:00
send_string.h Remove hex_to_keycode and move tap_random_base64 to send_string.c (#12079) 2021-03-12 18:03:44 +11:00
sync_timer.c Relocate protocol files within tmk_core/common/ (#14972) 2021-10-28 22:31:59 +01:00
sync_timer.h Relocate protocol files within tmk_core/common/ (#14972) 2021-10-28 22:31:59 +01:00
util.h Migrate some tmk_core files to quantum (#11791) 2021-02-07 23:16:15 +00:00
variable_trace.c clang-format changes 2019-08-30 15:01:52 -07:00
variable_trace.h Change include guards in quantum/ to pragma once (#11239) 2020-12-26 15:53:12 +11:00
velocikey.c clang-format changes 2019-08-30 15:01:52 -07:00
velocikey.h Change include guards in quantum/ to pragma once (#11239) 2020-12-26 15:53:12 +11:00
via_ensure_keycode.h Basic keycode overhaul (#14726) 2021-11-03 22:22:17 -07:00
via.c Move tmk_core/common/<plat> (#13918) 2021-11-19 10:41:02 -08:00
via.h Fix issues with VIA EEPROM init and bring in line with eeconfig functionality (#13243) 2021-08-20 21:02:53 -07:00
virtser.h Relocate protocol files within tmk_core/common/ (#14972) 2021-10-28 22:31:59 +01:00
wpm.c Reimplements WPM feature to be smaller & precise (#13902) 2021-11-16 05:40:52 +11:00
wpm.h Reimplements WPM feature to be smaller & precise (#13902) 2021-11-16 05:40:52 +11:00