diff --git a/lisp/treesit.el b/lisp/treesit.el index ae0ef56c65a..5a408b09507 100644 --- a/lisp/treesit.el +++ b/lisp/treesit.el @@ -3193,7 +3193,12 @@ ARG is described in the docstring of `up-list'." (goto-char (if (> arg 0) (treesit-node-end parent) (treesit-node-start parent)))) - (user-error "At top level"))) + (if no-syntax-crossing + ;; Assume called interactively; don't signal an error. + (user-error "At top level") + (signal 'scan-error + (list (format-message "No more %S to move across" pred) + (point) (point)))))) (setq cnt (- cnt inc))))) (defun treesit-cycle-sexp-type ()