Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/HiPhish/nvim-ts-rainbow2
Rainbow delimiters for Neovim through Tree-sitter
https://github.com/HiPhish/nvim-ts-rainbow2
neovim rainbow treesitter
Last synced: 12 days ago
JSON representation
Rainbow delimiters for Neovim through Tree-sitter
- Host: GitHub
- URL: https://github.com/HiPhish/nvim-ts-rainbow2
- Owner: HiPhish
- License: apache-2.0
- Archived: true
- Created: 2023-01-07T14:26:19.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-05-21T00:41:04.000Z (6 months ago)
- Last Synced: 2024-10-16T23:08:16.241Z (26 days ago)
- Topics: neovim, rainbow, treesitter
- Language: Lua
- Homepage: https://gitlab.com/HiPhish/nvim-ts-rainbow2
- Size: 1.22 MB
- Stars: 338
- Watchers: 5
- Forks: 35
- Open Issues: 10
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- Contributing: CONTRIBUTING.rst
- License: LICENSE
Awesome Lists containing this project
README
.. default-role:: code
###############################
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:.. code:: lua
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
====.. image:: https://user-images.githubusercontent.com/4954650/212133420-4eec7fd3-9458-42ef-ba11-43c1ad9db26b.png
C
=.. image:: https://user-images.githubusercontent.com/4954650/212133423-8b4f1f00-634a-42c1-9ebc-69f8057a63e6.png
Common Lisp
===========.. image:: https://user-images.githubusercontent.com/4954650/212133425-85496400-4e24-4afd-805c-55ca3665c4d9.png
Java
====.. image:: 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... image:: 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.. _Tree-sitter: https://tree-sitter.github.io/tree-sitter/
.. _nvim-treesitter: https://github.com/nvim-treesitter/nvim-treesitter
.. _CONTRIBUTING: CONTRIBUTING.rst
.. _LICENSE: LICENSE
.. _manual: doc/ts-rainbow.txt
.. _neovim/neovim#17099: https://github.com/neovim/neovim/pull/17099
.. _rainbow-delimiters.nvim: https://gitlab.com/HiPhish/rainbow-delimiters.nvim
.. _GitHub mirror: https://github.com/hiphish/rainbow-delimiters.nvim