local telescope = require("telescope.builtin") local wk = require("which-key") local ufo = require("ufo") local nt_api = require("nvim-tree.api") local spider = require("spider") local toggle_plain = require("utils").toggle_plain; vim.g.mapleader = " " vim.api.nvim_command("nnoremap :m .+1==") vim.api.nvim_command("nnoremap :m .-2==") vim.api.nvim_command("inoremap :m .-2==gi") vim.api.nvim_command("inoremap :m .+1==gi") vim.api.nvim_command("vnoremap :m '>+1gv=gv") vim.api.nvim_command("vnoremap :m '<-2gv=gv") vim.keymap.set("i", "", "") vim.keymap.set("i", "", "") vim.keymap.set("i", "", "") vim.keymap.set("i", "", "") vim.keymap.set("n", "n", nt_api.tree.toggle) vim.keymap.set("n", "", vim.lsp.buf.code_action) vim.keymap.set("n", "K", vim.lsp.buf.hover) vim.keymap.set({ "n"; "v" }, "F", vim.lsp.buf.format) vim.keymap.set("n", "d", vim.diagnostic.open_float) vim.keymap.set("n", "J", vim.lsp.buf.signature_help) vim.keymap.set("n", "fF", telescope.find_files) vim.keymap.set("n", "ff", telescope.live_grep) vim.keymap.set("n", "", telescope.buffers) vim.keymap.set("n", "D", telescope.lsp_definitions) vim.keymap.set("n", "R", telescope.lsp_references) vim.keymap.set("n", "S", telescope.lsp_document_symbols) vim.keymap.set("n", "U", vim.cmd.UndotreeToggle) vim.keymap.set("n", "m", ":MinimapToggle") vim.keymap.set("n", "b", ":Gitsigns blame_line") vim.keymap.set("n", "h", ":Gitsigns preview_hunk") vim.keymap.set("n", ",", ":TroubleToggle") vim.keymap.set("n", "t", ":belowright split | resize 5 | terminal") vim.keymap.set("n", "[", ufo.openAllFolds) vim.keymap.set("n", "]", ufo.closeAllFolds) vim.keymap.set("n", "r", vim.lsp.buf.rename) vim.keymap.set("n", "N", ":bnext") vim.keymap.set("n", "P", ":bprevious") vim.keymap.set("n", "L", function() vim.g.__plain = not (vim.g.__plain) toggle_plain() end) local spider_opts = { skipInsignificantPunctuation = true } vim.keymap.set({ "n"; "o"; "x" }, "", function() spider.motion("w", spider_opts) end) vim.keymap.set({ "n"; "o"; "x" }, "", function() spider.motion("e", spider_opts) end) vim.keymap.set({ "n"; "o"; "x" }, "", function() spider.motion("b", spider_opts) end) vim.keymap.set({ "n"; "o"; "x" }, "", function() spider.motion("ge", spider_opts) end) vim.keymap.set({ "t" }, "", "") vim.opt.whichwrap = "<,>,h,l,[,]" wk.add({ { ",", desc = "Show errors" }, { "", desc = "Quick Action" }, { "", desc = "Show buffers" }, { "D", desc = "Definition" }, { "F", desc = "Format" }, { "J", desc = "Signature help" }, { "K", desc = "Hover" }, { "L", desc = "Toggle plain mode" }, { "N", desc = "Next tab" }, { "P", desc = "Previous tab" }, { "R", desc = "Show References" }, { "S", desc = "Symbols" }, { "U", desc = "Undo tree" }, { "[", desc = "Open folds" }, { "]", desc = "Close folds" }, { "b", desc = "Blame line" }, { "d", desc = "Show diagnostics" }, { "f", desc = "Find files" }, { "h", desc = "Preview hunk" }, { "m", desc = "Toggle Minimap" }, { "n", desc = "Show file tree" }, { "q", desc = "Quit" }, { "r", desc = "Rename" }, { "s", desc = "Save file" }, { "t", desc = "Open terminal" }, }, { prefix = "" });