local mykeymap = {} function mykeymap.setup() -- LSP key bindings vim.keymap.set("n", "gx", function() require("tiny-code-action").code_action() end, { noremap = true, silent = true }) vim.keymap.set("n", "K", "lua vim.lsp.buf.hover()", { desc = "LSP Hover" }) vim.keymap.set("n", "gf", "lua vim.lsp.buf.formatting()", { desc = "LSP Formatting" }) vim.keymap.set("n", "gr", "lua vim.lsp.buf.references()", { desc = "LSP References" }) vim.keymap.set("n", "gd", "lua vim.lsp.buf.definition()", { desc = "LSP Go to Definition" }) vim.keymap.set("n", "gD", "lua vim.lsp.buf.declaration()", { desc = "LSP Go to Declaration" }) vim.keymap.set("n", "gi", "lua vim.lsp.buf.implementation()", { desc = "LSP Go to Implementation" }) vim.keymap.set("n", "gt", "lua vim.lsp.buf.type_definition()", { desc = "LSP Go to Type Definition" }) vim.keymap.set("n", "gn", "lua vim.lsp.buf.rename()", { desc = "LSP Rename" }) vim.keymap.set("n", "ga", "lua vim.lsp.buf.code_action()", { desc = "LSP Code Action" }) vim.keymap.set("n", "ge", "lua vim.diagnostic.open_float()", { desc = "Show Diagnostics" }) vim.keymap.set("n", "g]", "lua vim.diagnostic.goto_next()", { desc = "Next Diagnostic" }) vim.keymap.set("n", "g[", "lua vim.diagnostic.goto_prev()", { desc = "Previous Diagnostic" }) vim.keymap.set("n", "", "(edgemotion-j)", { desc = "Edge motion down" }) vim.keymap.set("n", "", "(edgemotion-k)", { desc = "Edge motion up" }) vim.keymap.set("i", "", "(dmacro-play-macro)", { desc = "Play Macro" }) vim.keymap.set("n", "", "(dmacro-play-macro)", { desc = "Play Macro" }) vim.keymap.set("n", "tt", ":QuickRun", { silent = true, desc = "QuickRun" }) vim.keymap.set("n", "tp", ":Terraform plan", { silent = true, desc = "Terraform" }) vim.keymap.set("n", "sa", ":Startify", { silent = true, desc = "Startify" }) vim.keymap.set("n", "", ":nohlsearch", { silent = true, desc = "Clear Highlight" }) vim.keymap.set("n", "q", ":nohlsearch", { silent = true, desc = "Clear Highlight" }) vim.keymap.set("n", "", function() return vim.fn["quickrun#is_running"]() == 1 and vim.fn["quickrun#sweep_sessions"]() or "" end, { expr = true, silent = true, desc = "QuickRun Session Cleanup" }) vim.keymap.set("n", "", function() local path = vim.fn.bufname(vim.fn.bufnr()) if vim.fn.isdirectory(path) ~= 1 then path = vim.fn.getcwd() end path = vim.fn.fnamemodify(path, ":p:h") require("vfiler").start(path, { options = { auto_cd = true, auto_resize = true, keep = true, name = "explorer", layout = "left", width = 40, columns = "indent,name,mode,size", show_hidden_files = true, }, }) end, { silent = true, desc = "Start VFiler Explorer" }) end return mykeymap