mirror of
https://github.com/iofq/nvim.nix.git
synced 2026-01-23 08:55:16 -06:00
use new default LSP mappings as inspiration
This commit is contained in:
parent
5043280c65
commit
851e345bca
4 changed files with 33 additions and 72 deletions
|
|
@ -12,7 +12,6 @@ with final.pkgs.lib; let
|
||||||
mkNeovim = pkgs.callPackage ./mkNeovim.nix { inherit pkgs-wrapNeovim; };
|
mkNeovim = pkgs.callPackage ./mkNeovim.nix { inherit pkgs-wrapNeovim; };
|
||||||
|
|
||||||
all-plugins = with pkgs.vimPlugins; [
|
all-plugins = with pkgs.vimPlugins; [
|
||||||
aerial-nvim
|
|
||||||
blink-cmp
|
blink-cmp
|
||||||
blink-ripgrep-nvim
|
blink-ripgrep-nvim
|
||||||
codecompanion-nvim
|
codecompanion-nvim
|
||||||
|
|
|
||||||
|
|
@ -80,14 +80,10 @@ vim.diagnostic.config {
|
||||||
}
|
}
|
||||||
|
|
||||||
-- random keymaps
|
-- random keymaps
|
||||||
vim.keymap.set('n', 'gq', vim.cmd.bdelete, { silent = true })
|
vim.keymap.set('n', 'gq', vim.cmd.bdelete, { noremap = true, silent = true })
|
||||||
vim.keymap.set('n', 'gQ', '<cmd>%bd|e#<CR>', { silent = true })
|
vim.keymap.set('n', 'gQ', '<cmd>%bd|e#<CR>', { noremap = true, silent = true })
|
||||||
vim.keymap.set('n', 'gt', vim.cmd.bnext, { silent = true })
|
vim.keymap.set('n', '<S-l>', vim.cmd.bnext, { noremap = true, silent = true })
|
||||||
vim.keymap.set('n', 'gr', vim.cmd.bprev, { silent = true })
|
vim.keymap.set('n', '<S-h>', vim.cmd.bprev, { noremap = true, 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({ 'v', 'i' }, 'wq', '<esc>l', { 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")
|
||||||
vim.keymap.set('v', ">", ">gv")
|
vim.keymap.set('v', ">", ">gv")
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,18 @@ return {
|
||||||
{
|
{
|
||||||
'folke/trouble.nvim',
|
'folke/trouble.nvim',
|
||||||
event = 'VeryLazy',
|
event = 'VeryLazy',
|
||||||
config = true,
|
opts = {
|
||||||
|
pinned = true,
|
||||||
|
win = {
|
||||||
|
size = 0.25,
|
||||||
|
position = 'right',
|
||||||
|
type = 'split'
|
||||||
|
},
|
||||||
|
},
|
||||||
keys = {
|
keys = {
|
||||||
{
|
{
|
||||||
'<leader>de',
|
'gre',
|
||||||
'<cmd>Trouble diagnostics toggle focus=true<CR>',
|
'<cmd>Trouble diagnostics toggle<CR>',
|
||||||
noremap = true,
|
noremap = true,
|
||||||
desc = 'Trouble diagnostics'
|
desc = 'Trouble diagnostics'
|
||||||
}
|
}
|
||||||
|
|
@ -17,6 +24,7 @@ return {
|
||||||
event = 'VeryLazy',
|
event = 'VeryLazy',
|
||||||
dependencies = {
|
dependencies = {
|
||||||
'folke/snacks.nvim',
|
'folke/snacks.nvim',
|
||||||
|
'folke/trouble.nvim',
|
||||||
'saghen/blink.cmp',
|
'saghen/blink.cmp',
|
||||||
},
|
},
|
||||||
config = function()
|
config = function()
|
||||||
|
|
@ -83,66 +91,44 @@ return {
|
||||||
callback = function(ev)
|
callback = function(ev)
|
||||||
local bufnr = ev.buf
|
local bufnr = ev.buf
|
||||||
local client = vim.lsp.get_client_by_id(ev.data.client_id)
|
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(
|
vim.keymap.set(
|
||||||
'n',
|
'n',
|
||||||
'K',
|
'K',
|
||||||
vim.lsp.buf.hover,
|
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(
|
vim.keymap.set(
|
||||||
'n',
|
'n',
|
||||||
'<leader>rn',
|
'grt',
|
||||||
vim.lsp.buf.rename,
|
'<cmd>Trouble lsp toggle focus=true <CR>',
|
||||||
{ buffer = ev.buf, noremap = true, silent = true, desc = 'LSP Rename' }
|
{ buffer = ev.buf, noremap = true, silent = true, desc = 'Trouble LSP ' }
|
||||||
)
|
|
||||||
vim.keymap.set(
|
|
||||||
{ 'n', 'v' },
|
|
||||||
'<leader>da',
|
|
||||||
vim.lsp.buf.code_action,
|
|
||||||
{ buffer = ev.buf, noremap = true, silent = true, desc = 'LSP code action' }
|
|
||||||
)
|
)
|
||||||
vim.keymap.set(
|
vim.keymap.set(
|
||||||
'n',
|
'n',
|
||||||
'<leader>df',
|
'grs',
|
||||||
function() Snacks.picker.lsp_definitions() end,
|
'<cmd>Trouble lsp_document_symbols toggle win.position=left <CR>',
|
||||||
{ buffer = ev.buf, noremap = true, silent = true, desc = 'LSP definitions' }
|
{ buffer = ev.buf, noremap = true, silent = true, desc = 'Trouble LSP symbols' }
|
||||||
)
|
)
|
||||||
vim.keymap.set(
|
vim.keymap.set(
|
||||||
'n',
|
'n',
|
||||||
'<leader>di',
|
'grl',
|
||||||
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',
|
|
||||||
vim.lsp.codelens.run,
|
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())
|
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
|
||||||
end, { buffer = ev.buf, noremap = true, silent = true, desc = 'LSP hints toggle' })
|
end, { buffer = ev.buf, noremap = true, silent = true, desc = 'LSP hints toggle' })
|
||||||
-- Auto-refresh code lenses
|
-- 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
|
if client.server_capabilities.codeLensProvider then
|
||||||
vim.api.nvim_create_autocmd({ 'InsertLeave', 'BufWritePost', 'TextChanged' }, {
|
vim.api.nvim_create_autocmd({ 'InsertLeave', 'BufWritePost', 'TextChanged' }, {
|
||||||
group = group,
|
group = vim.api.nvim_create_augroup(string.format('lsp-%s-%s', bufnr, client.id), {}),
|
||||||
callback = function()
|
callback = function() vim.lsp.codelens.refresh { bufnr = bufnr } end,
|
||||||
vim.lsp.codelens.refresh { bufnr = bufnr }
|
|
||||||
end,
|
|
||||||
buffer = bufnr,
|
buffer = bufnr,
|
||||||
})
|
})
|
||||||
vim.lsp.codelens.refresh { bufnr = bufnr }
|
vim.lsp.codelens.refresh()
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,6 @@ return {
|
||||||
"mini",
|
"mini",
|
||||||
"treesitter",
|
"treesitter",
|
||||||
"neogit",
|
"neogit",
|
||||||
"aerial"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -100,14 +99,14 @@ return {
|
||||||
on_attach = function()
|
on_attach = function()
|
||||||
local gs = package.loaded.gitsigns
|
local gs = package.loaded.gitsigns
|
||||||
vim.keymap.set('n', '<leader>gg', gs.preview_hunk, { desc = 'git preview hunk' })
|
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>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>gd', gs.diffthis, { desc = 'git diff hunk' })
|
||||||
vim.keymap.set('n', '<leader>gb', function()
|
vim.keymap.set('n', '<leader>gb', function()
|
||||||
gs.blame_line { full = true }
|
gs.blame_line { full = true }
|
||||||
end, { desc = 'git blame_line current' })
|
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('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') }
|
gs.reset_hunk { vim.fn.line('.'), vim.fn.line('v') }
|
||||||
end, { desc = 'git reset hunk' })
|
end, { desc = 'git reset hunk' })
|
||||||
|
|
||||||
|
|
@ -134,25 +133,6 @@ return {
|
||||||
end,
|
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',
|
'gbprod/yanky.nvim',
|
||||||
opts = {
|
opts = {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue