|
|
|
|
@ -990,15 +990,38 @@ |
|
|
|
|
(autoload 'enable-paredit-mode "paredit" "Turn on |
|
|
|
|
pseudo-structural editing of Lisp code." t) |
|
|
|
|
(add-hook 'emacs-lisp-mode-hook #'enable-paredit-mode) |
|
|
|
|
(with-eval-after-load "paredit" |
|
|
|
|
(define-paredit-pair ?“ ?” "pretty-quotes") |
|
|
|
|
(require 'hydra) |
|
|
|
|
(defhydra hydra-paren (global-map "C-SPC") |
|
|
|
|
"paren slurp and barf" |
|
|
|
|
("C-f" paredit-forward-slurp-sexp "slurp forward") |
|
|
|
|
("M-f" paredit-forward-barf-sexp "barf forward") |
|
|
|
|
("C-b" paredit-backward-slurp-sexp "slurp backward") |
|
|
|
|
("M-b" paredit-backward-barf-sexp "barf backward"))) |
|
|
|
|
(require 'hydra) |
|
|
|
|
(require 'highlight-parentheses) |
|
|
|
|
|
|
|
|
|
(defun hydra-paren/hl-paren-force-fix () |
|
|
|
|
;;; This is needed b/c hl-parent caches the point position and |
|
|
|
|
;;; refuses to update if the point did not move |
|
|
|
|
(let ((hl-paren-last-point -1)) |
|
|
|
|
(hl-paren-highlight))) |
|
|
|
|
(defun hydra-paren/pre () |
|
|
|
|
(unless (boundp 'hydra-paren/hpm) |
|
|
|
|
(highlight-parentheses-mode 1)) |
|
|
|
|
(setq hydra-paren/hpm t)) |
|
|
|
|
(defun hydra-paren/post () |
|
|
|
|
(highlight-parentheses-mode -1) |
|
|
|
|
(makunbound 'hydra-paren/hpm)) |
|
|
|
|
(global-set-key |
|
|
|
|
(kbd "C-SPC") |
|
|
|
|
(defhydra hydra-paren |
|
|
|
|
(:pre hydra-paren/pre :post hydra-paren/post) |
|
|
|
|
"paren slurp and barf" |
|
|
|
|
("l" (progn |
|
|
|
|
(paredit-forward-slurp-sexp) |
|
|
|
|
(hydra-paren/hl-paren-force-fix)) "slurp forward") |
|
|
|
|
("j" (progn |
|
|
|
|
(paredit-forward-barf-sexp) |
|
|
|
|
(hydra-paren/hl-paren-force-fix)) "barf forward") |
|
|
|
|
("s" (progn |
|
|
|
|
(paredit-backward-slurp-sexp) |
|
|
|
|
(hydra-paren/hl-paren-force-fix)) "slurp backward") |
|
|
|
|
("f" (progn |
|
|
|
|
(paredit-backward-barf-sexp) |
|
|
|
|
(hydra-paren/hl-paren-force-fix)) "barf backward"))) |
|
|
|
|
#+END_SRC |
|
|
|
|
*** Replace last sexp |
|
|
|
|
I use this a lot to evaluate (e.g.) quick computations in files |
|
|
|
|
|