diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2021-03-04 18:20:56 -0500 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2021-03-04 18:20:56 -0500 |
commit | 27428d22c8fd4f53a268484d235827122752d68a (patch) | |
tree | 600340e08cd4692a8887b02a50ee5d08a8e44c57 /lisp/emacs-lisp/cl-generic.el | |
parent | 0981712e5764c9e553d2160139cca6c83afb0946 (diff) | |
download | emacs-27428d22c8fd4f53a268484d235827122752d68a.tar.gz emacs-27428d22c8fd4f53a268484d235827122752d68a.tar.bz2 emacs-27428d22c8fd4f53a268484d235827122752d68a.zip |
* lisp/emacs-lisp/cl-generic.el: Make `doc-string` prop work with qualifiers
(cl--defmethod-doc-pos): New function.
(cl-defmethod): Use it.
Diffstat (limited to 'lisp/emacs-lisp/cl-generic.el')
-rw-r--r-- | lisp/emacs-lisp/cl-generic.el | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el index 89fc0b16d02..e78f88e30cf 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. |