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 lualine = require('lualine') 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.o.number = not (vim.o.number) vim.o.relativenumber = not (vim.o.relativenumber) vim.o.cursorline = not (vim.o.cursorline) vim.o.list = not (vim.o.list) vim.o.foldenable = not (vim.o.foldenable) if vim.o.foldcolumn == "1" then vim.o.foldcolumn = "0" else vim.o.foldcolumn = "1" end if vim.g.__plain then lualine.hide({ unhide = true }) vim.o.laststatus = 2 vim.diagnostic.enable() else lualine.hide() vim.o.laststatus = 0 vim.diagnostic.disable() end vim.cmd [[ MarksToggleSigns ]] vim.cmd [[ IBLToggle ]] vim.cmd [[ BufferLineGroupToggle ungrouped ]] vim.cmd [[ TSContextToggle ]] vim.g.__plain = not (vim.g.__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.register({ [""] = "Quick Action", ["K"] = "Hover", ["D"] = "Definition", ["S"] = "Symbols", ["F"] = "Format", ["f"] = "Find files", [""] = "Show buffers", [","] = "Show errors", ["["] = "Open folds", ["]"] = "Close folds", ["r"] = "Rename", ["n"] = "Show file tree", ["m"] = "Toggle Minimap", ["b"] = "Blame line", ["h"] = "Preview hunk", ["d"] = "Show diagnostics", ["t"] = "Open terminal", ["s"] = "Save file", ["q"] = "Quit", ["R"] = "Show References", ["J"] = "Signature help", ["U"] = "Undo tree", ["N"] = "Next tab", ["P"] = "Previous tab", ["L"] = "Toggle plain mode", }, { prefix = "" });