Skip to content

🌈 Rainbow parentheses for neovim using tree-sitter 🌈

License

Notifications You must be signed in to change notification settings

ChristianChiarulli/nvim-ts-rainbow

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NO LONGER MAINTAINED

This plugin is no longer maintained.

I'm archiving the GitHub repo and closing the sourcehut issue tracker. Feel free to fork

🌈 nvim-ts-rainbow 🌈

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.

Only neovim nightly is targeted.

Warning/notice/whatever

The queries might be out of date at any time, keeping up with them for languages I don't use is not feasible. If you get errors like invalid node at position xxx, try removing this plugin first before opening an issue in nvim-treesitter. If it fixes the problem, open an issue/PR here.

Installation and setup

Install and set up nvim-treesitter according to their documentation. 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,
    -- disable = { "jsx", "cpp" }, list of languages you want to disable the plugin for
    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
  }
}

If you want to enable it only for some filetypes and disable it for everything else, see p00f#30 (comment)

Colours

To change the colours you can set them in the 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

Screenshots

  • Java

alt text

The screenshots below use a different colorscheme

  • Fennel:

alt text alt text

  • C++:

alt text

  • Latex (with tag begin-end matching)

alt text

Credits

Huge thanks to @vigoux, @theHamsta, @sogaiu, @bfredl and @sunjon and @steelsojka for all their help

About

🌈 Rainbow parentheses for neovim using tree-sitter 🌈

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Lua 73.9%
  • Scheme 12.4%
  • TypeScript 6.9%
  • JavaScript 6.5%
  • Vim Script 0.3%