commit b0bbe25c4808158e8c806959e4d185244073647a
parent 36f44b3121fcdcb6532d77389b59c4e1b7382ac4
Author: Riley Bruins <ribru17@hotmail.com>
Date: Sat, 15 Feb 2025 16:54:28 -0800
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).
Diffstat:
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git 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]