aboutsummaryrefslogtreecommitdiff
path: root/runtime/doc
diff options
context:
space:
mode:
authorRiley Bruins <ribru17@hotmail.com>2025-01-13 19:16:17 -0800
committerChristian Clason <ch.clason+github@icloud.com>2025-02-21 18:10:24 +0100
commitcbad2c662873bf791309505418407c804db219b7 (patch)
tree44b7b952583273230b7ee0bb4ffb04c8b83580de /runtime/doc
parent2e0a563828fe8eacd30ce1849e47013096234cba (diff)
downloadrneovim-cbad2c662873bf791309505418407c804db219b7.tar.gz
rneovim-cbad2c662873bf791309505418407c804db219b7.tar.bz2
rneovim-cbad2c662873bf791309505418407c804db219b7.zip
perf(treesitter): don't block when finding injection ranges
**Problem:** Currently, parsing is asynchronous, but it involves a (sometimes lengthy) step which finds all injection ranges for a tree by iterating over that language's injection queries. This causes edits in large files to be extremely slow, and also causes a long stutter during the initial parse of a large file. **Solution:** Break up the injection query iteration over multiple event loop iterations.
Diffstat (limited to 'runtime/doc')
-rw-r--r--runtime/doc/news.txt2
1 files changed, 2 insertions, 0 deletions
diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt
index 314ac23338..5c7354e3b5 100644
--- a/runtime/doc/news.txt
+++ b/runtime/doc/news.txt
@@ -343,6 +343,8 @@ PERFORMANCE
• |LanguageTree:parse()| now only runs the injection query on the provided
range (as long as the language does not have a combined injection),
significantly improving |treesitter-highlight| performance.
+• Treesitter injection query iteration is now asynchronous, making edits in
+ large buffers with combined injections much quicker.
PLUGINS