emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 2fa6ccab01 2/3: ; Fix treesit--children-covering-range


From: Yuan Fu
Subject: master 2fa6ccab01 2/3: ; Fix treesit--children-covering-range
Date: Tue, 22 Nov 2022 15:38:35 -0500 (EST)

branch: master
commit 2fa6ccab01b80ee3fcc78fe35a0061cc11983e1c
Author: Yuan Fu <casouri@gmail.com>
Commit: Yuan Fu <casouri@gmail.com>

    ; Fix treesit--children-covering-range
    
    * lisp/treesit.el (treesit--children-covering-range): Handle the case
    when NODE doesn't have children, and when CHILD is nil.
---
 lisp/treesit.el | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/lisp/treesit.el b/lisp/treesit.el
index 75e859f13f..88f94b8dec 100644
--- a/lisp/treesit.el
+++ b/lisp/treesit.el
@@ -793,12 +793,14 @@ instead."
 (defun treesit--children-covering-range (node start end)
   "Return a list of children of NODE covering a range.
 The range is between START and END."
-  (let* ((child (treesit-node-first-child-for-pos node start))
-         (result (list child)))
-    (while (and (< (treesit-node-end child) end)
-                (setq child (treesit-node-next-sibling child)))
-      (push child result))
-    (nreverse result)))
+  (if-let* ((child (treesit-node-first-child-for-pos node start))
+            (result (list child)))
+      (progn
+        (while (and child (< (treesit-node-end child) end)
+                    (setq child (treesit-node-next-sibling child)))
+          (push child result))
+        (nreverse result))
+    (list node)))
 
 (defun treesit--children-covering-range-recurse (node start end threshold)
   "Return a list of children of NODE covering a range.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]