vim.keymap.set("i", "", "", { desc = "Move left" }) vim.keymap.set("i", "", "", { desc = "Move right" }) vim.keymap.set("i", "", "", { desc = "Move down" }) vim.keymap.set("i", "", "", { desc = "Move up" }) vim.keymap.set("n", "", ":noh", { desc = "Clear highlights" }) vim.keymap.set("n", "b", " enew ", { desc = "New buffer" }) vim.keymap.set("n", "x", " bdelete ", { desc = "Delete buffer" }) vim.keymap.set("n", "", " bn ", { desc = "Next buffer" }) vim.keymap.set("n", "", " bp ", { desc = "Previous buffer" }) vim.keymap.set("n", "ZZ", " q! ", { desc = "Quit without saving" }) vim.keymap.set('n', 'H', require('treesj').toggle) vim.keymap.set( 'n', 'ff', " Telescope find_files follow=true " ) vim.keymap.set( 'n', 'fF', " Telescope find_files follow=true no_ignore=true hidden=true " ) vim.keymap.set('n', 'ft', MiniFiles.open, { desc = "Open file tree" }) -- vim.api.nvim_set_keymap('v', 'f', 'SnipRun', {silent = true}) -- vim.api.nvim_set_keymap('n', 'f', 'SnipRunOperator', {silent = true}) -- vim.api.nvim_set_keymap('n', 'ff', 'SnipRun', {silent = true}) vim.keymap.set('n', 'rr', ":SnipRun", { desc = "Run line" }) vim.keymap.set('v', 'r', ":SnipRun", { desc = "Run selection" }) vim.keymap.set('n', 'N', " Neogit ", { desc = "Open Neogit" }) vim.keymap.set('n', '', " Copilot ", { desc = "Start Copilot" }) -- Global mappings. -- See `:help vim.diagnostic.*` for documentation on any of the below functions -- Use LspAttach autocommand to only map the following keys -- after the language server attaches to the current buffer vim.api.nvim_create_autocmd('LspAttach', { group = vim.api.nvim_create_augroup('UserLspConfig', {}), callback = function(ev) -- Enable completion triggered by vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' -- Buffer local mappings. -- See `:help vim.lsp.*` for documentation on any of the below functions local opts = { buffer = ev.buf } vim.keymap.set('n', 'e', vim.diagnostic.open_float, opts) vim.keymap.set('n', '[[', vim.diagnostic.goto_prev, opts) vim.keymap.set('n', ']]', vim.diagnostic.goto_next, opts) vim.keymap.set('n', 'q', vim.diagnostic.setloclist, opts) vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts) vim.keymap.set('n', '', vim.lsp.buf.signature_help, opts) vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, opts) vim.keymap.set('n', 'ra', vim.lsp.buf.rename, opts) vim.keymap.set({ 'n', 'v' }, 'ca', vim.lsp.buf.code_action, opts) vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) vim.keymap.set('n', 'fm', function() vim.lsp.buf.format { async = true } end, opts) end, }) -- Descriptions for lspconfig mappings local wk = require("which-key") wk.register({ ["e"] = { vim.diagnostic.open_float, "Show diagnostics" }, ["[["] = { vim.diagnostic.goto_prev, "Previous diagnostic" }, ["]]"] = { vim.diagnostic.goto_next, "Next diagnostic" }, ["q"] = { vim.diagnostic.setloclist, "Set location list" }, ["gD"] = { vim.lsp.buf.declaration, "Goto declaration" }, ["gd"] = { vim.lsp.buf.definition, "Goto definition" }, ["K"] = { vim.lsp.buf.hover, "Hover" }, ["gi"] = { vim.lsp.buf.implementation, "Goto implementation" }, [""] = { vim.lsp.buf.signature_help, "Signature help" }, ["D"] = { vim.lsp.buf.type_definition, "Goto type definition" }, ["ra"] = { vim.lsp.buf.rename, "Rename" }, ["ca"] = { vim.lsp.buf.code_action, "Code action" }, ["gr"] = { vim.lsp.buf.references, "Goto references" }, ["fm"] = { function() vim.lsp.buf.format { async = true } end, "Format" }, })