[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#61529: 30.0.50; tree-sitter: weird off-by-one error but only in css-
From: |
Dmitry Gutov |
Subject: |
bug#61529: 30.0.50; tree-sitter: weird off-by-one error but only in css-ts-mode(?) with `treesit-node-at' |
Date: |
Thu, 16 Feb 2023 23:34:58 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 |
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.