diff --git a/lua/config/lsp-settings.lua b/lua/config/lsp-settings.lua index 6335a12..1d97199 100644 --- a/lua/config/lsp-settings.lua +++ b/lua/config/lsp-settings.lua @@ -10,6 +10,12 @@ vim.api.nvim_create_autocmd('LspAttach', { ) end + local selmap = function(from, to) + vim.keymap.set({"x", "o"}, from, to, + { noremap = true, silent = true, buffer = ev.buf } + ) + end + local builtin = require('telescope.builtin') local dap = require('dap') @@ -36,5 +42,44 @@ vim.api.nvim_create_autocmd('LspAttach', { map("da", dap.toggle_breakpoint) map("dc", dap.continue) map("ds", dap.step_into) + + local move = require("nvim-treesitter-textobjects.move") + map("]f", function() move.goto_next_start "@function.outer" end) + map("[f", function() move.goto_previous_start "@function.outer" end) + map("]F", function() move.goto_next_end "@function.outer" end) + map("[F", function() move.goto_previous_end "@function.outer" end) + map("][", function() move.goto_next_start "@class.outer" end) + map("[[", function() move.goto_previous_start "@class.outer" end) + map("]]", function() move.goto_next_end "@class.outer" end) + map("[]", function() move.goto_previous_end "@class.outer" end) + + local select = require("nvim-treesitter-textobjects.select") + selmap("af", function() select.select_textobject("@function.outer", "textobjects") end) + selmap("kf", function() select.select_textobject("@function.inner", "textobjects") end) + selmap("ac", function() select.select_textobject("@class.outer", "textobjects") end) + selmap("kc", function() select.select_textobject("@class.inner", "textobjects") end) + selmap("ap", function() select.select_textobject("@parameter.outer", "textobjects") end) + selmap("kp", function() select.select_textobject("@parameter.inner", "textobjects") end) + + local swap = require("nvim-treesitter-textobjects.swap") + map("so", function() swap.swap_next "@parameter.inner" end) + map("sn", function() swap.swap_previous "@parameter.inner" end) + + -- goto_next_start = { + -- ["]f"] = "@function.outer", + -- ["]]"] = "@class.outer", + -- }, + -- goto_next_end = { + -- ["]F"] = "@function.outer", + -- ["]["] = "@class.outer", + -- }, + -- goto_previous_start = { + -- ["[f"] = "@function.outer", + -- ["[["] = "@class.outer", + -- }, + -- goto_previous_end = { + -- ["[F"] = "@function.outer", + -- ["[]"] = "@class.outer", + -- }, end }) diff --git a/lua/plugins/dev.lua b/lua/plugins/dev.lua index ccab844..cee591e 100644 --- a/lua/plugins/dev.lua +++ b/lua/plugins/dev.lua @@ -2,7 +2,7 @@ return { { "mrcjkb/rustaceanvim", ft = { "rust" }, - version = '^7', + version = '^8', lazy = false, }, { diff --git a/lua/plugins/visual.lua b/lua/plugins/visual.lua index fd453ce..4144152 100644 --- a/lua/plugins/visual.lua +++ b/lua/plugins/visual.lua @@ -37,68 +37,26 @@ return { }, { "nvim-treesitter/nvim-treesitter-textobjects", + branch = "main", lazy = false, - enabled = true, dependencies = { "nvim-treesitter/nvim-treesitter" }, + init = function() + vim.g.no_plugin_maps = true + end, config = function() - require("nvim-treesitter.configs").setup { - highlight = { - enable = true, - additional_vim_regex_highlighting = false, + require("nvim-treesitter-textobjects").setup { + move = { + set_jumps = true, }, - textobjects = { - move = { - enable = true, - set_jumps = true, -- whether to set jumps in the jumplist - goto_next_start = { - ["]f"] = "@function.outer", - ["]]"] = "@class.outer", - }, - goto_next_end = { - ["]F"] = "@function.outer", - ["]["] = "@class.outer", - }, - goto_previous_start = { - ["[f"] = "@function.outer", - ["[["] = "@class.outer", - }, - goto_previous_end = { - ["[F"] = "@function.outer", - ["[]"] = "@class.outer", - }, - }, - select = { - enable = true, - lookahead = true, - keymaps = { - ["af"] = "@function.outer", - ["kf"] = "@function.inner", - ["ac"] = "@class.outer", - ["kc"] = "@class.inner", - ["ap"] = "@parameter.outer", - ["kp"] = "@parameter.inner", - }, - }, - swap = { - enable = true, - swap_next = { - ["so"] = "@parameter.inner", - }, - swap_previous = { - ["sn"] = "@parameter.inner", - }, - }, + select = { + lookahead = true, }, } end }, { "nvim-treesitter/nvim-treesitter", - build = function() - require("nvim-treesitter.install").update { - with_sync = true - } - end, + build = ':TSUpdate', }, "elkowar/yuck.vim", "kmonad/kmonad-vim"