2016-05-01 01:06:25 -04:00
|
|
|
;;; 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)
|
2016-05-20 22:37:30 -04:00
|
|
|
(setq fn-name (intern (format "doom--rotate-%s"
|
2016-05-01 01:06:25 -04:00
|
|
|
(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
|