aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--nvim/.config/nvim/lua/tobyvin/lsp/init.lua3
-rw-r--r--nvim/.config/nvim/lua/tobyvin/plugins.lua8
-rw-r--r--nvim/.config/nvim/lua/tobyvin/plugins/tree-climber.lua18
-rw-r--r--nvim/.config/nvim/lua/tobyvin/plugins/treesitter.lua29
4 files changed, 54 insertions, 4 deletions
diff --git a/nvim/.config/nvim/lua/tobyvin/lsp/init.lua b/nvim/.config/nvim/lua/tobyvin/lsp/init.lua
index cbe4f14..11d976f 100644
--- a/nvim/.config/nvim/lua/tobyvin/lsp/init.lua
+++ b/nvim/.config/nvim/lua/tobyvin/lsp/init.lua
@@ -21,7 +21,8 @@ M.on_attach = function(client, bufnr)
nmap("w", "<cmd>Telescope lsp_workspace_diagnostics<cr>", { desc = "Workspace Diagnostics" })
local nmap_goto = require("tobyvin.utils").create_map_group("n", "<leader>lg", { desc = "Goto", buffer = bufnr })
- nmap_goto("d", vim.lsp.buf.definition, { desc = "Definition" })
+ -- disabled in favor of treesitter.refactor's goto-with-lsp-fallback
+ -- nmap_goto("d", vim.lsp.buf.definition, { desc = "Definition" })
nmap_goto("D", vim.lsp.buf.declaration, { desc = "Declaration" })
nmap_goto("i", vim.lsp.buf.implementation, { desc = "Implementation" })
nmap_goto("r", vim.lsp.buf.references, { desc = "References" })
diff --git a/nvim/.config/nvim/lua/tobyvin/plugins.lua b/nvim/.config/nvim/lua/tobyvin/plugins.lua
index 0aa87e4..e0a77b8 100644
--- a/nvim/.config/nvim/lua/tobyvin/plugins.lua
+++ b/nvim/.config/nvim/lua/tobyvin/plugins.lua
@@ -275,6 +275,14 @@ M.plugins = function(use)
})
use({
+ "drybalka/tree-climber.nvim",
+ requires = { "nvim-treesitter/nvim-treesitter" },
+ config = function()
+ require("tobyvin.plugins.tree-climber").setup()
+ end,
+ })
+
+ use({
"ThePrimeagen/refactoring.nvim",
requires = {
"nvim-lua/plenary.nvim",
diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/tree-climber.lua b/nvim/.config/nvim/lua/tobyvin/plugins/tree-climber.lua
new file mode 100644
index 0000000..c569480
--- /dev/null
+++ b/nvim/.config/nvim/lua/tobyvin/plugins/tree-climber.lua
@@ -0,0 +1,18 @@
+local M = {}
+
+M.setup = function()
+ local status_ok, tree_climber = pcall(require, "tree-climber")
+ if not status_ok then
+ vim.notify("Failed to load module 'tree-climber'", "error")
+ return
+ end
+
+ vim.keymap.set({ "n", "v", "o" }, "<s-h>", tree_climber.goto_parent, { desc = "Goto Parent" })
+ vim.keymap.set({ "n", "v", "o" }, "<s-l>", tree_climber.goto_child, { desc = "Goto Child" })
+ vim.keymap.set({ "n", "v", "o" }, "<s-j>", tree_climber.goto_next, { desc = "Goto Next" })
+ vim.keymap.set({ "n", "v", "o" }, "<s-k>", tree_climber.goto_prev, { desc = "Goto Prev" })
+ vim.keymap.set("n", "<c-k>", tree_climber.swap_prev, { desc = "Swap Prev" })
+ vim.keymap.set("n", "<c-j>", tree_climber.swap_next, { desc = "Swap Next" })
+end
+
+return M
diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/treesitter.lua b/nvim/.config/nvim/lua/tobyvin/plugins/treesitter.lua
index e620c14..8925034 100644
--- a/nvim/.config/nvim/lua/tobyvin/plugins/treesitter.lua
+++ b/nvim/.config/nvim/lua/tobyvin/plugins/treesitter.lua
@@ -8,20 +8,43 @@ M.setup = function()
end
treesitter.setup({
- ensure_installed = { "c", "lua", "rust", "latex" },
+ ensure_installed = "all",
indent = {
enable = true,
},
highlight = {
enable = true,
- additional_vim_regex_highlighting = false,
+ additional_vim_regex_highlighting = { "latex" },
+ disable = function(_, bufnr)
+ return vim.api.nvim_buf_line_count(bufnr) > 2500
+ end,
+ },
+ incremental_selection = {
+ enable = true,
+ keymaps = {
+ init_selection = "<CR>",
+ scope_incremental = "<CR>",
+ node_incremental = "<TAB>",
+ node_decremental = "<S-TAB>",
+ },
},
- -- TODO: add navagation with lsp fallback, requires setting keybinds for module manually
refactor = {
highlight_definitions = {
enable = true,
clear_on_cursor_move = true,
},
+ smart_rename = {
+ enable = true,
+ keymaps = {
+ smart_rename = "<leader>lr",
+ },
+ },
+ navigation = {
+ enable = true,
+ keymaps = {
+ goto_definition_lsp_fallback = "<leader>lgd",
+ },
+ },
},
textobjects = {
select = {