From cf2fa6c87f4da4665ff8a9e8e220bba0b5bccefc Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Mon, 13 Sep 2021 21:57:13 +0200 Subject: Add user option to avoid checkdoc warning for unescaped left paren * lisp/emacs-lisp/checkdoc.el (checkdoc-column-zero-backslash-before-paren): New user option to avoid warning on unescaped left parenthesis in column zero. (checkdoc-this-string-valid-engine): Respect above new option. --- lisp/emacs-lisp/checkdoc.el | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) (limited to 'lisp/emacs-lisp') diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el index bc568f10fce..3150ea605f0 100644 --- a/lisp/emacs-lisp/checkdoc.el +++ b/lisp/emacs-lisp/checkdoc.el @@ -312,6 +312,14 @@ This should be set in an Emacs Lisp file's local variables." :version "28.1") ;;;###autoload(put 'checkdoc-symbol-words 'safe-local-variable #'checkdoc-list-of-strings-p) +(defcustom checkdoc-column-zero-backslash-before-paren t + "Non-nil means to warn if there is no '\\' before '(' in column zero. +This backslash is no longer needed on Emacs 27.1 later. + +See Info node `(elisp) Documentation Tips' for background." + :type 'boolean + :version "28.1") + ;;;###autoload (defun checkdoc-list-of-strings-p (obj) "Return t when OBJ is a list of strings." @@ -1403,16 +1411,17 @@ buffer, otherwise stop after the first error." (match-beginning 1) (match-end 1))))) ;; * Check for '(' in column 0. - (save-excursion - (when (re-search-forward "^(" e t) - (if (checkdoc-autofix-ask-replace (match-beginning 0) - (match-end 0) - (format-message "Escape this `('? ") - "\\(") - nil - (checkdoc-create-error - "Open parenthesis in column 0 should be escaped" - (match-beginning 0) (match-end 0))))) + (when checkdoc-column-zero-backslash-before-paren + (save-excursion + (when (re-search-forward "^(" e t) + (if (checkdoc-autofix-ask-replace (match-beginning 0) + (match-end 0) + (format-message "Escape this `('? ") + "\\(") + nil + (checkdoc-create-error + "Open parenthesis in column 0 should be escaped" + (match-beginning 0) (match-end 0)))))) ;; * Do not start or end a documentation string with whitespace. (let (start end) (if (or (if (looking-at "\"\\([ \t\n]+\\)") -- cgit v1.2.3