1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Avoid jumping too far in checkdoc-in-abbreviation-p

* lisp/emacs-lisp/checkdoc.el (checkdoc-in-abbreviation-p): Use
'forward-ward' instead of 'forward-sexp' to avoid jumping too far in
some situations.  (Bug#50731)

* test/lisp/emacs-lisp/checkdoc-tests.el
(checkdoc-tests--abbrev-test): New helper function.
(checkdoc-tests-in-abbrevation-p/basic-case): Rename from
'checkdoc-tests-in-abbrevation-p'.
(checkdoc-tests-in-abbrevation-p/with-parens)
(checkdoc-tests-in-abbrevation-p/with-escaped-parens): Use above new
helper function.
(checkdoc-tests-in-abbrevation-p/single-char)
(checkdoc-tests-in-abbrevation-p/with-em-dash)
(checkdoc-tests-in-abbrevation-p/incorrect-abbreviation): New tests.
This commit is contained in:
Stefan Kangas 2021-09-23 21:10:08 +02:00
parent 387af85c4d
commit 55083d90a3
2 changed files with 41 additions and 35 deletions

View file

@ -122,29 +122,31 @@ See the comments in Bug#24998."
(should (looking-at-p "\"baz\")"))
(should-not (checkdoc-next-docstring))))
(ert-deftest checkdoc-tests-in-abbrevation-p ()
(defun checkdoc-tests--abbrev-test (buffer-contents goto-string)
(with-temp-buffer
(emacs-lisp-mode)
(insert "foo bar e.g. baz")
(insert buffer-contents)
(goto-char (point-min))
(re-search-forward "e.g")
(should (checkdoc-in-abbreviation-p (point)))))
(re-search-forward goto-string)
(checkdoc-in-abbreviation-p (point))))
(ert-deftest checkdoc-tests-in-abbrevation-p/basic-case ()
(should (checkdoc-tests--abbrev-test "foo bar e.g. baz" "e.g")))
(ert-deftest checkdoc-tests-in-abbrevation-p/with-parens ()
(with-temp-buffer
(emacs-lisp-mode)
(insert "foo bar (e.g. baz)")
(goto-char (point-min))
(re-search-forward "e.g")
(should (checkdoc-in-abbreviation-p (point)))))
(should (checkdoc-tests--abbrev-test "foo bar (e.g. baz)" "e.g")))
(ert-deftest checkdoc-tests-in-abbrevation-p/with-escaped-parens ()
(with-temp-buffer
(emacs-lisp-mode)
(insert "foo\n\\(e.g. baz)")
(goto-char (point-min))
(re-search-forward "e.g")
(should (checkdoc-in-abbreviation-p (point)))))
(should (checkdoc-tests--abbrev-test "foo\n\\(e.g. baz)" "e.g")))
(ert-deftest checkdoc-tests-in-abbrevation-p/single-char ()
(should (checkdoc-tests--abbrev-test "a. foo bar" "a")))
(ert-deftest checkdoc-tests-in-abbrevation-p/with-em-dash ()
(should (checkdoc-tests--abbrev-test "foo bar baz---e.g." "e.g")))
(ert-deftest checkdoc-tests-in-abbrevation-p/incorrect-abbreviation ()
(should-not (checkdoc-tests--abbrev-test "foo bar a.b.c." "a.b.c")))
(ert-deftest checkdoc-tests-fix-y-or-n-p ()
(with-temp-buffer