blob: aedd6f5b3cb98c2c36d2f43d9c23ad2782264c55 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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
|