branch: externals/transient
commit db382992a3b0520148b1a5bb2150258eb701ad88
Author: Jonas Bernoulli <[email protected]>
Commit: Jonas Bernoulli <[email protected]>
transient--expand-define-args: Improve error messages
---
lisp/transient.el | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/lisp/transient.el b/lisp/transient.el
index 91450f2869..04ad117649 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -919,8 +919,9 @@ to the setup function:
[&optional ("interactive" interactive) def-body]))
(indent defun)
(doc-string 3))
- (pcase-let ((`(,class ,slots ,suffixes ,docstr ,body ,interactive-only)
- (transient--expand-define-args args arglist)))
+ (pcase-let
+ ((`(,class ,slots ,suffixes ,docstr ,body ,interactive-only)
+ (transient--expand-define-args args arglist 'transient-define-prefix)))
`(progn
(defalias ',name
,(if body
@@ -959,8 +960,9 @@ ARGLIST. The infix arguments are usually accessed by using
[&optional ("interactive" interactive) def-body]))
(indent defun)
(doc-string 3))
- (pcase-let ((`(,class ,slots ,_ ,docstr ,body ,interactive-only)
- (transient--expand-define-args args arglist)))
+ (pcase-let
+ ((`(,class ,slots ,_ ,docstr ,body ,interactive-only)
+ (transient--expand-define-args args arglist 'transient-define-suffix)))
`(progn
(defalias ',name
,(if (and (not body) class (oref-default class definition))
@@ -1008,8 +1010,9 @@ keyword.
[&rest keywordp sexp]))
(indent defun)
(doc-string 3))
- (pcase-let ((`(,class ,slots ,_ ,docstr ,_ ,interactive-only)
- (transient--expand-define-args args arglist t)))
+ (pcase-let
+ ((`(,class ,slots ,_ ,docstr ,_ ,interactive-only)
+ (transient--expand-define-args args arglist 'transient-define-infix
t)))
`(progn
(defalias ',name #'transient--default-infix-command)
(put ',name 'interactive-only ,interactive-only)
@@ -1064,7 +1067,7 @@ commands are aliases for."
#'transient--find-function-advised-original)
(eval-and-compile ;transient--expand-define-args
- (defun transient--expand-define-args (args &optional arglist nobody)
+ (defun transient--expand-define-args (args arglist form &optional nobody)
(unless (listp arglist)
(error "Mandatory ARGLIST is missing"))
(let (class keys suffixes docstr declare (interactive-only t))
@@ -1092,9 +1095,9 @@ commands are aliases for."
(cond
((not args))
(nobody
- (error "transient-define-infix: No function body allowed"))
+ (error "%s: No function body allowed" form))
((not (eq (car-safe (nth (if declare 1 0) args)) 'interactive))
- (error "transient-define-*: Interactive form missing")))
+ (error "%s: Interactive form missing" form)))
(list (if (eq (car-safe class) 'quote)
(cadr class)
class)