local wk = require("which-key") local builtin = require('telescope.builtin') wk.add({ -- Essentials { "w", "w", desc = "Save File" }, { "q", "q", desc = "Quit" }, { "e", "NvimTreeToggle", desc = "Toggle Explorer (Tree)" }, -- Navigation / Buffers { "[", "bprevious", desc = "Prev Buffer" }, { "]", "bnext", desc = "Next Buffer" }, { "b", builtin.buffers, desc = "List Buffers (Telescope)" }, { "x", "bdelete", desc = "Close Buffer" }, -- File Group { "f", group = "File" }, { "fn", function() local name = vim.fn.input("New file/dir: ") if name == "" then return end if name:sub(-1) == "/" then vim.fn.mkdir(name, "p") else local dir = vim.fn.fnamemodify(name, ":h") if vim.fn.isdirectory(dir) == 0 then vim.fn.mkdir(dir, "p") end vim.cmd("edit " .. name) end end, desc = "New File/Dir" }, { "fd", function() local current_file = vim.api.nvim_buf_get_name(0) if current_file == "" then return end if vim.fn.confirm("Delete " .. current_file .. "?", "&Yes\n&No", 2) == 1 then os.remove(current_file) vim.api.nvim_buf_delete(0, { force = true }) end end, desc = "Delete Current File" }, -- Search Group { "s", group = "Search" }, { "sf", builtin.find_files, desc = "Files" }, { "sw", builtin.live_grep, desc = "Word (Global)" }, -- Symbol Searching { "ss", builtin.lsp_dynamic_workspace_symbols, desc = "Workspace Symbols" }, { "sl", builtin.lsp_document_symbols, desc = "Document Symbols (Current File)" }, -- LSP { "gd", vim.lsp.buf.definition, desc = "Go to Definition" }, { "K", vim.lsp.buf.hover, desc = "Hover Documentation" }, })