New user option checkdoc-allow-quoting-nil-and-t

* lisp/emacs-lisp/checkdoc.el (checkdoc-allow-quoting-nil-and-t):
New user option that allows turning off the warning for having nil
and t in quotes.
(checkdoc-this-string-valid-engine): Use above new option.
This commit is contained in:
Stefan Kangas 2025-02-21 17:40:12 +01:00
parent e7a35dac2f
commit 8d4feb214b
2 changed files with 25 additions and 11 deletions

View file

@ -840,6 +840,11 @@ backend.
This affects calls to 'warn', 'lwarn', 'display-warning', and
'message-box'.
---
*** New user option 'checkdoc-allow-quoting-nil-and-t'.
Customizing this option to a non-nil value stops checkdoc from warning
for docstrings where symbols 'nil' and 't' are in quotes.
---
*** The default of 'checkdoc-verb-check-experimental-flag' is now nil.
In most cases, having it enabled leads to a large amount of false

View file

@ -322,6 +322,14 @@ variable `checkdoc-common-verbs-wrong-voice' if you wish to add your own."
Do not set this by hand, use a function like `checkdoc-current-buffer'
with a universal argument.")
(defcustom checkdoc-allow-quoting-nil-and-t nil
"If non-nil, don't warn when the symbols nil and t are quoted.
In other words, it allows writing them like this: \\=`nil\\=', \\=`t\\='."
:type 'boolean
:version "31.1")
;;;###autoload(put 'checkdoc-allow-quoting-nil-and-t 'safe-local-variable #'booleanp)
(defcustom checkdoc-symbol-words
'("beginning-of-buffer" "beginning-of-line" "byte-code"
"byte-compile" "command-line" "end-of-buffer" "end-of-line"
@ -1956,17 +1964,18 @@ Replace with \"%s\"?" original replace)
(length ms)))
nil)))
;; t and nil case
(save-excursion
(if (re-search-forward "\\([`]\\(t\\|nil\\)[']\\)" e t)
(if (checkdoc-autofix-ask-replace
(match-beginning 1) (match-end 1)
(format "%s should not appear in quotes. Remove?"
(match-string 2))
(match-string 2) t)
nil
(checkdoc-create-error
"Symbols t and nil should not appear in single quotes"
(match-beginning 1) (match-end 1)))))
(unless checkdoc-allow-quoting-nil-and-t
(save-excursion
(if (re-search-forward "\\([`]\\(t\\|nil\\)[']\\)" e t)
(if (checkdoc-autofix-ask-replace
(match-beginning 1) (match-end 1)
(format "%s should not appear in quotes. Remove?"
(match-string 2))
(match-string 2) t)
nil
(checkdoc-create-error
"Symbols t and nil should not appear in single quotes"
(match-beginning 1) (match-end 1))))))
;; Here is some basic sentence formatting
(checkdoc-sentencespace-region-engine (point) e)
;; Here are common proper nouns that should always appear capitalized.