1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-21 06:55:39 +00:00

More consistent treesit-forward-sexp around comments (bug#72525)

* lisp/treesit.el (treesit-forward-sexp): Check if point is strictly
inside a comment or string, only then use the default forward-sexp
function; otherwise use tree-sitter's forward-sexp routine.
This commit is contained in:
Yuan Fu 2024-08-26 19:43:00 -07:00
parent 3129315587
commit 3a4839d142
No known key found for this signature in database
GPG Key ID: 56E19BC57664A442

View File

@ -2254,8 +2254,15 @@ What constitutes as text and source code sexp is determined
by `text' and `sexp' in `treesit-thing-settings'."
(interactive "^p")
(let ((arg (or arg 1))
(pred (or treesit-sexp-type-regexp 'sexp)))
(or (when (treesit-node-match-p (treesit-node-at (point)) 'text t)
(pred (or treesit-sexp-type-regexp 'sexp))
(node-at-point
(treesit-node-at (point) (treesit-language-at (point)))))
(or (when (and node-at-point
;; Make sure point is strictly inside node.
(< (treesit-node-start node-at-point)
(point)
(treesit-node-end node-at-point))
(treesit-node-match-p node-at-point 'text t))
(forward-sexp-default-function arg)
t)
(if (> arg 0)