nvim-config/lua/config/keys.lua

83 lines
3.5 KiB
Lua

require("which-key").add({
{ "<leader>b", group = "buffer" },
{ "<leader>bd", Snacks.bufdelete.delete, name = "delete current" },
{ "<leader>bo", Snacks.bufdelete.other, name = "delete others" },
{ "<leader>c", group = "code" },
{ "<leader>ca", vim.lsp.buf.code_action, name = "code action" },
{ "<leader>cd", vim.diagnostic.open_float, name = "diagnostic" },
{ "<leader>cr", vim.lsp.buf.rename, name = "rename" },
{ "<leader>e", Snacks.explorer.open, name = "explorer" },
{ "<leader>f", group = "find" },
{ "<leader>fb", Snacks.picker.buffers, name = "buffers" },
{ "<leader>ff", Snacks.picker.files, name = "files" },
{ "<leader>fg", Snacks.picker.grep, name = "grep" },
{ "<leader>g", group = "git" },
{ "<leader>gb", group = "blame" },
{ "<leader>gbf", ":Gitsigns blame<CR>", name = "file" },
{ "<leader>gbh", ":Gitsigns blame_line<CR>", name = "hover" },
{ "<leader>gbl", ":Gitsigns toggle_current_line_blame<CR>", name = "virtual text" },
{ "<leader>gh", group = "hunk" },
{ "<leader>ghr", ":Gitsigns reset_hunk<CR>", name = "reset hunk" },
{ "<leader>ghp", ":Gitsigns preview_hunk<CR>", name = "preview hunk" },
{ "<leader>s", group = "search" },
{ "<leader>ss", Snacks.picker.lsp_workspace_symbols, name = "symbols" },
{ "<leader>sg", Snacks.picker.grep, name = "grep" },
{ "<leader>sn", Snacks.picker.notifications, name = "notifications" },
{ "<leader>u", group = "ui" },
{ "<leader>ut", Snacks.picker.colorschemes, name = "colorschemes" },
{
"<leader>ul",
function()
local ll = vim.diagnostic.config().virtual_lines
if ll == false then
ll = { current_line = true }
else
ll = false
end
vim.diagnostic.config({ virtual_lines = ll })
end,
name = "toggle lsp lines",
},
{ "<leader>w", group = "window" },
{ "<leader>wh", "<C-w>h", name = "left" },
{ "<leader>wj", "<C-w>j", name = "down" },
{ "<leader>wk", "<C-w>k", name = "right" },
{ "<leader>wl", "<C-w>l", name = "up" },
{ "<leader>wq", ":q<CR>", name = "quit" },
{ "g", group = "goto" },
{ "gd", vim.lsp.buf.definition, name = "definition" },
{ "gr", Snacks.picker.lsp_references, nowait = true, name = "references" },
{ "H", ":bprev<CR>", name = "previous buffer" },
{ "L", ":bnext<CR>", name = "next buffer" },
{
"[h",
function()
require("gitsigns").nav_hunk("prev")
end,
name = "Next Hunk",
},
{
"]h",
function()
require("gitsigns").nav_hunk("next")
end,
name = "Next Hunk",
},
{ "[h", function() require("gitsigns").nav_hunk("prev") end, name = "previous hunk" },
{ "]h", function() require("gitsigns").nav_hunk("next") end, name = "next hunk" },
})
Snacks.toggle.diagnostics():map("<leader>ud")
Snacks.toggle.inlay_hints():map("<leader>ui")