diff options
author | Yuan Fu <casouri@gmail.com> | 2022-11-22 12:01:19 -0800 |
---|---|---|
committer | Yuan Fu <casouri@gmail.com> | 2022-11-22 12:38:14 -0800 |
commit | 2fa6ccab01b80ee3fcc78fe35a0061cc11983e1c (patch) | |
tree | 91ec4346b4bcd4491ae01a6911055635f4dc4fc1 /lisp/treesit.el | |
parent | 95d783f27c6a585d7c1f55293fd3de6a0422c795 (diff) | |
download | emacs-2fa6ccab01b80ee3fcc78fe35a0061cc11983e1c.tar.gz emacs-2fa6ccab01b80ee3fcc78fe35a0061cc11983e1c.tar.bz2 emacs-2fa6ccab01b80ee3fcc78fe35a0061cc11983e1c.zip |
; 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.
Diffstat (limited to 'lisp/treesit.el')
-rw-r--r-- | lisp/treesit.el | 14 |
1 files changed, 8 insertions, 6 deletions
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. |