From fe88ff70ffff9e9483689c96487aeee1277c6796 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 1 May 2016 01:06:25 -0400 Subject: [PATCH] Add def-rotate! for rotate-text --- core/core-editor.el | 12 +----------- core/defuns/macros-rotate-text.el | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 11 deletions(-) create mode 100644 core/defuns/macros-rotate-text.el diff --git a/core/core-editor.el b/core/core-editor.el index 2f0137e1c..d880c0a7c 100644 --- a/core/core-editor.el +++ b/core/core-editor.el @@ -263,17 +263,7 @@ enable multiple minor modes for the same regexp.") (use-package rotate-text :commands (rotate-text rotate-text-backward) - :init - (add-hook! (emacs-lisp-mode lisp-mode) - (setq rotate-text-local-symbols - '(("t" "nil") - ("let" "let*") - ("when" "unless") - ("append" "prepend") - ("advice-add" "advice-remove") - ("add-hook" "add-hook!" "remove-hook")))) - :config - (push '("true" "false") rotate-text-words)) + :config (push '("true" "false") rotate-text-words)) (use-package smart-forward :commands (smart-up smart-down smart-left smart-right)) diff --git a/core/defuns/macros-rotate-text.el b/core/defuns/macros-rotate-text.el new file mode 100644 index 000000000..6ac908f63 --- /dev/null +++ b/core/defuns/macros-rotate-text.el @@ -0,0 +1,24 @@ +;;; macros-rotate-text.el + +;;;###autoload +(defmacro def-rotate! (modes &rest rest) + (declare (indent 1)) + (let ((modes (if (listp modes) modes (list modes))) + (symbols (plist-get rest :symbols)) + (words (plist-get rest :words)) + (patterns (plist-get rest :patterns)) + fn-name) + (setq fn-name (intern (format "narf--rotate-%s" + (s-join "-" (mapcar 'symbol-name modes))))) + `(progn + (defun ,fn-name () + ,(when symbols + `(setq-local rotate-text-local-symbols ',symbols)) + ,(when words + `(setq-local rotate-text-local-words ',words)) + ,(when patterns + `(setq-local rotate-text-local-patterns ',patterns))) + (add-hook! ,modes ',fn-name)))) + +(provide 'macros-rotate-text) +;;; macros-rotate-text.el ends here