From 851e345bca464bd538d42abf2abf1f5452fa02cc Mon Sep 17 00:00:00 2001 From: iofq Date: Fri, 14 Mar 2025 18:09:01 -0500 Subject: [PATCH] use new default LSP mappings as inspiration --- nix/neovim-overlay.nix | 1 - nvim/lua/config/init.lua | 12 +++---- nvim/lua/plugins/lsp.lua | 68 ++++++++++++++++----------------------- nvim/lua/plugins/misc.lua | 24 ++------------ 4 files changed, 33 insertions(+), 72 deletions(-) diff --git a/nix/neovim-overlay.nix b/nix/neovim-overlay.nix index caa4247..669a6d7 100644 --- a/nix/neovim-overlay.nix +++ b/nix/neovim-overlay.nix @@ -12,7 +12,6 @@ with final.pkgs.lib; let mkNeovim = pkgs.callPackage ./mkNeovim.nix { inherit pkgs-wrapNeovim; }; all-plugins = with pkgs.vimPlugins; [ - aerial-nvim blink-cmp blink-ripgrep-nvim codecompanion-nvim diff --git a/nvim/lua/config/init.lua b/nvim/lua/config/init.lua index 31dd5be..5535ce6 100644 --- a/nvim/lua/config/init.lua +++ b/nvim/lua/config/init.lua @@ -80,14 +80,10 @@ vim.diagnostic.config { } -- random keymaps -vim.keymap.set('n', 'gq', vim.cmd.bdelete, { silent = true }) -vim.keymap.set('n', 'gQ', '%bd|e#', { silent = true }) -vim.keymap.set('n', 'gt', vim.cmd.bnext, { silent = true }) -vim.keymap.set('n', 'gr', vim.cmd.bprev, { silent = true }) -vim.keymap.set('n', 'tr', 'gT', { noremap = true, silent = true }) -vim.keymap.set('n', 'tt', 'gt', { noremap = true, silent = true }) -vim.keymap.set('n', 'n', 'nzz', { noremap = true, silent = true }) -vim.keymap.set('n', 'N', 'Nzz', { noremap = true, silent = true }) +vim.keymap.set('n', 'gq', vim.cmd.bdelete, { noremap = true, silent = true }) +vim.keymap.set('n', 'gQ', '%bd|e#', { noremap = true, silent = true }) +vim.keymap.set('n', '', vim.cmd.bnext, { noremap = true, silent = true }) +vim.keymap.set('n', '', vim.cmd.bprev, { noremap = true, silent = true }) vim.keymap.set({ 'v', 'i' }, 'wq', 'l', { noremap = true, silent = true }) vim.keymap.set('v', "<", "", ">gv") diff --git a/nvim/lua/plugins/lsp.lua b/nvim/lua/plugins/lsp.lua index 5b890bd..070549e 100644 --- a/nvim/lua/plugins/lsp.lua +++ b/nvim/lua/plugins/lsp.lua @@ -2,11 +2,18 @@ return { { 'folke/trouble.nvim', event = 'VeryLazy', - config = true, + opts = { + pinned = true, + win = { + size = 0.25, + position = 'right', + type = 'split' + }, + }, keys = { { - 'de', - 'Trouble diagnostics toggle focus=true', + 'gre', + 'Trouble diagnostics toggle', noremap = true, desc = 'Trouble diagnostics' } @@ -17,6 +24,7 @@ return { event = 'VeryLazy', dependencies = { 'folke/snacks.nvim', + 'folke/trouble.nvim', 'saghen/blink.cmp', }, config = function() @@ -83,66 +91,44 @@ return { callback = function(ev) local bufnr = ev.buf local client = vim.lsp.get_client_by_id(ev.data.client_id) - vim.api.nvim_command('au BufWritePre lua vim.lsp.buf.format { async = false }') + if not client then + return + end vim.keymap.set( 'n', 'K', vim.lsp.buf.hover, - { buffer = ev.buf, noremap = true, silent = true, desc = 'LSP hover' } + { buffer = ev.buf, noremap = true, silent = true, desc = 'vim.lsp.buf.hover()' } ) vim.keymap.set( 'n', - 'rn', - vim.lsp.buf.rename, - { buffer = ev.buf, noremap = true, silent = true, desc = 'LSP Rename' } - ) - vim.keymap.set( - { 'n', 'v' }, - 'da', - vim.lsp.buf.code_action, - { buffer = ev.buf, noremap = true, silent = true, desc = 'LSP code action' } + 'grt', + 'Trouble lsp toggle focus=true ', + { buffer = ev.buf, noremap = true, silent = true, desc = 'Trouble LSP ' } ) vim.keymap.set( 'n', - 'df', - function() Snacks.picker.lsp_definitions() end, - { buffer = ev.buf, noremap = true, silent = true, desc = 'LSP definitions' } + 'grs', + 'Trouble lsp_document_symbols toggle win.position=left ', + { buffer = ev.buf, noremap = true, silent = true, desc = 'Trouble LSP symbols' } ) vim.keymap.set( 'n', - 'di', - function() Snacks.picker.lsp_implementations() end, - { buffer = ev.buf, noremap = true, silent = true, desc = 'LSP implementations' } - ) - vim.keymap.set( - 'n', - 'dr', - function() Snacks.picker.lsp_references() end, - { buffer = ev.buf, noremap = true, silent = true, desc = 'LSP references' } - ) - vim.keymap.set( - 'n', - 'dl', + 'grl', vim.lsp.codelens.run, - { buffer = ev.buf, noremap = true, silent = true, desc = 'LSP codelens' } + { buffer = ev.buf, noremap = true, silent = true, desc = 'vim.lsp.codelens.run()' } ) - vim.keymap.set('n', 'dh', function() + vim.keymap.set('n', 'grh', function() vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled()) end, { buffer = ev.buf, noremap = true, silent = true, desc = 'LSP hints toggle' }) -- Auto-refresh code lenses - if not client then - return - end - local group = vim.api.nvim_create_augroup(string.format('lsp-%s-%s', bufnr, client.id), {}) if client.server_capabilities.codeLensProvider then vim.api.nvim_create_autocmd({ 'InsertLeave', 'BufWritePost', 'TextChanged' }, { - group = group, - callback = function() - vim.lsp.codelens.refresh { bufnr = bufnr } - end, + group = vim.api.nvim_create_augroup(string.format('lsp-%s-%s', bufnr, client.id), {}), + callback = function() vim.lsp.codelens.refresh { bufnr = bufnr } end, buffer = bufnr, }) - vim.lsp.codelens.refresh { bufnr = bufnr } + vim.lsp.codelens.refresh() end end, }) diff --git a/nvim/lua/plugins/misc.lua b/nvim/lua/plugins/misc.lua index e8144c5..182fc85 100644 --- a/nvim/lua/plugins/misc.lua +++ b/nvim/lua/plugins/misc.lua @@ -76,7 +76,6 @@ return { "mini", "treesitter", "neogit", - "aerial" } }, }, @@ -100,14 +99,14 @@ return { on_attach = function() local gs = package.loaded.gitsigns vim.keymap.set('n', 'gg', gs.preview_hunk, { desc = 'git preview hunk' }) - vim.keymap.set('n', 'gr', gs.reset_hunk, { desc = 'git reset hunk' }) + vim.keymap.set('n', 'gR', gs.reset_hunk, { desc = 'git reset hunk' }) vim.keymap.set('n', 'gs', gs.stage_hunk, { desc = 'git stage hunk' }) vim.keymap.set('n', 'gd', gs.diffthis, { desc = 'git diff hunk' }) vim.keymap.set('n', 'gb', function() gs.blame_line { full = true } end, { desc = 'git blame_line current' }) vim.keymap.set('n', 'gB', gs.toggle_current_line_blame, { desc = 'git blame_line toggle' }) - vim.keymap.set('v', 'gr', function() + vim.keymap.set('v', 'gR', function() gs.reset_hunk { vim.fn.line('.'), vim.fn.line('v') } end, { desc = 'git reset hunk' }) @@ -134,25 +133,6 @@ return { end, }, }, - { - 'stevearc/aerial.nvim', - cmd = { 'AerialToggle' }, - keys = { - { 'na', 'AerialToggle', desc = 'Toggle aerial' }, - }, - opts = { - backends = { - "lsp", - "treesitter", - "markdown" - }, - filter_kind = false, - layout = { - default_direction = "left", - }, - autojump = true, - }, - }, { 'gbprod/yanky.nvim', opts = {