From: Yuan Fu Date: Tue, 22 Nov 2022 20:01:19 +0000 (-0800) Subject: ; Fix treesit--children-covering-range X-Git-Tag: emacs-29.0.90~1587 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2fa6ccab01b80ee3fcc78fe35a0061cc11983e1c;p=emacs.git ; 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. --- diff --git a/lisp/treesit.el b/lisp/treesit.el index 75e859f13f7..88f94b8dec1 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.