aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiley Bruins <ribru17@hotmail.com>2025-02-15 16:54:28 -0800
committerChristian Clason <ch.clason+github@icloud.com>2025-02-19 19:13:16 +0100
commitb0bbe25c4808158e8c806959e4d185244073647a (patch)
tree481d23cac4d2606fcdfab685cc768f3e34a69a4f
parent36f44b3121fcdcb6532d77389b59c4e1b7382ac4 (diff)
downloadrneovim-b0bbe25c4808158e8c806959e4d185244073647a.tar.gz
rneovim-b0bbe25c4808158e8c806959e4d185244073647a.tar.bz2
rneovim-b0bbe25c4808158e8c806959e4d185244073647a.zip
fix(treesitter): don't spam query errors in the highlighter
**Problem:** An erroneous query in the treesitter highlighter gives a deluge of errors that makes the editor almost unusable. **Solution:** Detach the highlighter after an error is detected, so that it only gets displayed once (per highlighter instance).
-rw-r--r--runtime/lua/vim/treesitter/highlighter.lua7
1 files changed, 6 insertions, 1 deletions
diff --git a/runtime/lua/vim/treesitter/highlighter.lua b/runtime/lua/vim/treesitter/highlighter.lua
index 6dd47811bd..475a1f0aa5 100644
--- a/runtime/lua/vim/treesitter/highlighter.lua
+++ b/runtime/lua/vim/treesitter/highlighter.lua
@@ -232,7 +232,12 @@ end
---@return vim.treesitter.highlighter.Query
function TSHighlighter:get_query(lang)
if not self._queries[lang] then
- self._queries[lang] = TSHighlighterQuery.new(lang)
+ local success, result = pcall(TSHighlighterQuery.new, lang)
+ if not success then
+ self:destroy()
+ error(result)
+ end
+ self._queries[lang] = result
end
return self._queries[lang]