[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/setup 0bf5c62 09/17: Add :with-feature macro
From: |
Stefan Monnier |
Subject: |
[elpa] externals/setup 0bf5c62 09/17: Add :with-feature macro |
Date: |
Sat, 13 Mar 2021 18:15:13 -0500 (EST) |
branch: externals/setup
commit 0bf5c62ac3bf3f37dd200c4e2b783266725d9422
Author: Philip K <philipk@posteo.net>
Commit: Philip K <philipk@posteo.net>
Add :with-feature macro
---
setup.el | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/setup.el b/setup.el
index 8a65486..8370fc2 100644
--- a/setup.el
+++ b/setup.el
@@ -102,14 +102,10 @@ The following local macros are defined in a `setup'
body:\n\n"
(when shorthand
(push name body)
(setq name (funcall shorthand name)))))
- (let ((mode (if (string-match-p "-mode\\'" (symbol-name name))
- name
- (intern (format "%s-mode" name)))))
- `(let ((setup-name ',name))
- (ignore setup-name)
- (cl-macrolet ,setup-macros
- (catch 'setup-exit
- (:with-mode ,mode ,@body))))))
+ `(cl-macrolet ,setup-macros
+ (catch 'setup-exit
+ (:with-feature ,name ,@body)
+ t)))
;;;###autoload
(put 'setup 'function-documentation '(setup-make-docstring))
@@ -170,6 +166,18 @@ A documentation string."
;;; definitions of `setup' keywords
+(setup-define :with-feature
+ (lambda (name &rest body)
+ `(let ((setup-name ',name))
+ (ignore setup-name)
+ (:with-mode ,(if (string-match-p "-mode\\'" (symbol-name name))
+ name
+ (intern (format "%s-mode" name)))
+ ,@body)))
+ :signature '(SYSTEM &body BODY)
+ :documentation "Change the SYSTEM that BODY is configuring."
+ :indent 1)
+
(setup-define :with-mode
(lambda (mode &rest body)
`(let ((setup-mode ',mode)
- [elpa] branch externals/setup created (now 6d84649), Stefan Monnier, 2021/03/13
- [elpa] externals/setup 5b178a4 06/17: Fix issue with :bind, :unbind and :rebind, Stefan Monnier, 2021/03/13
- [elpa] externals/setup b000e73 02/17: Use keywords for local macros, Stefan Monnier, 2021/03/13
- [elpa] externals/setup 2624076 07/17: Add general conditional macro :if, Stefan Monnier, 2021/03/13
- [elpa] externals/setup 87fcdf4 12/17: Improve (append ...) and (prepend ...) support, Stefan Monnier, 2021/03/13
- [elpa] externals/setup 3767d24 16/17: Remove explicit dependency on cl-lib, Stefan Monnier, 2021/03/13
- [elpa] externals/setup 912860f 03/17: Update README, Stefan Monnier, 2021/03/13
- [elpa] externals/setup 35b4f18 11/17: Add :also-load macro, Stefan Monnier, 2021/03/13
- [elpa] externals/setup 0bf5c62 09/17: Add :with-feature macro,
Stefan Monnier <=
- [elpa] externals/setup d768953 10/17: Sort macros in alphabetical order, Stefan Monnier, 2021/03/13
- [elpa] externals/setup 6ee46ab 14/17: Add support for edebug, Stefan Monnier, 2021/03/13
- [elpa] externals/setup b413502 01/17: Initial import, Stefan Monnier, 2021/03/13
- [elpa] externals/setup 3d745d8 15/17: Update info node link, Stefan Monnier, 2021/03/13
- [elpa] externals/setup 36b5ef2 04/17: Add yasnippet configuration as another example, Stefan Monnier, 2021/03/13
- [elpa] externals/setup 761e2ea 05/17: Print signature with princ instead of prin1, Stefan Monnier, 2021/03/13
- [elpa] externals/setup 23e8eef 08/17: Fix syntax-error while defining :with-map, Stefan Monnier, 2021/03/13
- [elpa] externals/setup 6d84649 17/17: Update copyright notice, Stefan Monnier, 2021/03/13
- [elpa] externals/setup 0e95ccd 13/17: Document :repeatable property, Stefan Monnier, 2021/03/13