Subject: Re: bug#61529: 30.0.50; tree-sitter: weird off-by-one error but only in css-ts-mode(?) with `treesit-node-at'

From: Dmitry Gutov <[email-masked]>
Date: Thu, 16 Feb 2023 23:34:58 +0200

On 15/02/2023 20:35, Theodor Thornhill via Bug reports for GNU Emacs, 
the Swiss army knife of text editors wrote:
> So the docstring of treesit-node-at states:

Looking at the code, this change might describe it better:

diff --git a/lisp/treesit.el b/lisp/treesit.el
index 749781894b8..6e53b3d4c4a 100644
--- a/lisp/treesit.el
+++ b/lisp/treesit.el
@@ -166,10 +166,13 @@ treesit-node-at
  A leaf node is a node that doesn't have any child nodes.

  The returned node's span covers POS: the node's beginning is before
-or at POS, and the node's end is at or after POS.
+or at POS, and the node's end is after POS.

-If no leaf node's span covers POS (e.g., POS is on whitespace
-between two leaf nodes), return the first leaf node after POS.
+If no such node is found, but a leaf node ends at POS, it's
+returned.
+
+Otherwise (e.g., when POS is on whitespace between two leaf
+nodes), return the first leaf node after POS.

  If there is no leaf node after POS, return the first leaf node
  before POS.