Make checkdoc--next-docstring use the doc-string-elt property
This follows from a fix for Bug#46918 and a discussion to use doc-string-elt: https://lists.gnu.org/archive/html/emacs-devel/2021-03/msg00232.html * lisp/emacs-lisp/checkdoc.el (checkdoc--next-docstring): Check for a non-nil doc-string-elt property, instead of hard-coding the supported symbols. Use that property to position point at the doc-string.
This commit is contained in:
parent
11d3af3c7b
commit
a01166562c
1 changed files with 9 additions and 24 deletions
|
@ -931,35 +931,20 @@ don't move point."
|
|||
;; Don't bug out if the file is empty (or a
|
||||
;; definition ends prematurely.
|
||||
(end-of-file)))
|
||||
(`(,(or 'defun 'defvar 'defcustom 'defmacro 'defconst 'defsubst 'defadvice
|
||||
'cl-defun 'cl-defgeneric 'cl-defmacro)
|
||||
(`(,(and (pred symbolp) def
|
||||
(let (and doc (guard doc)) (function-get def 'doc-string-elt)))
|
||||
,(pred symbolp)
|
||||
;; Require an initializer, i.e. ignore single-argument `defvar'
|
||||
;; forms, which never have a doc string.
|
||||
,_ . ,_)
|
||||
(down-list)
|
||||
;; Skip over function or macro name, symbol to be defined, and
|
||||
;; initializer or argument list.
|
||||
(forward-sexp 3)
|
||||
(skip-chars-forward " \n\t")
|
||||
t)
|
||||
(`(,'cl-defmethod
|
||||
,(pred symbolp)
|
||||
. ,rest)
|
||||
(down-list)
|
||||
(forward-sexp (pcase (car rest)
|
||||
;; No qualifier, so skip like we would have skipped in
|
||||
;; the first clause of the outer `pcase'.
|
||||
((pred listp) 3)
|
||||
(':extra
|
||||
;; Skip the :extra qualifier together with its string too.
|
||||
;; Skip any additional qualifier.
|
||||
(if (memq (nth 2 rest) '(:around :before :after))
|
||||
6
|
||||
5))
|
||||
;; Skip :before, :after or :around qualifier too.
|
||||
((or ':around ':before ':after)
|
||||
4)))
|
||||
;; Skip over function or macro name.
|
||||
(forward-sexp 1)
|
||||
;; And now skip until the docstring.
|
||||
(forward-sexp (1- ; We already skipped the function or macro name.
|
||||
(cond
|
||||
((numberp doc) doc)
|
||||
((functionp doc) (funcall doc)))))
|
||||
(skip-chars-forward " \n\t")
|
||||
t)))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue