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>c', '<Cmd>vert te<CR>', { desc = 'Terminal (vsplit)' })
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
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>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
vim.cmd [[
command! Light set background=light
@ -246,7 +253,7 @@ au('LspAttach', { callback = function(event)
i = {'<Cmd>Telescope lsp_implementations<CR>', 'Implementation'},
I = {vim.lsp.buf.implementation, 'Implementation (quickfix)'},
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.run, 'Run codelens'},
t = {'<Cmd>Telescope lsp_type_definitions<CR>', 'Type definition'},
@ -297,10 +304,12 @@ require('lazy').setup({
'rhysd/vim-crystal',
'bakpakin/fennel.vim',
'mboughaba/i3config.vim',
{'OXY2DEV/markview.nvim', lazy = false, opts = { initial_state = false }},
'mracos/mermaid.vim',
'lifepillar/pgsql.vim',
'ajouellette/sway-vim-syntax',
'cespare/vim-toml',
'mfussenegger/nvim-ansible',
-- Editing
{'LunarWatcher/auto-pairs', init = function()
@ -354,7 +363,9 @@ require('lazy').setup({
{'kylechui/nvim-surround', opts = {}},
'wellle/targets.vim',
{'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'
end},
{'julian/vim-textobj-variable-segment', dependencies = {'kana/vim-textobj-user'}},
@ -392,6 +403,7 @@ require('lazy').setup({
lspconfig.util.default_config.capabilities = capabilities
-- Set up language servers
lspconfig.ansiblels.setup {}
lspconfig.bashls.setup {}
lspconfig.clangd.setup {}
lspconfig.eslint.setup { autostart = false }
@ -583,6 +595,11 @@ require('lazy').setup({
on_attach = function(client, bufnr)
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,
}
@ -638,7 +655,7 @@ require('lazy').setup({
},
tsserver_plugins = (function ()
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'}
else
return {}
@ -742,7 +759,7 @@ require('lazy').setup({
code_action = vim.lsp.buf.code_action
end
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},
{'MattesGroeger/vim-bookmarks', config = function()
@ -915,12 +932,29 @@ require('lazy').setup({
clear_on_continue = true,
}},
{'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 = {
-- Use nicer highlighting for diffs
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 = {
input = {
-- Allow exiting insert mode in picker
insert_only = false,
win_options = {
-- Reuse telescope's highlights for windows made by dressing
@ -960,12 +994,23 @@ require('lazy').setup({
require'gitlab.server'.build(true)
end, opts = {
attachment_dir = vim.fn.expand('~/Downloads/'),
keymaps = {
global = {
disable_all = true,
}
},
popup = {
temp_registers = {"p"}
-- Backup popup input in these registers
temp_registers = {'p', 'P'}
},
discussion_tree = {
-- Place the discussion tree at the bottom
position = 'bottom',
},
create_mr = {
-- Mark source branch for deletion by default
delete_branch = true,
}
}, config = function(plugin, opts)
local gitlab = require('gitlab')
gitlab.setup(opts)
@ -975,14 +1020,22 @@ require('lazy').setup({
o = {gitlab.review, 'Review'},
s = {gitlab.summary, 'Summary'},
a = {gitlab.add_assignee, 'Add assignee'},
A = {gitlab.delete_assignee, 'Remove assignee'},
r = {gitlab.add_reviewer, 'Add reviewer'},
A = {gitlab.approve, 'Approve'},
c = {gitlab.create_comment, 'Comment'},
R = {gitlab.delete_reviewer, 'Remove reviewer'},
Y = {gitlab.approve, 'Approve'},
N = {gitlab.revoke, 'Unapprove'},
M = {gitlab.merge, 'Merge'},
f = {gitlab.choose_merge_request, 'Pick MR'},
n = {gitlab.create_note, 'Note'},
m = {gitlab.create_mr, 'Create MR'},
x = {gitlab.open_in_browser, 'Open in browser'},
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({
@ -995,16 +1048,14 @@ require('lazy').setup({
{'lewis6991/gitsigns.nvim', dependencies = {'folke/which-key.nvim'}, opts = {
on_attach = function()
local gitsigns = require'gitsigns'
vim.keymap.set('n', ']c', gitsigns.next_hunk, {desc = 'Next hunk'})
vim.keymap.set('n', '[c', gitsigns.prev_hunk, {desc = 'Previous hunk'})
vim.keymap.set('n', ']c', function() gitsigns.nav_hunk('next') end, {desc = 'Next hunk'})
vim.keymap.set('n', '[c', function() gitsigns.nav_hunk('prev') end, {desc = 'Previous hunk'})
require'which-key'.register {
['<Leader>h'] = {
name = '+gitsigns',
s = {gitsigns.stage_hunk, 'Stage hunk'},
S = {gitsigns.stage_buffer, 'Stage buffer'},
u = {gitsigns.unstage_hunk, 'Unstage hunk'},
U = {gitsigns.unstage_buffer, 'Unstage buffer'},
r = {gitsigns.reset_hunk, 'Reset hunk'},
v = {gitsigns.select_hunk, 'Visual select hunk'},
d = {gitsigns.toggle_deleted, 'Toggle deleted lines'},
@ -1050,7 +1101,8 @@ require('lazy').setup({
{'<Leader><C-g>', '<Cmd>Neogit<CR>', { desc = 'Neogit' }}
}},
{'rcarriga/nvim-notify', dependencies = {'nvim-telescope/telescope.nvim'}, opts = {
stages = 'fade'
stages = 'fade',
render = 'compact',
}, config = function(_, opts)
require'notify'.setup(opts)
vim.notify = require'notify'
@ -1080,11 +1132,11 @@ require('lazy').setup({
g.startify_fortune_use_unicode = 1
-- Items to show on the startup screen
g.startify_lists = {
{ type = 'dir', header = {' Recently used ' .. fn.getcwd()} },
{ type = 'files', header = {' Recently used'} },
{ type = 'sessions', header = {' Sessions'} },
{ type = 'bookmarks', header = {' Bookmarks'} },
{ type = 'commands', header = {' Commands'} },
{ type = 'dir', header = {' Recently used ' .. fn.getcwd()} },
{ type = 'files', header = {' Recently used'} },
}
g.startify_bookmarks = {
{ c = '~/.config/nvim/init.lua' },
@ -1095,9 +1147,11 @@ require('lazy').setup({
}
end},
{'nvim-telescope/telescope.nvim', dependencies = {
'LunarWatcher/auto-pairs',
'nvim-telescope/telescope-fzf-native.nvim',
'nvim-telescope/telescope-file-browser.nvim',
'nvim-telescope/telescope-project.nvim',
'nvim-telescope/telescope-live-grep-args.nvim',
'nvim-telescope/telescope-ui-select.nvim',
'nvim-telescope/telescope-dap.nvim',
'debugloop/telescope-undo.nvim',
@ -1136,6 +1190,7 @@ require('lazy').setup({
['ui-select'] = require'telescope.themes'.get_cursor {
layout_config = {
height = 15,
width = 100,
},
},
},
@ -1145,7 +1200,7 @@ require('lazy').setup({
name = 'Telescope',
["<Space>"] = {'<Cmd>Telescope<CR>', 'List pickers'},
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>'] = {
function()
vim.ui.input(
@ -1157,7 +1212,7 @@ require('lazy').setup({
},
d = {'<Cmd>Telescope find_files find_command=fd,--type,d,-I<CR>', 'Directories'},
r = {'<Cmd>Telescope oldfiles<CR>', 'Recent files'},
g = {'<Cmd>Telescope live_grep<CR>', 'Grep'},
g = {'<Cmd>Telescope live_grep_args<CR>', 'Grep'},
G = {function()
vim.ui.input({ completion = 'dir' }, function(input)
if not input then return end
@ -1180,6 +1235,7 @@ require('lazy').setup({
}
require'telescope'.load_extension('fzf')
require'telescope'.load_extension('file_browser')
require'telescope'.load_extension('live_grep_args')
require'telescope'.load_extension('project')
require'telescope'.load_extension('ui-select')
require'telescope'.load_extension('dap')
@ -1219,7 +1275,7 @@ require('lazy').setup({
disable_netrw = false,
-- Show LSP diagnostics in the sign column
diagnostics = {
enable = true,
--enable = true, -- triggers deprecation warning
icons = {
hint = "",
},