local opts = { noremap = true, silent = true } local term_opts = { silent = true } local keymap = vim.api.nvim_set_keymap -- space leader vim.g.mapleader = " " keymap("n", "", "", { silent = true, noremap = false }) -- debug keymap("n", "", ':lua require("dap").toggle_breakpoint()', opts) keymap("n", "", ':lua require("dap").step_over()', opts) keymap("n", "", ':lua require("dap").step_into()', opts) keymap("n", "", ':lua require("dap").continue() :lua require("dapui").toggle()', opts) keymap("n", "", ':lua require("dap").continue()', opts) keymap("n", "", ':lua require("dap").close() :lua require("dapui").toggle()', opts) -- file tree keymap("n", "t", ':lua require("nvim-tree").toggle()', opts) keymap("n", "f", ':lua require("nvim-tree").focus()', opts) -- tab switching keymap("n", "", ":BufferPrev", opts) keymap("n", "", ":BufferNext", opts) -- formatting keymap("n", "", ":lua vim.lsp.buf.format { async = true }", opts) -- telescope keymap("n", "ff", ":lua require('telescope.builtin').find_files()", {}) keymap("n", "fg", ":lua require('telescope.builtin').live_grep()", {}) keymap("n", "fb", ":lua require('telescope.builtin').buffers()", {}) keymap("n", "fh", ":lua require('telescope.builtin').help_tags()", {}) keymap("n", "fp", ":lua require'telescope'.extensions.project.project{}", { noremap = true, silent = true }) -- trouble keymap("n", "", "TroubleToggle", term_opts) require("trouble").setup({ action_keys = { --remove the fucking stupid keymap amk open_tab = {}, }, }) -- LSP local on_attach = function(client, bufnr) vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") local opts = { noremap = true, silent = true, buffer = bufnr } keymap("n", "h", "lua vim.lsp.buf.declaration()", opts) keymap("n", "j", "lua vim.lsp.buf.definition()", opts) keymap("n", "k", "lua vim.lsp.buf.implementation()", opts) keymap("n", "l", "lua vim.lsp.buf.references()", opts) keymap("n", ";", "lua vim.lsp.buf.code_action()", opts) keymap("n", "u", "lua vim.lsp.buf.signature_help()", opts) keymap("n", "g", "lua vim.lsp.buf.hover()", opts) end