Improved docstring single quote warning

* lisp/emacs-lisp/bytecomp.el (byte-compile-docstring-style-warn):
More robust regexp.  More explicit warning message.
This commit is contained in:
Mattias Engdegård 2023-01-18 18:41:39 +01:00
parent 1b52eaa190
commit efb9ec11bb

View file

@ -1772,10 +1772,16 @@ It is too wide if it has any lines longer than the largest of
kind name col))
;; There's a "naked" ' character before a symbol/list, so it
;; should probably be quoted with \=.
(when (string-match-p "\\( [\"#]\\|[ \t]\\|^\\)'[a-z(]" docs)
(when (string-match-p (rx (| (in " \t") bol)
(? (in "\"#"))
"'"
(in "A-Za-z" "("))
docs)
(byte-compile-warn-x
name "%s%sdocstring has wrong usage of unescaped single quotes (use \\= or different quoting)"
kind name))
name
(concat "%s%sdocstring has wrong usage of unescaped single quotes"
" (use \\=%c or different quoting such as %c...%c)")
kind name ?' ?` ?'))
;; There's a "Unicode quote" in the string -- it should probably
;; be an ASCII one instead.
(when (byte-compile-warning-enabled-p 'docstrings-non-ascii-quotes)