mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-31 13:22:31 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
		
			826 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			826 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #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)
 | |
| };
 | 
