[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 27428d2: * lisp/emacs-lisp/cl-generic.el: Make `doc-string` prop
From: |
Stefan Monnier |
Subject: |
master 27428d2: * lisp/emacs-lisp/cl-generic.el: Make `doc-string` prop work with qualifiers |
Date: |
Thu, 4 Mar 2021 18:21:02 -0500 (EST) |
branch: master
commit 27428d22c8fd4f53a268484d235827122752d68a
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/cl-generic.el: Make `doc-string` prop work with qualifiers
(cl--defmethod-doc-pos): New function.
(cl-defmethod): Use it.
---
lisp/emacs-lisp/cl-generic.el | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el
index 89fc0b1..e78f88e 100644
--- a/lisp/emacs-lisp/cl-generic.el
+++ b/lisp/emacs-lisp/cl-generic.el
@@ -425,6 +425,16 @@ the specializer used will be the one returned by BODY."
(defun cl-generic--method-qualifier-p (x)
(not (listp x)))
+(defun cl--defmethod-doc-pos ()
+ "Return the index of the docstring for a `cl-defmethod'.
+Presumes point is at the end of the `cl-defmethod' symbol."
+ (save-excursion
+ (let ((n 2))
+ (while (and (ignore-errors (forward-sexp 1) t)
+ (not (eq (char-before) ?\))))
+ (cl-incf n))
+ n)))
+
;;;###autoload
(defmacro cl-defmethod (name args &rest body)
"Define a new method for generic function NAME.
@@ -464,7 +474,7 @@ The set of acceptable TYPEs (also called \"specializers\")
is defined
\(and can be extended) by the various methods of `cl-generic-generalizers'.
\(fn NAME [QUALIFIER] ARGS &rest [DOCSTRING] BODY)"
- (declare (doc-string 3) (indent defun)
+ (declare (doc-string cl--defmethod-doc-pos) (indent defun)
(debug
(&define ; this means we are defining something
[&name [sexp ;Allow (setf ...) additionally to symbols.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 27428d2: * lisp/emacs-lisp/cl-generic.el: Make `doc-string` prop work with qualifiers,
Stefan Monnier <=