feat(treesitter): Change to new rainbow

Change to new rainbow plugin, also make config more robust to plugin
issues.
This commit is contained in:
Robert Morrison 2023-05-05 19:12:41 +01:00
parent 73f9fd1526
commit 6677e197e9
Signed by: robert
GPG Key ID: 73E012EB3F4EC696
2 changed files with 85 additions and 8 deletions

View File

@ -1,4 +1,6 @@
if not pcall(require, 'nvim-treesitter') then local ok = pcall(require, 'nvim-treesitter')
if not ok then
return return
end end
@ -18,12 +20,6 @@ local config = {
enable = true, enable = true,
}, },
rainbow = {
enable = true,
extended_mode = true,
max_file_lines = nil
},
incremental_selection = { incremental_selection = {
enable = true, enable = true,
keymaps = { keymaps = {
@ -35,3 +31,84 @@ local config = {
} }
} }
---@diagnostic disable-next-line: redefined-local -- Readability/conciseness over correctness.
local ok, ts_rainbow = pcall(require, 'ts-rainbow')
if ok then
local rainbow = {
enable = true,
query = {
'rainbow-parens',
html = 'rainbow-tags',
latex = 'rainbow-blocks'
},
strategy = ts_rainbow.strategy.global
}
config.rainbow = rainbow
end
if pcall(require,'nvim-treesitter-textobjects') then
local textobjects = {
select = {
enable = true,
lookahead = true,
keymaps = {
["af"] = { query = "@function.outer", desc = "Select outer part of function"},
["if"] = { query = "@function.inner", desc = "Select inner part of function"},
["ac"] = { query = "@class.outer" , desc = "Select outer part of class"},
["ic"] = { query = "@class.inner" , desc = "Select inner part of class"}
}
},
move = {
enable = true,
set_jumps = true,
goto_next_start = {
["]m"] = { query = "@function.outer", desc = "Next Function start"},
["]]"] = { query = "@class.outer", desc = "Next class start"},
["]o"] = { query = "@loop.*", desc = "Next loop component"},
["]z"] = { query = "@fold", query_group = "folds" , desc = "Next Fold"}
},
goto_next_end = {
["]M"] = { query = "@function.outer", desc = "Next Function end"},
["]["] = { query = "@class.outer", desc = "Next class end"},
},
goto_previous_start = {
["[m"] = { query = "@function.outer", desc = "Previous Function start"},
["[]"] = { query = "@class.outer", desc = "Previous class start"},
["[o"] = { query = "@loop.*", desc = "Previous loop component"},
["[z"] = { query = "@fold", query_group = "folds" , desc = "Previous Fold"}
},
goto_previous_end = {
["[M"] = { query = "@function.outer", desc = "Previous Function end"},
["[["] = { query = "@class.outer", desc = "Previous class end"},
},
goto_next = {
["]d"] = { query = "@conditional.*", desc = "Next Conditional"}
},
goto_previous = {
["[d"] = { query = "@conditional.*", desc = "previous Conditional"}
}
},
lsp_interop = {
enable = true,
border = 'none',
floating_preview_opts = {},
peek_definition_code = {
["<leader>df"] = { query = "@function.outer", desc = "Peek function definition"},
["<leader>dF"] = { query = "@class.outer", desc = "Peek class definition"}
}
}
}
config.textobjects = textobjects
end
require('nvim-treesitter.configs').setup(config)

View File

@ -101,7 +101,7 @@ return require('packer').startup(function(use)
use {'nvim-treesitter/nvim-treesitter', use {'nvim-treesitter/nvim-treesitter',
run = ':TSUpdate' run = ':TSUpdate'
} }
use {'p00f/nvim-ts-rainbow', use {'HiPhish/nvim-ts-rainbow2',
requires = 'nvim-treesitter/nvim-treesitter'} requires = 'nvim-treesitter/nvim-treesitter'}
use {'nvim-treesitter/nvim-treesitter-textobjects', use {'nvim-treesitter/nvim-treesitter-textobjects',
requires = 'nvim-treesitter/nvim-treesitter'} requires = 'nvim-treesitter/nvim-treesitter'}