1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-03 06:00:50 -08:00
emacs/test/src
Yuan Fu aee10ca1cb
Adjust tree-sitter defun navigation (bug#61617)
Before this change, when you use a tree-sitter navigation function to
move to the next beginning of a thing, it jumps over the immediate
next thing and lands you at the beginning of the next-next thing.

Eg, when point is at the "|", and we evaluate
(treesit--navigate-thing pos 1 'beg), we go from

|  (thing) (thing)

to

   (thing) |(thing)

But some might expect point to go to

   |(thing) (thing)

instead, which makes sense.  Also, that's how Emacs expect defun
navigation functions to work.  The discrepancy in expectation causes
bug#61617.

In this change I made tree-sitter navigation functions to work as what
Emacs expects.  And what I described for moving to the next beginning
of thing is similarly applicable to moving to the end of previous end
of thing.

* lisp/treesit.el (treesit-beginning-of-defun)
(treesit-end-of-defun): Handle the case where defun-skipper moves
point back to where we started, by adding a retry.

(treesit--navigate-thing): Add a single condition checking for
progress to the condition form responsible for checking whether to
skip the next defun.  Namely (eq pos (funcall advance next)))).

* test/src/treesit-tests.el:
(treesit--ert-defun-navigation-nested-master)
(treesit--ert-defun-navigation-top-level-master): Change tests to
reflect the new expectation.
2023-02-27 00:14:32 -08:00
..
comp-resources ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
emacs-module-resources ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
lread-resources Make force-load-doc-strings work again 2022-08-07 10:25:03 +02:00
regex-resources
syntax-resources
alloc-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
buffer-tests.el Rename with/without-narrowing to with/without-restriction 2023-02-13 20:11:28 +02:00
callint-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
callproc-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
casefiddle-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
character-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
charset-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
chartab-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
cmds-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
coding-tests.el Fix encoding with 'utf-8-auto' 2023-01-12 16:36:35 +02:00
comp-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
data-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
decompress-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
doc-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
editfns-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
emacs-module-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
emacs-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
eval-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
fileio-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
filelock-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
floatfns-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
fns-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
font-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
image-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
indent-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
inotify-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
json-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
keyboard-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
keymap-tests.el Make `keymap-set-after' work for menus 2023-01-20 15:14:45 +01:00
lcms-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
lread-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
marker-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
minibuf-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
print-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
process-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
regex-emacs-tests.el regex-emacs.c: Reduce the use of backtracking a bit further 2023-02-20 21:22:41 -05:00
search-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
sqlite-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
syntax-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
textprop-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
thread-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
timefns-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
treesit-tests.el Adjust tree-sitter defun navigation (bug#61617) 2023-02-27 00:14:32 -08:00
undo-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
xdisp-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
xfaces-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
xml-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00