p00f / nvim-ts-rainbow

Rainbow parentheses for neovim using tree-sitter. Use https://sr.ht/~p00f/nvim-ts-rainbow instead
Apache License 2.0
869 stars 67 forks source link

Can't get the plugin to work #120

Open ybbuc opened 2 years ago

ybbuc commented 2 years ago

Describe the bug Using the Neovim 0.7.2 and the latest treesitter, I cannot get it to color anything.

Steps to reproduce Install plugin and configure, then nothing. See dotfiles

Expected behavior Coloring nested enclosing characters like {{}}

Screenshots CleanShot 2022-07-12 at 09 04 51

p00f commented 2 years ago

Also paste the text

p00f commented 2 years ago

It doesn't look like you require your plugins file? Does :PackerStatus show nvim-ts-rainbow?

ybbuc commented 2 years ago

It doesn't work for any text, not just that text. I can just write a bunch of curly brackets in a lua file and get nothing. CleanShot 2022-07-12 at 12 57 44

ybbuc commented 2 years ago

Here's some nested tex code that should use the rainbow: \lim_{t\to0}\frac{1}{\sqrt{t^{2}+9}+3}

p00f commented 2 years ago

works for me image

Can't reproduce, sorry. I'll keep this open so that someone who has this issue can help

cathaysia commented 2 years ago

load plugins by this order:

  1. this plugin
  2. bufferline
  3. colorschema

this plugins will not work when

  1. this plugin
  2. colorschema
  3. bufferline
cathaysia commented 2 years ago

emm, It's weird that it doesn't work in my first Buffer, but the second one works fine. But like I said above, tweaking Bufferline and colorschema has a chance to make this plugin work

ybbuc commented 2 years ago

@cathaysia Appreciate the suggestion, but no dice. I wonder if it's because I'm not using Neovim nightly.

kostafey commented 2 years ago

Can reproduce for both NVIM v0.7.2 and NVIM v0.8.0-dev+1027-g4bf005e9f. plugins.lua:

vim.cmd [[packadd packer.nvim]]

return require('packer').startup(function(use)
  -- Packer can manage itself
  use 'wbthomason/packer.nvim'

  use 'nvim-treesitter/nvim-treesitter'
  require("nvim-treesitter.configs").setup {
    ensure_installed = { "c", "lua", "rust", "java", "clojure" },
     -- Automatically install missing parsers when entering buffer
    auto_install = true,
    highlight = {        
        enable = true,
      additional_vim_regex_highlighting = false,
    },
    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 = {"#666666", "#5544EE", "#2265DC", "#00A89B", "#229900", "#999900", "#F57900", "#EE66E8"}, -- table of hex strings
      -- termcolors = {} -- table of colour name strings
    }
  }
  -- Colorscheme
  use 'kostafey/organicgreen.nvim'
  vim.cmd[[colorscheme organicgreen]]
end)

:PackerStatus

                packer.nvim - Total plugins: 7
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 • neovim-session-manager
 • notifier.nvim
 • nvim-colorizer.lua
 • organicgreen.nvim
 • packer.nvim
 • plenary.nvim
 • telescope.nvim

No highlight brackets: image

adoyle-h commented 2 years ago

If you defined {colors = { "#cc241d", "#a89984" }, termcolors = {}}, you can't reproduce the issue. Because there are seven colors and termcolors in default config.

https://github.com/p00f/nvim-ts-rainbow/blob/c641e224731180371e6a4705762af0c6a882d95e/lua/rainbow.lua#L29-L46

If you defined colors more than seven,

colors = { "#cc241d", "#a89984", "#b16286", "#d79921", "#689d6a", "#d65d0e", "#458588", "#005f87" },
termcolors = {},

Or colors' length more than termcolors',

colors = { "#cc241d", "#a89984"},
termcolors = { 3 },

then the issue can be reproduced.

https://github.com/p00f/nvim-ts-rainbow/blob/c641e224731180371e6a4705762af0c6a882d95e/lua/rainbow/internal.lua#L160-L166

When termcolors[i] is nil, setting highlight group will fail.

kostafey commented 2 years ago

adoyle-h looks like I'm doing something completely wrong. But I can't enable plugin for seven colors too. The same story if I remove colors and termcolors lines from config at all.

nvim --version
NVIM v0.8.0-dev+1027-g4bf005e9f

:PackerStatus

                packer.nvim - Total plugins: 2
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 • nvim-treesitter
 • packer.nvim

The total config for test case: ~/.config/nvim/init.vim:

lua require('plugins')

~/.config/nvim/lua/plugins.lua:

vim.cmd [[packadd packer.nvim]]

return require('packer').startup(function(use)
  -- Packer can manage itself
  use 'wbthomason/packer.nvim'

  use 'nvim-treesitter/nvim-treesitter'
  -- use 'p00f/nvim-ts-rainbow'
  require("nvim-treesitter.configs").setup {
    ensure_installed = { "c", "lua", "rust", "java", "clojure" },
     -- Automatically install missing parsers when entering buffer
    auto_install = true,
    highlight = {        
        enable = true,
      -- additional_vim_regex_highlighting = false,
    },
    rainbow = {
      enable = true,
      colors = { 
        "#cc241d", 
        "#a89984", 
        "#b16286", 
        "#d79921", 
        "#689d6a", 
        "#d65d0e", 
        "#458588", 
    }, 
    termcolors = { 
        "Red", 
        "Green", 
        "Yellow", 
        "Blue", 
        "Magenta", 
        "Cyan", 
        "White", 
    },
    }
  }
end)

Result: image

p00f commented 2 years ago

use 'p00f/nvim-ts-rainbow is commented out @kostafey

kostafey commented 2 years ago

@p00f oh, really. It works now. Thank you!