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; local trouble = require("trouble") 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", ",", function() trouble.toggle("diagnostics") end) -- ":Trouble diagnostics toggle focus=false filter.buf=0") 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 = "" });