local wk = require("which-key") local builtin = require("telescope.builtin") -- local tree = require "nvim-tree.api" function FormatBuffer(command) -- Save the current cursor position local cursor_position = vim.fn.getpos(".") -- Run the formatter command on the current buffer vim.cmd(":%! " .. command) -- Restore the cursor position vim.fn.setpos(".", cursor_position) end function ToggleTree(source) require("neo-tree.command").execute({ toggle = true, source = source, position = "left", }) end wk.add({ { mode = "n", -- telescope { "ff", function() builtin.find_files() end, desc = "Find file", }, { "fg", function() builtin.live_grep() end, desc = "Live grep", }, { "fb", function() builtin.buffers() end, desc = "List buffers", }, { "fh", function() builtin.help_tags() end, desc = "Help", }, { "fs", function() builtin.lsp_document_symbols() end, desc = "Find symbols", }, { "zz", function() builtin.spell_suggest() end, desc = "Suggest spell", }, -- Centering cursor { "n", "nzzzv", desc = "Center cursor when n (next) during search" }, { "N", "Nzzzv", desc = "Center cursor when n (next) during search" }, -- tab { "", ":BufferLineCycleNext ", desc = "Next tab" }, { "", ":BufferLineCyclePrev", desc = "Previous tab" }, -- Comment { "/", "gcc", desc = "comment toggle", remap = true }, -- Format { "fm", function() require("conform").format({ lsp_fallback = true }) end, desc = "format files", }, -- nvim-tree -- { "", function() tree.tree.toggle() end, desc = "Toggle file tree" }, { "", function() ToggleTree("filesystem") end, desc = "Toggle file tree", }, -- Typst format { "ft", function() FormatBuffer("typstfmt") end, desc = "Typst formater", }, -- Lsp { "K", function() vim.lsp.buf.hover() end, desc = "LSP toggle" }, { "ca", function() vim.lsp.buf.code_action() end, desc = "LSP code action" }, { "cd", function() vim.diagnostic.setqflist() end, desc = "LSP code diagnostic" }, }, { mode = "v", { "", ":m '>+1gv=gv", desc = "Move selection down" }, { "", ":m '<-2gv=gv", desc = "Move selection up" }, -- Comment { "/", "gc", desc = "comment toggle", remap = true }, }, })