summaryrefslogtreecommitdiff
path: root/emacs/guix-read.el
diff options
context:
space:
mode:
authorAlex Kost <alezost@gmail.com>2015-11-18 22:28:13 +0300
committerAlex Kost <alezost@gmail.com>2016-01-02 17:25:35 +0300
commit4ba476f94992247cd54541ac09b0a516660f20e5 (patch)
treefc7fbed8d2aef413850f469fe96710d775942404 /emacs/guix-read.el
parent376af769f9cad7f521611c230d192ac639159fda (diff)
downloadpatches-4ba476f94992247cd54541ac09b0a516660f20e5.tar
patches-4ba476f94992247cd54541ac09b0a516660f20e5.tar.gz
emacs: Add 'guix-keyword-args-let'.
* emacs/guix-utils.el (guix-keyword-args-let): New macro. (guix-utils-font-lock-keywords): Add it. * emacs/guix-base.el (guix-define-buffer-type): Use it. * emacs/guix-list.el (guix-list-define-entry-type): Use it. * emacs/guix-read.el (guix-define-readers): Use it.
Diffstat (limited to 'emacs/guix-read.el')
-rw-r--r--emacs/guix-read.el28
1 files changed, 8 insertions, 20 deletions
diff --git a/emacs/guix-read.el b/emacs/guix-read.el
index e60af9c2f7..82eccbd678 100644
--- a/emacs/guix-read.el
+++ b/emacs/guix-read.el
@@ -66,26 +66,14 @@ keywords are available:
`<multiple-reader-name>-string' function returning a string
of multiple values separated the specified separator will be
defined."
- (let (completions-var
- completions-getter
- single-reader
- single-prompt
- multiple-reader
- multiple-prompt
- multiple-separator)
-
- ;; Process the keyword args.
- (while (keywordp (car args))
- (pcase (pop args)
- (`:completions-var (setq completions-var (pop args)))
- (`:completions-getter (setq completions-getter (pop args)))
- (`:single-reader (setq single-reader (pop args)))
- (`:single-prompt (setq single-prompt (pop args)))
- (`:multiple-reader (setq multiple-reader (pop args)))
- (`:multiple-prompt (setq multiple-prompt (pop args)))
- (`:multiple-separator (setq multiple-separator (pop args)))
- (_ (pop args))))
-
+ (guix-keyword-args-let args
+ ((completions-var :completions-var)
+ (completions-getter :completions-getter)
+ (single-reader :single-reader)
+ (single-prompt :single-prompt)
+ (multiple-reader :multiple-reader)
+ (multiple-prompt :multiple-prompt)
+ (multiple-separator :multiple-separator))
(let ((completions
(cond ((and completions-var completions-getter)
`(or ,completions-var