mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-29 07:58:28 +00:00
Warn about overly long docstring in lambda
* lisp/emacs-lisp/bytecomp.el (byte-compile-docstring-length-warn): Warn about overly long docstring in lambda. (Bug#44858) (byte-compile--wide-docstring-p): Improve comment. * test/lisp/emacs-lisp/bytecomp-tests.el ("warn-wide-docstring-defun.el"): Update to test for the above new warning.
This commit is contained in:
parent
89bac05aaa
commit
c51b1c02db
@ -1666,7 +1666,10 @@ URLs."
|
||||
(seq "(" (* (not ")")) ")")))
|
||||
")")))
|
||||
""
|
||||
;; Heuristic: assume these substitutions are of some length N.
|
||||
;; Heuristic: We can't reliably do `subsititute-command-keys'
|
||||
;; substitutions, since the value of a keymap in general can't be
|
||||
;; known at compile time. So instead, we assume that these
|
||||
;; substitutions are of some length N.
|
||||
(replace-regexp-in-string
|
||||
(rx "\\" (or (seq "[" (* (not "]")) "]")))
|
||||
(make-string byte-compile--wide-docstring-substitution-len ?x)
|
||||
@ -1686,13 +1689,6 @@ value, it will override this variable."
|
||||
"Warn if documentation string of FORM is too wide.
|
||||
It is too wide if it has any lines longer than the largest of
|
||||
`fill-column' and `byte-compile-docstring-max-column'."
|
||||
;; This has some limitations that it would be nice to fix:
|
||||
;; 1. We don't try to handle defuns. It is somewhat tricky to get
|
||||
;; it right since `defun' is a macro. Also, some macros
|
||||
;; themselves produce defuns (e.g. `define-derived-mode').
|
||||
;; 2. We assume that any `subsititute-command-keys' command replacement has a
|
||||
;; given length. We can't reliably do these replacements, since the value
|
||||
;; of the keymaps in general can't be known at compile time.
|
||||
(when (byte-compile-warning-enabled-p 'docstrings)
|
||||
(let ((col (max byte-compile-docstring-max-column fill-column))
|
||||
kind name docs)
|
||||
@ -1703,12 +1699,10 @@ It is too wide if it has any lines longer than the largest of
|
||||
(setq kind (nth 0 form))
|
||||
(setq name (nth 1 form))
|
||||
(setq docs (nth 3 form)))
|
||||
;; Here is how one could add lambda's here:
|
||||
;; ('lambda
|
||||
;; (setq kind "") ; can't be "function", unfortunately
|
||||
;; (setq docs (and (stringp (nth 2 form))
|
||||
;; (nth 2 form))))
|
||||
)
|
||||
('lambda
|
||||
(setq kind "") ; can't be "function", unfortunately
|
||||
(setq docs (and (stringp (nth 2 form))
|
||||
(nth 2 form)))))
|
||||
(when (and (consp name) (eq (car name) 'quote))
|
||||
(setq name (cadr name)))
|
||||
(setq name (if name (format " `%s'" name) ""))
|
||||
|
@ -937,10 +937,9 @@ byte-compiled. Run with dynamic binding."
|
||||
"warn-wide-docstring-define-obsolete-variable-alias.el"
|
||||
"defvaralias .foo. docstring wider than .* characters")
|
||||
|
||||
;; TODO: We don't yet issue warnings for defuns.
|
||||
(bytecomp--define-warning-file-test
|
||||
"warn-wide-docstring-defun.el"
|
||||
"wider than .* characters" 'reverse)
|
||||
"wider than .* characters")
|
||||
|
||||
(bytecomp--define-warning-file-test
|
||||
"warn-wide-docstring-defvar.el"
|
||||
|
Loading…
Reference in New Issue
Block a user