]> git.eshelyaron.com Git - emacs.git/commitdiff
; Fix treesit--children-covering-range
authorYuan Fu <casouri@gmail.com>
Tue, 22 Nov 2022 20:01:19 +0000 (12:01 -0800)
committerYuan Fu <casouri@gmail.com>
Tue, 22 Nov 2022 20:38:14 +0000 (12:38 -0800)
* lisp/treesit.el (treesit--children-covering-range): Handle the case
when NODE doesn't have children, and when CHILD is nil.

lisp/treesit.el

index 75e859f13f735ab0bc02b0606dcdbad5ad0a4d71..88f94b8dec1da23fdc868e0ef513c04b0703a20d 100644 (file)
@@ -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.