From 5edc8a842fd3c0ab6a654aea33a9875820b65660 Mon Sep 17 00:00:00 2001 From: David Morgan Date: Fri, 14 Oct 2022 13:46:02 +0100 Subject: [PATCH] Tweak auto-indent on yank advice --- .emacs.d/lisp/init-kill.el | 45 ++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/.emacs.d/lisp/init-kill.el b/.emacs.d/lisp/init-kill.el index 324f5f8..c750956 100644 --- a/.emacs.d/lisp/init-kill.el +++ b/.emacs.d/lisp/init-kill.el @@ -14,34 +14,31 @@ ([remap mark-sexp] . easy-mark)) (use-package emacs - :config - (defadvice exchange-point-and-mark (before deactivate-mark activate compile) - "When called with no active region, do not activate mark." - (interactive - (list (not (region-active-p))))) + :hook + (emacs-startup . (lambda () + ;; Based on code in prelude-editor.el + (defun yank-advised-indent-function (beg end) + "Do indentation, as long as the region isn't too large." + (if (<= (- end beg) 10000) + (indent-region beg end nil))) - (defun yank-advised-indent-function (beg end) - "Do indentation, as long as the region isn't too large." - (if (<= (- end beg) 1000) - (indent-region beg end nil))) - - (defmacro advise-commands (advice-name commands class &rest body) - "Apply advice named ADVICE-NAME to multiple COMMANDS. + (defmacro advise-commands (advice-name commands class &rest body) + "Apply advice named ADVICE-NAME to multiple COMMANDS. The body of the advice is in BODY." - `(progn - ,@(mapcar (lambda (command) - `(defadvice ,command (,class ,(intern (concat (symbol-name command) "-" advice-name)) activate) - ,@body)) - commands))) + `(progn + ,@(mapcar (lambda (command) + `(defadvice ,command (,class ,(intern (concat (symbol-name command) "-" advice-name)) activate) + ,@body)) + commands))) - (advise-commands "indent" (yank yank-pop) after - (if (and (not (ad-get-arg 0)) - (not (member major-mode '(conf-mode coffee-mode haml-mode python-mode slim-mode yaml-mode))) - (or (derived-mode-p 'prog-mode) - (member major-mode '(LaTeX-mode TeX-mode)))) - (let ((transient-mark-mode nil)) - (yank-advised-indent-function (region-beginning) (region-end)))))) + (advise-commands "indent" (yank yank-pop) after + (if (and (not (ad-get-arg 0)) + (not (member major-mode '(conf-mode coffee-mode haml-mode python-mode slim-mode yaml-mode))) + (or (derived-mode-p 'prog-mode) + (member major-mode '(LaTeX-mode TeX-mode)))) + (let ((transient-mark-mode nil)) + (yank-advised-indent-function (region-beginning) (region-end)))))))) (provide 'init-kill) ;;; init-kill.el ends here