rainbow-delimiters.nvim
rainbow-delimiters.nvim copied to clipboard
[Bug]: healthcheck fails
Neovim version
0.9.4
Language affected
All
Query
rainbow-delimiters-react
Strategy
No response
Description
Hi, for some reason the healthcheck fails when I have the javascript query rule 'rainbow-delimiters-react' enabled. When I comment it out, the healthcheck passes without issue.
Healthcheck Output
==============================================================================
rainbow-delimiters: require("rainbow-delimiters.health").check()
- ERROR Failed to run healthcheck for "rainbow-delimiters" plugin. Exception:
function health#check, line 25
Vim(eval):E5108: Error executing lua ...im/0.9.4/share/nvim/runtime/lua/vim/treesitter/query.lua:259: query: invalid node type at position 1260 for language javascript
stack traceback:
[C]: in function '_ts_parse_query'
...im/0.9.4/share/nvim/runtime/lua/vim/treesitter/query.lua:259: in function 'get'
...ainbow-delimiters.nvim/lua/rainbow-delimiters/health.lua:63: in function 'check_query'
...ainbow-delimiters.nvim/lua/rainbow-delimiters/health.lua:160: in function 'check'
[string "luaeval()"]:1: in main chunk
Lazy Settings
Just a note, I like to include as many default settings as I can to make it easier to change settings without looking at documentation. So that is why there are so many comments and settings in my configuration.
{
'hiphish/rainbow-delimiters.nvim',
dependencies = "nvim-treesitter/nvim-treesitter",
event = "VeryLazy",
config = function()
local rainbow = require 'rainbow-delimiters'
vim.g.rainbow_delimiters = {
-- Each language is based on a treesitter language name.
-- Defines the highlighting strategy.
strategy = {
--[[
'global' - Highlight all delimiters, updates with document
changes.
'local' - Highlight only the subtree that contains the cursor,
updates when the cursor moves.
--]]
-- Default Strategy
[''] = rainbow.strategy['global'],
html = rainbow.strategy['local'],
latex = function()
-- Disabled for very large files,
if vim.fn.line('$') > 10000 then
return nil
-- global strategy for large files,
elseif vim.fn.line('$') > 1000 then
return rainbow.strategy['global']
end
-- local strategy otherwise
return rainbow.strategy['local']
end
},
-- Defines what to match
query = {
-- Default Query - Reasonable set of parenthesis and similar
-- delimiters in most languages
[''] = 'rainbow-delimiters',
-- Matches `\begin` and `\end` instructions
latex = 'rainbow-blocks',
-- Matches keywords like `function` and `end` as well as
-- parenthesis
lua = 'rainbow-blocks',
-- Includes React support
javascript = 'rainbow-delimiters-react',
--[[
-- Only parenthesis without React tags
javascript = 'rainbow-parens',
-- Only typescript highlighting without React tags
tsx = 'rainbow-parens',
--]]
-- Matches keywords like `begin` and `end` as well as
-- parenthesis
verilog = 'rainbow-blocks',
},
highlight = {
'RainbowDelimiterRed',
'RainbowDelimiterYellow',
'RainbowDelimiterBlue',
'RainbowDelimiterOrange',
'RainbowDelimiterGreen',
'RainbowDelimiterViolet',
'RainbowDelimiterCyan',
},
--[[
blacklist = {
'c',
'cpp',
},
whitelist = {
'python',
'javascript',
},
log = {
file = '~/.local/state/lvim/rainbow-delimiters.log',
level = vim.log.levels.DEBUG,
},
--]]
}
end
}
Which parsers do you have installed? You can check by typing:
:checkhealth nvim-treesitter<CR>
I think you need at least both javascript
and jsx
to get React tags working (I can see in nvim-treesitter
, that javascript
inherits queries from ecma
and jsx
, so you might be missing one of those?).
I am not sure if this is the problem, but the error makes it sound like there is some unknown query, so this is my guess at what's the problem.
I took a look and I have javascript
, tsx
, typescript
; however I can't seem to install a jsx
as there doesn't seem to be a jsx
parser supported in neovim-treesitter.
https://github.com/nvim-treesitter/nvim-treesitter#supported-languages
I took a look and I have
javascript
,tsx
,typescript
; however I can't seem to install ajsx
as there doesn't seem to be ajsx
parser supported in neovim-treesitter.https://github.com/nvim-treesitter/nvim-treesitter#supported-languages
I guess the jsx
stuff should all be in the javascript
parser then. I just saw here that they split up the jsx
queries from the "standard" javascript
queries.
I have checked this in my own Neovim setup now, and I don't get any errors from 'rainbow-delimiters-react'
.
When you check the parsers, does everything look correct for javascript
? (All checkmarks like here)
Have you tried updating your parsers via :TSUpdate<CR>
and/or updating the nvim-treesitter
plugin? I am on Neovim 0.10, but I can try to see if I can maybe reproduce this on 0.9.4 later, if you still get the error.