Keymaps, live grep args

This commit is contained in:
Amanda Graven 2024-12-05 21:32:29 +01:00
parent c3158d774c
commit aaaa3bdf85

View file

@ -169,6 +169,7 @@ vim.keymap.set('n', '<Leader>qh', '<Cmd>colder<CR>', { desc = 'Older list' })
vim.keymap.set('n', '<Leader>ql', '<Cmd>cnewer<CR>', { desc = 'Newer list' }) vim.keymap.set('n', '<Leader>ql', '<Cmd>cnewer<CR>', { desc = 'Newer list' })
vim.keymap.set('n', '<Leader>c', '<Cmd>vert te<CR>', { desc = 'Terminal (vsplit)' }) vim.keymap.set('n', '<Leader>c', '<Cmd>vert te<CR>', { desc = 'Terminal (vsplit)' })
vim.keymap.set('n', '<Leader>C', '<Cmd>tab te<CR>', { desc = 'Terminal (tab)' }) vim.keymap.set('n', '<Leader>C', '<Cmd>tab te<CR>', { desc = 'Terminal (tab)' })
vim.keymap.set('t', '<C-s>', '<C-\\><C-n>', { desc = 'Normal mode' })
-- Diagnostic mappings -- Diagnostic mappings
vim.keymap.set('n', '<Leader>eo', vim.diagnostic.open_float, { desc = 'Open diagnostic' }) vim.keymap.set('n', '<Leader>eo', vim.diagnostic.open_float, { desc = 'Open diagnostic' })
@ -187,6 +188,12 @@ vim.keymap.set('n', '<Leader>eh', vim.diagnostic.hide, { desc = 'Hide diagnostic
vim.keymap.set('n', '<Leader>es', vim.diagnostic.show, { desc = 'Show diagnostics' }) vim.keymap.set('n', '<Leader>es', vim.diagnostic.show, { desc = 'Show diagnostics' })
vim.keymap.set('n', '<Leader>eC', vim.diagnostic.reset, { desc = 'Clear diagnostics' }) vim.keymap.set('n', '<Leader>eC', vim.diagnostic.reset, { desc = 'Clear diagnostics' })
if vim.g.neovide then
vim.keymap.set('l', '<C-v>', '<C-r>+', { desc = 'Paste' })
vim.keymap.set('l', '<C-S-v>', '<C-r>+', { desc = 'Paste' })
vim.keymap.set('t', '<C-S-v>', '<C-\\><C-n>pi', { desc = 'Paste' })
end
-- Commands -- Commands
vim.cmd [[ vim.cmd [[
command! Light set background=light command! Light set background=light
@ -246,7 +253,7 @@ au('LspAttach', { callback = function(event)
i = {'<Cmd>Telescope lsp_implementations<CR>', 'Implementation'}, i = {'<Cmd>Telescope lsp_implementations<CR>', 'Implementation'},
I = {vim.lsp.buf.implementation, 'Implementation (quickfix)'}, I = {vim.lsp.buf.implementation, 'Implementation (quickfix)'},
r = {vim.lsp.buf.rename, 'Rename'}, r = {vim.lsp.buf.rename, 'Rename'},
h = {function() vim.lsp.inlay_hint.enable(0, not vim.lsp.inlay_hint.is_enabled()) end, 'Inlay hints'}, h = {function() vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled()) end, 'Inlay hints'},
l = {vim.lsp.codelens.refresh, 'Show codelenses'}, l = {vim.lsp.codelens.refresh, 'Show codelenses'},
L = {vim.lsp.codelens.run, 'Run codelens'}, L = {vim.lsp.codelens.run, 'Run codelens'},
t = {'<Cmd>Telescope lsp_type_definitions<CR>', 'Type definition'}, t = {'<Cmd>Telescope lsp_type_definitions<CR>', 'Type definition'},
@ -297,10 +304,12 @@ require('lazy').setup({
'rhysd/vim-crystal', 'rhysd/vim-crystal',
'bakpakin/fennel.vim', 'bakpakin/fennel.vim',
'mboughaba/i3config.vim', 'mboughaba/i3config.vim',
{'OXY2DEV/markview.nvim', lazy = false, opts = { initial_state = false }},
'mracos/mermaid.vim', 'mracos/mermaid.vim',
'lifepillar/pgsql.vim', 'lifepillar/pgsql.vim',
'ajouellette/sway-vim-syntax', 'ajouellette/sway-vim-syntax',
'cespare/vim-toml', 'cespare/vim-toml',
'mfussenegger/nvim-ansible',
-- Editing -- Editing
{'LunarWatcher/auto-pairs', init = function() {'LunarWatcher/auto-pairs', init = function()
@ -354,7 +363,9 @@ require('lazy').setup({
{'kylechui/nvim-surround', opts = {}}, {'kylechui/nvim-surround', opts = {}},
'wellle/targets.vim', 'wellle/targets.vim',
{'vim-test/vim-test', init = function() {'vim-test/vim-test', init = function()
vim.g['test#neovim#term_position'] = 'vert' -- Uncomment to move test output to the side instead of bottom
-- vim.g['test#neovim#term_position'] = 'vert'
vim.g['echo_command'] = 1
vim.g['test#strategy'] = 'neovim' vim.g['test#strategy'] = 'neovim'
end}, end},
{'julian/vim-textobj-variable-segment', dependencies = {'kana/vim-textobj-user'}}, {'julian/vim-textobj-variable-segment', dependencies = {'kana/vim-textobj-user'}},
@ -392,6 +403,7 @@ require('lazy').setup({
lspconfig.util.default_config.capabilities = capabilities lspconfig.util.default_config.capabilities = capabilities
-- Set up language servers -- Set up language servers
lspconfig.ansiblels.setup {}
lspconfig.bashls.setup {} lspconfig.bashls.setup {}
lspconfig.clangd.setup {} lspconfig.clangd.setup {}
lspconfig.eslint.setup { autostart = false } lspconfig.eslint.setup { autostart = false }
@ -583,6 +595,11 @@ require('lazy').setup({
on_attach = function(client, bufnr) on_attach = function(client, bufnr)
jdtls.setup_dap() jdtls.setup_dap()
vim.keymap.set('n', '<Leader>lo', jdtls.organize_imports, { desc = 'Organize imports', buffer = bufnr })
vim.keymap.set('n', '<Leader>Xm', jdtls.test_nearest_method, { desc = 'Test nearest method', buffer = bufnr })
vim.keymap.set('n', '<Leader>Xc', jdtls.test_class, { desc = 'Test class', buffer = bufnr })
vim.keymap.set('n', '<Leader>Xg', jdtls.tests.goto_subjects, { desc = 'Go to test', buffer = bufnr })
vim.keymap.set('n', '<Leader>Xb', 'JdtCompile full', { desc = 'Build', buffer = bufnr })
end, end,
} }
@ -638,7 +655,7 @@ require('lazy').setup({
}, },
tsserver_plugins = (function () tsserver_plugins = (function ()
if fn.has('nvim-0.10') == 0 then return end if fn.has('nvim-0.10') == 0 then return end
if vim.system({'npm', 'list', '-g', '@styled/typescript-styled-plugin'}):wait().code == 0 then if vim.fn.executable('npm') == 1 and vim.system({'npm', 'list', '-g', '@styled/typescript-styled-plugin'}):wait().code == 0 then
return {'@styled/typescript-styled-plugin'} return {'@styled/typescript-styled-plugin'}
else else
return {} return {}
@ -742,7 +759,7 @@ require('lazy').setup({
code_action = vim.lsp.buf.code_action code_action = vim.lsp.buf.code_action
end end
vim.keymap.set('n', 'ga', code_action, { buffer = event.buf, desc = 'Code action' }) vim.keymap.set('n', 'ga', code_action, { buffer = event.buf, desc = 'Code action' })
vim.keymap.set('n', '<Leader>la', code_action, { buffer = event.buf, desc = 'Code action' }) vim.keymap.set('n', '<Leader>la', vim.lsp.buf.code_action, { buffer = event.buf, desc = 'Code action' })
end }) end })
end}, end},
{'MattesGroeger/vim-bookmarks', config = function() {'MattesGroeger/vim-bookmarks', config = function()
@ -915,12 +932,29 @@ require('lazy').setup({
clear_on_continue = true, clear_on_continue = true,
}}, }},
{'LiadOz/nvim-dap-repl-highlights', opts = {}}, {'LiadOz/nvim-dap-repl-highlights', opts = {}},
{'lucaSartore/nvim-dap-exception-breakpoints', dependencies = {'mfussenegger/nvim-dap'}, config = function()
vim.keymap.set('n', '<Leader>de', require'nvim-dap-exception-breakpoints', { desc = 'Exception breakpoints'})
end},
{'sindrets/diffview.nvim', opts = { {'sindrets/diffview.nvim', opts = {
-- Use nicer highlighting for diffs -- Use nicer highlighting for diffs
enhanced_diff_hl = true, enhanced_diff_hl = true,
win_config = {
win_opts = {
wrap = false,
}
},
key_bindings = {
view = {
["gq"] = "<CMD>DiffviewClose<CR>",
},
file_panel = {
["gq"] = "<CMD>DiffviewClose<CR>",
}
}
}}, }},
{'stevearc/dressing.nvim', opts = { {'stevearc/dressing.nvim', opts = {
input = { input = {
-- Allow exiting insert mode in picker
insert_only = false, insert_only = false,
win_options = { win_options = {
-- Reuse telescope's highlights for windows made by dressing -- Reuse telescope's highlights for windows made by dressing
@ -960,12 +994,23 @@ require('lazy').setup({
require'gitlab.server'.build(true) require'gitlab.server'.build(true)
end, opts = { end, opts = {
attachment_dir = vim.fn.expand('~/Downloads/'), attachment_dir = vim.fn.expand('~/Downloads/'),
keymaps = {
global = {
disable_all = true,
}
},
popup = { popup = {
temp_registers = {"p"} -- Backup popup input in these registers
temp_registers = {'p', 'P'}
}, },
discussion_tree = { discussion_tree = {
-- Place the discussion tree at the bottom
position = 'bottom', position = 'bottom',
}, },
create_mr = {
-- Mark source branch for deletion by default
delete_branch = true,
}
}, config = function(plugin, opts) }, config = function(plugin, opts)
local gitlab = require('gitlab') local gitlab = require('gitlab')
gitlab.setup(opts) gitlab.setup(opts)
@ -975,14 +1020,22 @@ require('lazy').setup({
o = {gitlab.review, 'Review'}, o = {gitlab.review, 'Review'},
s = {gitlab.summary, 'Summary'}, s = {gitlab.summary, 'Summary'},
a = {gitlab.add_assignee, 'Add assignee'}, a = {gitlab.add_assignee, 'Add assignee'},
A = {gitlab.delete_assignee, 'Remove assignee'},
r = {gitlab.add_reviewer, 'Add reviewer'}, r = {gitlab.add_reviewer, 'Add reviewer'},
A = {gitlab.approve, 'Approve'}, R = {gitlab.delete_reviewer, 'Remove reviewer'},
c = {gitlab.create_comment, 'Comment'}, Y = {gitlab.approve, 'Approve'},
N = {gitlab.revoke, 'Unapprove'},
M = {gitlab.merge, 'Merge'},
f = {gitlab.choose_merge_request, 'Pick MR'},
n = {gitlab.create_note, 'Note'}, n = {gitlab.create_note, 'Note'},
m = {gitlab.create_mr, 'Create MR'}, m = {gitlab.create_mr, 'Create MR'},
x = {gitlab.open_in_browser, 'Open in browser'}, x = {gitlab.open_in_browser, 'Open in browser'},
p = {gitlab.pipeline, 'Pipeline'}, p = {gitlab.pipeline, 'Pipeline'},
q = {gitlab.close_review, 'Close review'}, P = {gitlab.publish_all_drafts, 'Publish all drafts'},
q = {function ()
gitlab.close_review()
require'gitlab.server'.shutdown()
end, 'Close review'},
} }
} }
require'which-key'.register({ require'which-key'.register({
@ -995,16 +1048,14 @@ require('lazy').setup({
{'lewis6991/gitsigns.nvim', dependencies = {'folke/which-key.nvim'}, opts = { {'lewis6991/gitsigns.nvim', dependencies = {'folke/which-key.nvim'}, opts = {
on_attach = function() on_attach = function()
local gitsigns = require'gitsigns' local gitsigns = require'gitsigns'
vim.keymap.set('n', ']c', gitsigns.next_hunk, {desc = 'Next hunk'}) vim.keymap.set('n', ']c', function() gitsigns.nav_hunk('next') end, {desc = 'Next hunk'})
vim.keymap.set('n', '[c', gitsigns.prev_hunk, {desc = 'Previous hunk'}) vim.keymap.set('n', '[c', function() gitsigns.nav_hunk('prev') end, {desc = 'Previous hunk'})
require'which-key'.register { require'which-key'.register {
['<Leader>h'] = { ['<Leader>h'] = {
name = '+gitsigns', name = '+gitsigns',
s = {gitsigns.stage_hunk, 'Stage hunk'}, s = {gitsigns.stage_hunk, 'Stage hunk'},
S = {gitsigns.stage_buffer, 'Stage buffer'}, S = {gitsigns.stage_buffer, 'Stage buffer'},
u = {gitsigns.unstage_hunk, 'Unstage hunk'},
U = {gitsigns.unstage_buffer, 'Unstage buffer'},
r = {gitsigns.reset_hunk, 'Reset hunk'}, r = {gitsigns.reset_hunk, 'Reset hunk'},
v = {gitsigns.select_hunk, 'Visual select hunk'}, v = {gitsigns.select_hunk, 'Visual select hunk'},
d = {gitsigns.toggle_deleted, 'Toggle deleted lines'}, d = {gitsigns.toggle_deleted, 'Toggle deleted lines'},
@ -1050,7 +1101,8 @@ require('lazy').setup({
{'<Leader><C-g>', '<Cmd>Neogit<CR>', { desc = 'Neogit' }} {'<Leader><C-g>', '<Cmd>Neogit<CR>', { desc = 'Neogit' }}
}}, }},
{'rcarriga/nvim-notify', dependencies = {'nvim-telescope/telescope.nvim'}, opts = { {'rcarriga/nvim-notify', dependencies = {'nvim-telescope/telescope.nvim'}, opts = {
stages = 'fade' stages = 'fade',
render = 'compact',
}, config = function(_, opts) }, config = function(_, opts)
require'notify'.setup(opts) require'notify'.setup(opts)
vim.notify = require'notify' vim.notify = require'notify'
@ -1080,11 +1132,11 @@ require('lazy').setup({
g.startify_fortune_use_unicode = 1 g.startify_fortune_use_unicode = 1
-- Items to show on the startup screen -- Items to show on the startup screen
g.startify_lists = { g.startify_lists = {
{ type = 'dir', header = {' Recently used ' .. fn.getcwd()} },
{ type = 'files', header = {' Recently used'} },
{ type = 'sessions', header = {' Sessions'} }, { type = 'sessions', header = {' Sessions'} },
{ type = 'bookmarks', header = {' Bookmarks'} }, { type = 'bookmarks', header = {' Bookmarks'} },
{ type = 'commands', header = {' Commands'} }, { type = 'commands', header = {' Commands'} },
{ type = 'dir', header = {' Recently used ' .. fn.getcwd()} },
{ type = 'files', header = {' Recently used'} },
} }
g.startify_bookmarks = { g.startify_bookmarks = {
{ c = '~/.config/nvim/init.lua' }, { c = '~/.config/nvim/init.lua' },
@ -1095,9 +1147,11 @@ require('lazy').setup({
} }
end}, end},
{'nvim-telescope/telescope.nvim', dependencies = { {'nvim-telescope/telescope.nvim', dependencies = {
'LunarWatcher/auto-pairs',
'nvim-telescope/telescope-fzf-native.nvim', 'nvim-telescope/telescope-fzf-native.nvim',
'nvim-telescope/telescope-file-browser.nvim', 'nvim-telescope/telescope-file-browser.nvim',
'nvim-telescope/telescope-project.nvim', 'nvim-telescope/telescope-project.nvim',
'nvim-telescope/telescope-live-grep-args.nvim',
'nvim-telescope/telescope-ui-select.nvim', 'nvim-telescope/telescope-ui-select.nvim',
'nvim-telescope/telescope-dap.nvim', 'nvim-telescope/telescope-dap.nvim',
'debugloop/telescope-undo.nvim', 'debugloop/telescope-undo.nvim',
@ -1136,6 +1190,7 @@ require('lazy').setup({
['ui-select'] = require'telescope.themes'.get_cursor { ['ui-select'] = require'telescope.themes'.get_cursor {
layout_config = { layout_config = {
height = 15, height = 15,
width = 100,
}, },
}, },
}, },
@ -1145,7 +1200,7 @@ require('lazy').setup({
name = 'Telescope', name = 'Telescope',
["<Space>"] = {'<Cmd>Telescope<CR>', 'List pickers'}, ["<Space>"] = {'<Cmd>Telescope<CR>', 'List pickers'},
f = {'<Cmd>Telescope find_files<CR>', 'Files'}, f = {'<Cmd>Telescope find_files<CR>', 'Files'},
F = {'<Cmd>Telescope file_browser<CR>', 'File browser'}, F = {'<Cmd>Telescope file_browser hidden=true<CR>', 'File browser'},
['<C-f>'] = { ['<C-f>'] = {
function() function()
vim.ui.input( vim.ui.input(
@ -1157,7 +1212,7 @@ require('lazy').setup({
}, },
d = {'<Cmd>Telescope find_files find_command=fd,--type,d,-I<CR>', 'Directories'}, d = {'<Cmd>Telescope find_files find_command=fd,--type,d,-I<CR>', 'Directories'},
r = {'<Cmd>Telescope oldfiles<CR>', 'Recent files'}, r = {'<Cmd>Telescope oldfiles<CR>', 'Recent files'},
g = {'<Cmd>Telescope live_grep<CR>', 'Grep'}, g = {'<Cmd>Telescope live_grep_args<CR>', 'Grep'},
G = {function() G = {function()
vim.ui.input({ completion = 'dir' }, function(input) vim.ui.input({ completion = 'dir' }, function(input)
if not input then return end if not input then return end
@ -1180,6 +1235,7 @@ require('lazy').setup({
} }
require'telescope'.load_extension('fzf') require'telescope'.load_extension('fzf')
require'telescope'.load_extension('file_browser') require'telescope'.load_extension('file_browser')
require'telescope'.load_extension('live_grep_args')
require'telescope'.load_extension('project') require'telescope'.load_extension('project')
require'telescope'.load_extension('ui-select') require'telescope'.load_extension('ui-select')
require'telescope'.load_extension('dap') require'telescope'.load_extension('dap')
@ -1219,7 +1275,7 @@ require('lazy').setup({
disable_netrw = false, disable_netrw = false,
-- Show LSP diagnostics in the sign column -- Show LSP diagnostics in the sign column
diagnostics = { diagnostics = {
enable = true, --enable = true, -- triggers deprecation warning
icons = { icons = {
hint = "", hint = "",
}, },