• Stars
    star
    314
  • Rank 133,353 (Top 3 %)
  • Language
    Lua
  • License
    Apache License 2.0
  • Created almost 2 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Rainbow delimiters for Neovim through Tree-sitter

Rainbow delimiters for Neovim

Warning

This plugin is deprecated! Please use rainbow-delimiters.nvim instead (GitHub mirror). This plugin is implemented as a module for nvim-treesitter, but nvim-treesitter has deprecated the module feature. Hence why I have created a new standalone plugin which does not depend on nvim-treesitter.

This Neovim plugin provides alternating syntax highlighting (“rainbow parentheses”) for Neovim, powered by Tree-sitter. The goal is to have a hackable plugin which allows for different configuration of queries and strategies, both globally and per file type. Users can override and extend the built-in defaults through their own configuration.

Installation and setup

Installation

The plugin depends on nvim-treesitter. Other than that it is installed like any other Neovim plugin.

Setup

Since this is a module for nvim-treesitter you need to setup everything in its configuration. Here is an example:

require('nvim-treesitter.configs').setup {
  rainbow = {
    enable = true,
    -- list of languages you want to disable the plugin for
    disable = { 'jsx', 'cpp' },
    -- Which query to use for finding delimiters
    query = 'rainbow-parens',
    -- Highlight the entire buffer all at once
    strategy = require('ts-rainbow').strategy.global,
  }
}

Please refer to the manual for more details.

Help wanted

There are only so many languages which I understand to the point that I can write queries for them. If you want support for a new language please consider contributing code. See the CONTRIBUTING for details.

Status of the plugin

Tree-sitter support in Neovim is still experimental. This plugin and its API should be considered stable insofar as breaking changes will only happen if changes to Neovim necessitates them.

Warning

There is currently a shortcoming in Neovim's Tree-sitter API which makes it so that only the first node of a capture group can be highlighted. Please see neovim/neovim#17099 for details. Affected queries:

  • HTML rainbow-parens
  • JSX (Javascript + React.js) rainbow-parens-react (affects React tags only)
  • Python (rainbow-parens) (affects only the for ... in inside comprehensions)
  • TSX (Typescript + React.js) rainbow-parens-react (affects React tags only)
  • Vue.js rainbow-parens

Most of these are related to HTML-like tags, so you can use an alternative query instead. See the manual (:h ts-rainbow-query) for a list of extra queries.

Screenshots

Bash

https://user-images.githubusercontent.com/4954650/212133420-4eec7fd3-9458-42ef-ba11-43c1ad9db26b.png

C

https://user-images.githubusercontent.com/4954650/212133423-8b4f1f00-634a-42c1-9ebc-69f8057a63e6.png

Common Lisp

https://user-images.githubusercontent.com/4954650/212133425-85496400-4e24-4afd-805c-55ca3665c4d9.png

Java

https://user-images.githubusercontent.com/4954650/212133426-7615f902-e39f-4625-bb91-2e757233c7ba.png

LaTeX

Using the blocks query to highlight the entire \begin and \end instructions.

https://user-images.githubusercontent.com/4954650/212133427-46182f57-bfd8-4cbe-be1f-9aad5ddfd796.png

License

Licensed under the Apache-2.0 license. Please see the LICENSE file for details.

Attribution

This is a fork of a previous Neovim plugin, the original repository is available under https://sr.ht/~p00f/nvim-ts-rainbow/.

Attributions from the original author

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

More Repositories

1

rainbow-delimiters.nvim

Rainbow delimiters for Neovim with Tree-sitter
Lua
240
star
2

info.vim

Browse info files from Vim (mirror)
Vim Script
35
star
3

awk-ward.nvim

Mirror of https://gitlab.com/HiPhish/awk-ward.nvim
Vim Script
22
star
4

debugpy.nvim

Command and configuration frontend for Debugpy and nvim-dap
Lua
19
star
5

Game-Source-Documentation

17
star
6

Wolf3DExtract

Command-line tool for extracting assets from Wolfenstein 3D for PC
C
15
star
7

jinja.vim

Filetype detection an syntax support for Jinja templates.
Vim Script
14
star
8

XeenTools

Open-source library for resource files of the *Might & Magic: World of Xeen* games.
C
13
star
9

guile.vim

[mirror] Syntax highlighting and file type detect of GNU Guile code in Vim
Vim Script
11
star
10

nvim-cmp-vlime

(Mirror) Completion source for nvim-cmp using Vlime for Common Lisp completions.
Lua
9
star
11

Newton-method

Newton's method in C, using an arithmetic expression compiler and virtual machine
C
8
star
12

guile-repl.nvim

The GNU Guile REPL for Nvim
Vim Script
7
star
13

desktop-notify-nvim

[mirror] Neovim notifications on your desktop
Lua
6
star
14

gradle.nvim

[mirror] Gradle integration for Neovim
Java
5
star
15

ncm2-vlime

Common Lisp completions for NCM2 using Vlime [mirror]
Vim Script
5
star
16

repl.nvim

The universal, extendible and configurable REPL plugin
Vim Script
4
star
17

workshop

Content and static site generator for my website
Scheme
3
star
18

HiPhish.github.io

GitHub Pages website
HTML
3
star
19

msgpack-racket

msgpack.org[Racket] Mirror of the MessagePack implementation for Racket
Racket
2
star
20

anno-1503-resolution-patcher

Python script to enable higher resolutions in the game Anno 1503. (mirror)
Python
2
star
21

cl-cmark

CommonMark implementation for Common Lisp based on libcmark. This system wraps the official reference implementation library, written in C, and provides lispy bindings for Common Lisp.
Common Lisp
2
star
22

fennel-repl.nvim

Interactive Fennel REPL inside Neovim (mirror)
Lua
1
star
23

quicklisp.nvim

Neovim client for Quicklisp (mirror)
Common Lisp
1
star
24

completion-nvim-vlime

[Mirror] Vlime source for completion-nvim, adds Common Lisp completion
Vim Script
1
star
25

guile-msgpack

MessagePack implementation for GNU Guile (mirror) msgpack.org[GNU Guile]
Scheme
1
star