diff --git a/lisp/treesit.el b/lisp/treesit.el index 6ede1a1da13..387d2716f5b 100644 --- a/lisp/treesit.el +++ b/lisp/treesit.el @@ -845,9 +845,12 @@ This can be used as a `:range-fn' in `treesit-range-rules'." (dolist (child (treesit-node-children node)) (let ((child-start (treesit-node-start child)) (child-end (treesit-node-end child))) - (push (cons prev-end child-start) ranges) + ;; Filter out the case when PREV-END = CHILD-START. + (when (< prev-end child-start) + (push (cons prev-end child-start) ranges)) (setq prev-end child-end))) - (push (cons prev-end end) ranges) + (when (< prev-end end) + (push (cons prev-end end) ranges)) (nreverse ranges))) (defun treesit--merge-ranges (old-ranges new-ranges start end)