diff --git a/nix/neovim-overlay.nix b/nix/neovim-overlay.nix index df3df0f..3e60c7d 100644 --- a/nix/neovim-overlay.nix +++ b/nix/neovim-overlay.nix @@ -35,10 +35,12 @@ with final.pkgs.lib; let nvim-treesitter-context nvim-treesitter-textobjects nvim-treesitter.withAllGrammars + refactoring-nvim render-markdown-nvim scope-nvim snacks-nvim trouble-nvim + treewalker-nvim yanky-nvim ]; diff --git a/nvim/lua/plugins/mini.lua b/nvim/lua/plugins/mini.lua index eb365a0..0ac1a73 100644 --- a/nvim/lua/plugins/mini.lua +++ b/nvim/lua/plugins/mini.lua @@ -62,6 +62,8 @@ return { { mode = 'n', keys = '"' }, { mode = 'n', keys = '' }, { mode = 'n', keys = 'z' }, + { mode = 'n', keys = ']' }, + { mode = 'n', keys = '[' }, }, window = { config = { width = 'auto', }, @@ -72,6 +74,14 @@ return { miniclue.gen_clues.registers(), miniclue.gen_clues.windows(), miniclue.gen_clues.z(), + { mode = 'n', keys = 'wj', postkeys = 'w', desc = 'TS Down' }, + { mode = 'n', keys = 'wk', postkeys = 'w', desc = 'TS Up' }, + { mode = 'n', keys = 'wh', postkeys = 'w', desc = 'TS Left' }, + { mode = 'n', keys = 'wl', postkeys = 'w', desc = 'TS Right' }, + { mode = 'n', keys = 'w', postkeys = 'w', desc = 'Swap TS Down' }, + { mode = 'n', keys = 'w', postkeys = 'w', desc = 'Swap TS Up' }, + { mode = 'n', keys = 'w', postkeys = 'w', desc = 'Swap TS Left' }, + { mode = 'n', keys = 'w', postkeys = 'w', desc = 'Swap TS Right' }, }, } diff --git a/nvim/lua/plugins/treesitter.lua b/nvim/lua/plugins/treesitter.lua index 36bc496..16f98c2 100644 --- a/nvim/lua/plugins/treesitter.lua +++ b/nvim/lua/plugins/treesitter.lua @@ -3,45 +3,51 @@ return { 'nvim-treesitter/nvim-treesitter', event = 'VeryLazy', dependencies = { - 'nvim-treesitter/nvim-treesitter-context', + { + 'nvim-treesitter/nvim-treesitter-context', + opts = { + max_lines = 2, + min_window_height = 50, + } + }, 'nvim-treesitter/nvim-treesitter-textobjects', + { + 'aaronik/treewalker.nvim', + keys = { + { "wj", 'Treewalker Down', silent = true, desc = 'Down (Treewalker)' }, + { "wk", 'Treewalker Up', silent = true, desc = 'Up (Treewalker)' }, + { "wh", 'Treewalker Left', silent = true, desc = 'Left (Treewalker)' }, + { "wl", 'Treewalker Right', silent = true, desc = 'Right (Treewalker)' }, + { "w", 'Treewalker SwapDown', silent = true, desc = 'SwapDown (Treewalker)' }, + { "w", 'Treewalker SwapUp', silent = true, desc = 'SwapUp (Treewalker)' }, + { "w", 'Treewalker SwapLeft', silent = true, desc = 'SwapLeft (Treewalker)' }, + { "w", 'Treewalker SwapRight', silent = true, desc = 'SwapRight (Treewalker)' }, + } + } }, config = function() require('nvim-treesitter.configs').setup { ensure_installed = {}, + auto_install = false, highlight = { enable = true, - disable = function(_, buf) - local max_filesize = 100 * 1024 -- 100 KiB - local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) - if ok and stats and stats.size > max_filesize then - return true - end - end, additional_vim_regex_highlighting = false, }, indent = { enable = true, }, - autopairs = { - enable = true, - }, matchup = { enable = true, }, textobjects = { select = { enable = true, - lookahead = true, keymaps = { ['af'] = '@function.outer', ['if'] = '@function.inner', - ['aa'] = '@statement.outer', ['ia'] = '@parameter.inner', ["ik"] = "@assignment.lhs", - ["ak"] = "@assignment.inner", ["iv"] = "@assignment.rhs", - ["av"] = "@assignment.outer", }, }, move = { @@ -49,21 +55,21 @@ return { goto_next_start = { [']a'] = '@parameter.inner', [']f'] = '@function.outer', - [']]'] = '@block.inner', + [']]'] = '@block.outer', }, goto_previous_start = { ['[a'] = '@parameter.inner', ['[f'] = '@function.outer', - ['[['] = '@block.inner', + ['[['] = '@block.outer', }, }, swap = { enable = true, swap_next = { - ['s]'] = '@parameter.inner', + ['a]'] = '@parameter.inner', }, swap_previous = { - ['s['] = '@parameter.inner', + ['a['] = '@parameter.inner', }, }, }, @@ -77,10 +83,6 @@ return { }, } - require('treesitter-context').setup { - max_lines = 2, - min_window_height = 50, - } end, }, }