|
|
- #include "ridingqwerty.h"
- #include "tapdances.h"
-
- void braces_finished (qk_tap_dance_state_t *state, void *user_data) {
- if ((state->count == 1) || (state->count == 3)) {
- register_code(KC_LSFT);
- }
- }
-
- void braces_reset (qk_tap_dance_state_t *state, void *user_data) {
- // two or three taps for "[]"/"{}"
- if ((state->count == 2) || (state->count == 3)) {
- tap_code(KC_LBRC);
- tap_code(KC_RBRC);
- }
- // one tap for "()"
- else if (state->count == 1) {
- tap_code(KC_9);
- tap_code(KC_0);
- }
-
- // unregister the shift unconditionally
- unregister_code(KC_LSFT);
-
- // move back one space, inside the braces
- if (state->count <= 3) {
- tap_code(KC_LEFT);
- }
- }
-
- qk_tap_dance_action_t tap_dance_actions[] = {
- [TD_BRACES] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, braces_finished, braces_reset)
- };
|