about summary refs log tree commit diff
path: root/configs/shared/emacs/.emacs.d/wpc/macros.el
diff options
context:
space:
mode:
authorWilliam Carroll <wpcarro@gmail.com>2018-09-10T18·51-0400
committerWilliam Carroll <wpcarro@gmail.com>2018-09-10T18·53-0400
commit17ee0e400bef47c371afcae76037f9ea6a44ad13 (patch)
tree0e5efee6f00e402890e91f3eceb4b29408a498b6 /configs/shared/emacs/.emacs.d/wpc/macros.el
parent8b2fadf4776b7ddb4a67b4bc8ff6463770e56028 (diff)
Support Vim, Tmux, Emacs with Stow
After moving off of Meta, Dotfiles has a greater responsibility to
manage configs. Vim, Tmux, and Emacs are now within Stow's purview.
Diffstat (limited to 'configs/shared/emacs/.emacs.d/wpc/macros.el')
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/macros.el33
1 files changed, 33 insertions, 0 deletions
diff --git a/configs/shared/emacs/.emacs.d/wpc/macros.el b/configs/shared/emacs/.emacs.d/wpc/macros.el
new file mode 100644
index 000000000000..aedd6f5b3cb9
--- /dev/null
+++ b/configs/shared/emacs/.emacs.d/wpc/macros.el
@@ -0,0 +1,33 @@
+;;; macros.el --- Helpful variables for making my ELisp life more enjoyable -*- lexical-binding: t -*-
+;; Authpr: William Carroll <wpcarro@gmail.com>
+
+;;; Commentary:
+;; This file contains helpful variables that I use in my ELisp development.
+
+;;; Code:
+
+(require 'dash)
+(require 's)
+(require 'string-functions)
+
+(defmacro xi (&rest FORMS)
+  `(lambda ,(--filter (s-contains? (symbol-name it)
+                                   (prin1-to-string FORMS))
+                      '(x1 x2 x3 x4 x5))
+     ,FORMS))
+
+(defmacro enable (mode)
+  "Helper for enabling MODE. Useful in `add-hook' calls."
+  `#'(lambda nil (,mode 1)))
+
+(defmacro disable (mode)
+  "Helper for disabling MODE. Useful in `add-hook' calls."
+  `#'(lambda nil (,mode -1)))
+
+(defmacro add-hooks (modes)
+  "Add multiple MODES for the CALLBACK."
+  `(dolist (mode ,modes)
+     (add-hook (symbol/ensure-hookified mode) ,callback)))
+
+(provide 'macros)
+;;; macros.el ends here