[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master f3a6fe2 3/6: Avoid false positives in bytecomp docstring width wa
From: |
Stefan Kangas |
Subject: |
master f3a6fe2 3/6: Avoid false positives in bytecomp docstring width warning |
Date: |
Sun, 26 Sep 2021 07:35:07 -0400 (EDT) |
branch: master
commit f3a6fe2c7d5943dcf241700aaf5c10c485217f60
Author: Stefan Kangas <stefan@marxist.se>
Commit: Stefan Kangas <stefan@marxist.se>
Avoid false positives in bytecomp docstring width warning
* lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p):
Ignore more function argument lists.
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-tests-byte-compile--wide-docstring-p): New test.
---
lisp/emacs-lisp/bytecomp.el | 12 ++++++++++--
test/lisp/emacs-lisp/bytecomp-tests.el | 24 ++++++++++++++++++++++++
2 files changed, 34 insertions(+), 2 deletions(-)
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index d7da7a2..fc5b092 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -1649,14 +1649,22 @@ URLs."
(replace-regexp-in-string
(rx (or
;; Ignore some URLs.
- (seq "http" (? "s") "://" (* anychar))
+ (seq "http" (? "s") "://" (* nonl))
;; Ignore these `substitute-command-keys' substitutions.
(seq "\\" (or "="
(seq "<" (* (not ">")) ">")
(seq "{" (* (not "}")) "}")))
;; Ignore the function signature that's stashed at the end of
;; the doc string (in some circumstances).
- (seq bol "(fn (" (* nonl))))
+ (seq bol "(" (+ (any word "-/:[]&"))
+ ;; One or more arguments.
+ (+ " " (or
+ ;; Arguments.
+ (+ (or (syntax symbol)
+ (any word "-/:[]&=().?^\\#'")))
+ ;; Argument that is a list.
+ (seq "(" (* (not ")")) ")")))
+ ")")))
""
;; Heuristic: assume these substitutions are of some length N.
(replace-regexp-in-string
diff --git a/test/lisp/emacs-lisp/bytecomp-tests.el
b/test/lisp/emacs-lisp/bytecomp-tests.el
index d56c60b..707f597 100644
--- a/test/lisp/emacs-lisp/bytecomp-tests.el
+++ b/test/lisp/emacs-lisp/bytecomp-tests.el
@@ -1470,6 +1470,30 @@ compiled correctly."
(load-file (concat file "c"))
(should (equal (bc-test-alpha-f 'a) '(nil a)))))
+(ert-deftest bytecomp-tests-byte-compile--wide-docstring-p/func-arg-list ()
+ (should-not (byte-compile--wide-docstring-p "\
+\(dbus-register-property BUS SERVICE PATH INTERFACE PROPERTY ACCESS \
+[TYPE] VALUE &optional EMITS-SIGNAL DONT-REGISTER-SERVICE)" fill-column))
+ (should-not (byte-compile--wide-docstring-p "\
+(fn CMD FLAGS FIS &key (BUF (cvs-temp-buffer)) DONT-CHANGE-DISC CVSARGS \
+POSTPROC)" fill-column))
+ ;; Bug#49007
+ (should-not (byte-compile--wide-docstring-p "\
+(fn (THIS rudel-protocol-backend) TRANSPORT \
+INFO INFO-CALLBACK &optional PROGRESS-CALLBACK)" fill-column))
+ (should-not (byte-compile--wide-docstring-p "\
+\(fn NAME () [DOCSTRING] [:expected-result RESULT-TYPE] \
+[:tags \\='(TAG...)] BODY...)" fill-column))
+ (should-not (byte-compile--wide-docstring-p "\
+(make-soap-xs-element &key NAME NAMESPACE-TAG ID TYPE^ OPTIONAL\? MULTIPLE\? \
+REFERENCE SUBSTITUTION-GROUP ALTERNATIVES IS-GROUP)" fill-column))
+ (should-not (byte-compile--wide-docstring-p "\
+(fn NAME FIXTURE INPUT &key SKIP-PAIR-STRING EXPECTED-STRING \
+EXPECTED-POINT BINDINGS (MODES \\='\\='(ruby-mode js-mode python-mode)) \
+(TEST-IN-COMMENTS t) (TEST-IN-STRINGS t) (TEST-IN-CODE t) \
+(FIXTURE-FN \\='#\\='electric-pair-mode))" fill-column)))
+
+
;; Local Variables:
;; no-byte-compile: t
;; End:
- master updated (f4ea159 -> c51b1c0), Stefan Kangas, 2021/09/26
- master 89bac05 5/6: Avoid warning about long docstring lines in defcustom, Stefan Kangas, 2021/09/26
- master c78e169 1/6: ; Adjust overly long docstrings to fit 80 characters, Stefan Kangas, 2021/09/26
- master 8c3ec4e 4/6: Fill some auto-generated docstring lines, Stefan Kangas, 2021/09/26
- master c51b1c0 6/6: Warn about overly long docstring in lambda, Stefan Kangas, 2021/09/26
- master 44da8dd 2/6: Improve filling of generated docstring lines, Stefan Kangas, 2021/09/26
- master f3a6fe2 3/6: Avoid false positives in bytecomp docstring width warning,
Stefan Kangas <=