use new default LSP mappings as inspiration

This commit is contained in:
iofq 2025-03-14 18:09:01 -05:00
parent 5043280c65
commit 851e345bca
4 changed files with 33 additions and 72 deletions

View file

@ -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

View file

@ -80,14 +80,10 @@ vim.diagnostic.config {
}
-- random keymaps
vim.keymap.set('n', 'gq', vim.cmd.bdelete, { silent = true })
vim.keymap.set('n', 'gQ', '<cmd>%bd|e#<CR>', { 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', '<cmd>%bd|e#<CR>', { noremap = true, silent = true })
vim.keymap.set('n', '<S-l>', vim.cmd.bnext, { noremap = true, silent = true })
vim.keymap.set('n', '<S-h>', vim.cmd.bprev, { noremap = true, silent = true })
vim.keymap.set({ 'v', 'i' }, 'wq', '<esc>l', { noremap = true, silent = true })
vim.keymap.set('v', "<", "<gv")
vim.keymap.set('v', ">", ">gv")

View file

@ -2,11 +2,18 @@ return {
{
'folke/trouble.nvim',
event = 'VeryLazy',
config = true,
opts = {
pinned = true,
win = {
size = 0.25,
position = 'right',
type = 'split'
},
},
keys = {
{
'<leader>de',
'<cmd>Trouble diagnostics toggle focus=true<CR>',
'gre',
'<cmd>Trouble diagnostics toggle<CR>',
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 <buffer> 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',
'<leader>rn',
vim.lsp.buf.rename,
{ buffer = ev.buf, noremap = true, silent = true, desc = 'LSP Rename' }
)
vim.keymap.set(
{ 'n', 'v' },
'<leader>da',
vim.lsp.buf.code_action,
{ buffer = ev.buf, noremap = true, silent = true, desc = 'LSP code action' }
'grt',
'<cmd>Trouble lsp toggle focus=true <CR>',
{ buffer = ev.buf, noremap = true, silent = true, desc = 'Trouble LSP ' }
)
vim.keymap.set(
'n',
'<leader>df',
function() Snacks.picker.lsp_definitions() end,
{ buffer = ev.buf, noremap = true, silent = true, desc = 'LSP definitions' }
'grs',
'<cmd>Trouble lsp_document_symbols toggle win.position=left <CR>',
{ buffer = ev.buf, noremap = true, silent = true, desc = 'Trouble LSP symbols' }
)
vim.keymap.set(
'n',
'<leader>di',
function() Snacks.picker.lsp_implementations() end,
{ buffer = ev.buf, noremap = true, silent = true, desc = 'LSP implementations' }
)
vim.keymap.set(
'n',
'<leader>dr',
function() Snacks.picker.lsp_references() end,
{ buffer = ev.buf, noremap = true, silent = true, desc = 'LSP references' }
)
vim.keymap.set(
'n',
'<leader>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', '<leader>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,
})

View file

@ -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', '<leader>gg', gs.preview_hunk, { desc = 'git preview hunk' })
vim.keymap.set('n', '<leader>gr', gs.reset_hunk, { desc = 'git reset hunk' })
vim.keymap.set('n', '<leader>gR', gs.reset_hunk, { desc = 'git reset hunk' })
vim.keymap.set('n', '<leader>gs', gs.stage_hunk, { desc = 'git stage hunk' })
vim.keymap.set('n', '<leader>gd', gs.diffthis, { desc = 'git diff hunk' })
vim.keymap.set('n', '<leader>gb', function()
gs.blame_line { full = true }
end, { desc = 'git blame_line current' })
vim.keymap.set('n', '<leader>gB', gs.toggle_current_line_blame, { desc = 'git blame_line toggle' })
vim.keymap.set('v', '<leader>gr', function()
vim.keymap.set('v', '<leader>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 = {
{ '<leader>na', '<cmd>AerialToggle<CR>', desc = 'Toggle aerial' },
},
opts = {
backends = {
"lsp",
"treesitter",
"markdown"
},
filter_kind = false,
layout = {
default_direction = "left",
},
autojump = true,
},
},
{
'gbprod/yanky.nvim',
opts = {