Change to new rainbow plugin, also make config more robust to plugin issues.
115 lines
2.8 KiB
Lua
115 lines
2.8 KiB
Lua
local ok = pcall(require, 'nvim-treesitter')
|
|
|
|
if not ok then
|
|
return
|
|
end
|
|
|
|
local config = {
|
|
ensure_installed = {
|
|
"c",
|
|
"cpp",
|
|
"c_sharp",
|
|
"markdown",
|
|
"latex",
|
|
"go",
|
|
"rust"
|
|
},
|
|
sync_install = false,
|
|
|
|
highlight = {
|
|
enable = true,
|
|
},
|
|
|
|
incremental_selection = {
|
|
enable = true,
|
|
keymaps = {
|
|
init_selection = '<CR>',
|
|
scope_incremental = '<CR>',
|
|
node_incremental = '<TAB>',
|
|
node_decremental = '<S-TAB>'
|
|
}
|
|
}
|
|
}
|
|
|
|
---@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)
|