aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Kangas2021-09-13 21:57:13 +0200
committerStefan Kangas2021-09-14 07:56:06 +0200
commitcf2fa6c87f4da4665ff8a9e8e220bba0b5bccefc (patch)
tree389f647f770237a8e004d4aeaad59c2451f42304
parent269c8a0b633ac22472772a7d4cce99228a5357ba (diff)
downloademacs-cf2fa6c87f4da4665ff8a9e8e220bba0b5bccefc.tar.gz
emacs-cf2fa6c87f4da4665ff8a9e8e220bba0b5bccefc.zip
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.
-rw-r--r--etc/NEWS7
-rw-r--r--lisp/emacs-lisp/checkdoc.el29
2 files changed, 26 insertions, 10 deletions
diff --git a/etc/NEWS b/etc/NEWS
index 76cfb43efc3..d4f4c81f895 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -2826,6 +2826,13 @@ or if you would like to attend a virtual meeting scheduled in a
2826different timezone causing a difference in the date. 2826different timezone causing a difference in the date.
2827 2827
2828--- 2828---
2829*** New user option 'checkdoc-column-zero-backslash-before-paren'.
2830Checkdoc warns if there is a left parenthesis in column zero of a
2831documentation string. That warning can now be disabled by customizing
2832this new user option to nil. This can be useful if you don't expect
2833your code to be edited with an Emacs version older than 27.1.
2834
2835---
2829*** The old non-SMIE indentation of 'sh-mode' has been removed. 2836*** The old non-SMIE indentation of 'sh-mode' has been removed.
2830 2837
2831--- 2838---
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."
312 :version "28.1") 312 :version "28.1")
313;;;###autoload(put 'checkdoc-symbol-words 'safe-local-variable #'checkdoc-list-of-strings-p) 313;;;###autoload(put 'checkdoc-symbol-words 'safe-local-variable #'checkdoc-list-of-strings-p)
314 314
315(defcustom checkdoc-column-zero-backslash-before-paren t
316 "Non-nil means to warn if there is no '\\' before '(' in column zero.
317This backslash is no longer needed on Emacs 27.1 later.
318
319See Info node `(elisp) Documentation Tips' for background."
320 :type 'boolean
321 :version "28.1")
322
315;;;###autoload 323;;;###autoload
316(defun checkdoc-list-of-strings-p (obj) 324(defun checkdoc-list-of-strings-p (obj)
317 "Return t when OBJ is a list of strings." 325 "Return t when OBJ is a list of strings."
@@ -1403,16 +1411,17 @@ buffer, otherwise stop after the first error."
1403 (match-beginning 1) 1411 (match-beginning 1)
1404 (match-end 1))))) 1412 (match-end 1)))))
1405 ;; * Check for '(' in column 0. 1413 ;; * Check for '(' in column 0.
1406 (save-excursion 1414 (when checkdoc-column-zero-backslash-before-paren
1407 (when (re-search-forward "^(" e t) 1415 (save-excursion
1408 (if (checkdoc-autofix-ask-replace (match-beginning 0) 1416 (when (re-search-forward "^(" e t)
1409 (match-end 0) 1417 (if (checkdoc-autofix-ask-replace (match-beginning 0)
1410 (format-message "Escape this `('? ") 1418 (match-end 0)
1411 "\\(") 1419 (format-message "Escape this `('? ")
1412 nil 1420 "\\(")
1413 (checkdoc-create-error 1421 nil
1414 "Open parenthesis in column 0 should be escaped" 1422 (checkdoc-create-error
1415 (match-beginning 0) (match-end 0))))) 1423 "Open parenthesis in column 0 should be escaped"
1424 (match-beginning 0) (match-end 0))))))
1416 ;; * Do not start or end a documentation string with whitespace. 1425 ;; * Do not start or end a documentation string with whitespace.
1417 (let (start end) 1426 (let (start end)
1418 (if (or (if (looking-at "\"\\([ \t\n]+\\)") 1427 (if (or (if (looking-at "\"\\([ \t\n]+\\)")