Browse code
refactor(emacs,evil): redo smartparens keybindings as a keymap
Edward Langley authored on 22/12/2022 07:28:42
Showing 1 changed files
Showing 1 changed files
... | ... |
@@ -1,8 +1,8 @@ |
1 |
-(defun wrap-with-doublequote (&optional arg) |
|
1 |
+(defun fwoar:wrap-with-doublequote (&optional arg) |
|
2 | 2 |
(interactive "P") |
3 | 3 |
(sp-wrap-with-pair "\"")) |
4 | 4 |
|
5 |
-(defun wrap-in-dollar-brace |
|
5 |
+(defun fwoar:wrap-in-dollar-brace |
|
6 | 6 |
(&optional arg) |
7 | 7 |
(interactive "P") |
8 | 8 |
(sp-wrap-with-pair "${")) |
... | ... |
@@ -67,90 +67,64 @@ |
67 | 67 |
:config |
68 | 68 |
(global-evil-surround-mode)) |
69 | 69 |
|
70 |
+(define-keymap :prefix 'fwoar:smartparens-map |
|
71 |
+ ;; wrapping |
|
72 |
+ "W" #'sp-wrap-round |
|
73 |
+ "C-W" #'sp-wrap-round |
|
74 |
+ "w" (define-keymap :prefix 'fwoar:smartparens-wrap-map |
|
75 |
+ "(" #'sp-wrap-round |
|
76 |
+ ")" #'sp-wrap-round |
|
77 |
+ |
|
78 |
+ "{" #'sp-wrap-curly |
|
79 |
+ "}" #'sp-wrap-curly |
|
80 |
+ |
|
81 |
+ "[" #'sp-wrap-square |
|
82 |
+ "]" #'sp-wrap-square |
|
83 |
+ |
|
84 |
+ "\"" #'fwoar:wrap-with-doublequote |
|
85 |
+ "$" #'fwoar:wrap-in-dollar-brace) |
|
86 |
+ |
|
87 |
+ ;; narrowing |
|
88 |
+ "n" (define-keymap :prefix 'fwoar:smartparens-narrow-map |
|
89 |
+ "(" #'sp-narrow-to-sexp |
|
90 |
+ ")" #'sp-narrow-to-sexp |
|
91 |
+ "d" #'narrow-to-defun |
|
92 |
+ "n" #'narrow-to-defun |
|
93 |
+ "r" #'narrow-to-region |
|
94 |
+ "w" #'widen) |
|
95 |
+ |
|
96 |
+ ;; splicing |
|
97 |
+ "S" #'sp-splice-sexp |
|
98 |
+ "A" #'sp-splice-sexp-killing-backward |
|
99 |
+ "D" #'sp-splice-sexp-killing-forward |
|
100 |
+ "F" #'sp-splice-sexp-killing-around |
|
101 |
+ |
|
102 |
+ ;; paren manipulation |
|
103 |
+ "," #'sp-backward-barf-sexp |
|
104 |
+ "." #'sp-forward-barf-sexp |
|
105 |
+ "<" #'sp-backward-slurp-sexp |
|
106 |
+ ">" #'sp-forward-slurp-sexp |
|
107 |
+ |
|
108 |
+ ;; misc |
|
109 |
+ |
|
110 |
+ "~" 'sp-convolute-sexp |
|
111 |
+ "a" 'sp-absorb-sexp |
|
112 |
+ "e" 'sp-emit-sexp |
|
113 |
+ "`" 'sp-clone-sexp |
|
114 |
+ "J" 'sp-join-sexp |
|
115 |
+ "|" 'sp-split-sexp) |
|
116 |
+ |
|
117 |
+ |
|
70 | 118 |
(use-package evil-smartparens |
71 | 119 |
:ensure t |
72 | 120 |
:delight |
73 | 121 |
:after evil smartparens |
74 | 122 |
:config |
123 |
+ |
|
75 | 124 |
(evil-smartparens-mode 1) |
76 | 125 |
|
77 |
- (progn ;; wrapping |
|
78 |
- (evil-define-key 'normal 'global (kbd ",W") 'sp-wrap-round) |
|
79 |
- (evil-define-key 'normal 'global (kbd "C-, W") 'sp-wrap-round) |
|
80 |
- (evil-define-key 'normal 'global (kbd "C-, C-W") 'sp-wrap-round) |
|
81 |
- |
|
82 |
- (evil-define-key 'normal 'global (kbd ",w(") 'sp-wrap-round) |
|
83 |
- (evil-define-key 'normal 'global (kbd ",w)") 'sp-wrap-round) |
|
84 |
- (define-key global-map (kbd "C-, (") 'sp-wrap-round) |
|
85 |
- (define-key global-map (kbd "C-, C-(") 'sp-wrap-round) |
|
86 |
- (define-key global-map (kbd "C-, )") 'sp-wrap-round) |
|
87 |
- (define-key global-map (kbd "C-, C-)") 'sp-wrap-round) |
|
88 |
- |
|
89 |
- (evil-define-key 'normal 'global (kbd ",w$") 'wrap-in-dollar-brace) |
|
90 |
- (evil-define-key 'normal 'global (kbd "C-, $") 'wrap-in-dollar-brace) |
|
91 |
- (evil-define-key 'normal 'global (kbd ",w{") 'sp-wrap-curly) |
|
92 |
- (evil-define-key 'normal 'global (kbd ",w}") 'sp-wrap-curly) |
|
93 |
- (define-key global-map (kbd "C-, {") 'sp-wrap-curly) |
|
94 |
- (define-key global-map (kbd "C-, C-{") 'sp-wrap-curly) |
|
95 |
- (define-key global-map (kbd "C-, }") 'sp-wrap-curly) |
|
96 |
- (define-key global-map (kbd "C-, C-}") 'sp-wrap-curly) |
|
97 |
- (define-key global-map (kbd "C-, w {") 'sp-wrap-curly) |
|
98 |
- (define-key global-map (kbd "C-, w }") 'sp-wrap-curly) |
|
99 |
- |
|
100 |
- (evil-define-key 'normal 'global (kbd ",w[") 'sp-wrap-square) |
|
101 |
- (evil-define-key 'normal 'global (kbd ",w]") 'sp-wrap-square) |
|
102 |
- (define-key global-map (kbd "C-, w [") 'sp-wrap-square) |
|
103 |
- (define-key global-map (kbd "C-, <escape>") 'sp-wrap-square) |
|
104 |
- (define-key global-map (kbd "C-, [") 'sp-wrap-square) |
|
105 |
- (define-key global-map (kbd "C-, w ]") 'sp-wrap-square) |
|
106 |
- (define-key global-map (kbd "C-, C-]") 'sp-wrap-square) |
|
107 |
- (define-key global-map (kbd "C-, ]") 'sp-wrap-square) |
|
108 |
- |
|
109 |
- (evil-define-key 'normal 'global (kbd ",w\"") 'wrap-with-doublequote) |
|
110 |
- (comment (define-key cider-mode-map (kbd "C-, w \"") 'sp-wrap-doublequote))) |
|
111 |
- |
|
112 |
- (progn ;; splicing |
|
113 |
- (evil-define-key 'normal 'global (kbd ",S") 'sp-splice-sexp) |
|
114 |
- (comment (define-key cider-mode-map (kbd "C-, S") 'sp-splice-sexp) |
|
115 |
- (define-key cider-mode-map (kbd "C-, C-S") 'sp-splice-sexp)) |
|
116 |
- (evil-define-key 'normal 'global (kbd ",A") 'sp-splice-sexp-killing-backward) |
|
117 |
- (comment (define-key cider-mode-map (kbd "C-, A") 'sp-splice-sexp-killing-backward) |
|
118 |
- (define-key cider-mode-map (kbd "C-, C-A") 'sp-splice-sexp-killing-backward)) |
|
119 |
- (evil-define-key 'normal 'global (kbd ",D") 'sp-splice-sexp-killing-forward) |
|
120 |
- (comment (define-key cider-mode-map (kbd "C-, D") 'sp-splice-sexp-killing-forward) |
|
121 |
- (define-key cider-mode-map (kbd "C-, C-D") 'sp-splice-sexp-killing-forward)) |
|
122 |
- (evil-define-key 'normal 'global (kbd ",F") 'sp-splice-sexp-killing-around) |
|
123 |
- (comment (define-key cider-mode-map (kbd "C-, F") 'sp-splice-sexp-killing-around) |
|
124 |
- (define-key cider-mode-map (kbd "C-, C-F") 'sp-splice-sexp-killing-around))) |
|
125 |
- |
|
126 |
- (progn ;; barf/slurp |
|
127 |
- (evil-define-key 'normal 'global (kbd ",,") 'sp-backward-barf-sexp) |
|
128 |
- (comment (define-key cider-mode-map (kbd "C-, ,") 'sp-backward-barf-sexp) |
|
129 |
- (define-key cider-mode-map (kbd "C-, C-,") 'sp-backward-barf-sexp)) |
|
130 |
- (evil-define-key 'normal 'global (kbd ",.") 'sp-forward-barf-sexp) |
|
131 |
- (comment (define-key cider-mode-map (kbd "C-, .") 'sp-forward-barf-sexp) |
|
132 |
- (define-key cider-mode-map (kbd "C-, C-.") 'sp-forward-barf-sexp)) |
|
133 |
- (evil-define-key 'normal 'global (kbd ",<") 'sp-backward-slurp-sexp) |
|
134 |
- (comment (define-key cider-mode-map (kbd "C-, <") 'sp-backward-slurp-sexp) |
|
135 |
- (define-key cider-mode-map (kbd "C-, C-<") 'sp-backward-slurp-sexp)) |
|
136 |
- (evil-define-key 'normal 'global (kbd ",>") 'sp-forward-slurp-sexp) |
|
137 |
- (comment (define-key cider-mode-map (kbd "C-, >") 'sp-forward-slurp-sexp) |
|
138 |
- (define-key cider-mode-map (kbd "C-, C->") 'sp-forward-slurp-sexp))) |
|
139 |
- |
|
140 |
- (progn ;; misc |
|
141 |
- (evil-define-key 'normal 'global (kbd ",~") 'sp-convolute-sexp) |
|
142 |
- (evil-define-key 'normal 'global (kbd ",a") 'sp-absorb-sexp) |
|
143 |
- (evil-define-key 'normal 'global (kbd ",e") 'sp-emit-sexp) |
|
144 |
- (evil-define-key 'normal 'global (kbd ",`") 'sp-clone-sexp) |
|
145 |
- (evil-define-key 'normal 'global (kbd ",J") 'sp-join-sexp) |
|
146 |
- (evil-define-key 'normal 'global (kbd ",|") 'sp-split-sexp)) |
|
147 |
- |
|
148 |
- (progn ;; narrowing |
|
149 |
- (evil-define-key 'normal 'global (kbd "<leader>n(") 'sp-narrow-to-sexp) |
|
150 |
- (evil-define-key 'normal 'global (kbd "<leader>n)") 'sp-narrow-to-sexp) |
|
151 |
- (evil-define-key 'normal 'global (kbd "<leader>nn") 'narrow-to-defun) |
|
152 |
- (evil-define-key 'normal 'global (kbd "<leader>nr") 'narrow-to-region) |
|
153 |
- (evil-define-key 'normal 'global (kbd "<leader>nw") 'widen))) |
|
126 |
+ (define-key global-map (kbd "C-,") 'fwoar:smartparens-map) |
|
127 |
+ (evil-define-key 'normal 'global (kbd ",") 'fwoar:smartparens-map)) |
|
154 | 128 |
|
155 | 129 |
(defun fwoar/setup-evil-collection-for-mode (mode) |
156 | 130 |
(evil-collection-require mode) |