Rainbow parentheses for neovim using tree-sitter. This is a module for nvim-treesitter, not a standalone plugin. It requires and is configured via nvim-treesitter
Should work with any language supported by nvim-treesitter. If any language is missing, please open an issue/PR.
Install this plugin, then add a rainbow
section in the call to require("nvim-treesitter.configs").setup()
:
require("nvim-treesitter.configs").setup {
highlight = {
-- ...
},
-- ...
rainbow = {
enable = true,
extended_mode = true, -- Also highlight non-bracket delimiters like html tags, boolean or table: lang -> boolean
max_file_lines = nil, -- Do not enable for files with more than n lines, int
-- colors = {}, -- table of hex strings
-- termcolors = {} -- table of colour name strings
}
}
I've used the gruvbox palette because it is nice and subtle. I wanted to use VIBGYOR for an actual rainbow, but
- indigo and blue look the same.
- the colours were too bright and distracting.
To change the colors you can edit lua/rainbow/colors.lua
or add following code to setup
require'nvim-treesitter.configs'.setup{
rainbow = {
-- Setting colors
colors = {
-- Colors here
},
-- Term colors
termcolors = {
-- Term colors here
}
},
}
If you want to override some colours (you can only change colours 1 through 7 this way), you can do it in your init.vim: (thanks @delphinus !). You can also use this while writing a colorscheme
hi rainbowcol1 guifg=#123456
- Java
The screenshots below use a different colorscheme
- Fennel:
- C++:
- Latex (with tag begin-end matching)
Huge thanks to @vigoux, @theHamsta, @sogaiu, @bfredl and @sunjon and @steelsojka for all their help