vim.api.nvim_set_keymap("n", "o", ":lua MiniFiles.open()", {}) vim.api.nvim_set_keymap("n", "f", ":Pick files", {}) vim.api.nvim_set_keymap("n", "b", ":Pick buffers", {}) vim.api.nvim_set_keymap("n", "g", ":Pick grep_live", {}) vim.keymap.set("i", "", function() vim.lsp.completion.get() end) vim.keymap.set('n', 'e', vim.diagnostic.open_float, { desc = 'Show error/diagnostic messages' }) vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous diagnostic' }) vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic' }) vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostics list' }) vim.api.nvim_create_autocmd('LspAttach', { desc = 'LSP actions', callback = function(event) local function map(mode, keys, func, desc) vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = desc }) end map('n', 'gd', vim.lsp.buf.definition, 'Go to Definition') map('n', 'gD', vim.lsp.buf.declaration, 'Go to Declaration') map('n', 'gi', vim.lsp.buf.implementation, 'Go to Implementation') map('n', 'go', vim.lsp.buf.type_definition, 'Go to Type Definition') map('n', 'gr', vim.lsp.buf.references, 'Go to References') map('n', 'K', vim.lsp.buf.hover, 'Show Hover Documentation') map('n', '', vim.lsp.buf.signature_help, 'Show Signature Help') map('n', 'rn', vim.lsp.buf.rename, 'Rename Symbol') map({ 'n', 'v' }, 'ca', vim.lsp.buf.code_action, 'Code Action') end, })