summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/treesit.el14
1 files changed, 9 insertions, 5 deletions
diff --git a/lisp/treesit.el b/lisp/treesit.el
index e53d5d53bd0..7a604121c4e 100644
--- a/lisp/treesit.el
+++ b/lisp/treesit.el
@@ -2415,11 +2415,15 @@ in the region."
(window-start) (window-end) treesit--explorer-language))
;; Only highlight the current top-level construct.
;; Highlighting the whole buffer is slow and unnecessary.
- (top-level (treesit-node-first-child-for-pos
- root (if (eolp)
- (max (point-min) (1- (point)))
- (point))
- t))
+ ;; But if the buffer is small (ie, used in playground
+ ;; style), just highlight the whole buffer.
+ (top-level (if (< (buffer-size) 4000)
+ root
+ (treesit-node-first-child-for-pos
+ root (if (eolp)
+ (max (point-min) (1- (point)))
+ (point))
+ t)))
;; Only highlight node when region is active, if we
;; highlight node at point the syntax tree is too jumpy.
(nodes-hl