* 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.
(cherry picked from commit
3a4839d142757ce6fabe81473e337acd13f51826)
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)