nvim-config11/lua/plugins/which-key.nvim.lua

301 lines
12 KiB
Lua

return {
{
"folke/which-key.nvim",
init = function()
local wk = require("which-key")
wk.add({
{ "<A-j>", ":m .+1<cr>==", desc = "Move line down" },
{ "<A-k>", ":m .-2<cr>==", desc = "Move line up" },
{
mode = "v",
{ "<A-j>", ":m '>+1<CR>gv=gv", desc = "Move line down" },
{ "<A-k>", ":m '<-2<CR>gv=gv", desc = "Move line up" },
},
{
mode = "i",
{ "<A-j>", "<Esc>:m .+1<CR>==gi", desc = "Move line down" },
{ "<A-k>", "<Esc>:m .-2<CR>==gi", desc = "Move line up" },
},
{ "<c-\\>", "<cmd>Commander<cr>", desc = "Commander" },
{ "<C-p>", "<cmd>FzfLua git_files<cr>", desc = "Find git files" },
{ ",", group = "Search" },
{ ",p", "<cmd>FzfLua files<cr>", desc = "Files files" },
{ ",b", "<cmd>FzfLua buffers<cr>", desc = "Buffer List" },
{ ",q", "<cmd>FzfLua quickfix<cr>", desc = "Quickfix" },
{ ",c", "<cmd>FzfLua command_history<cr>", desc = "Quickfix" },
{ ",e", ":e **/*<C-z><S-Tab>", desc = "Open with autocomplete" },
{ ",f", ":find **/*<C-z><S-Tab>", desc = "Find with autocomplete" },
{ "<leader>p", group = "Search" },
{ "<leader>pc", "<cmd>FzfLua git_commits<cr>", desc = "Git commits" },
{ "<leader>pf", "<cmd>FzfLua git_bcommits<cr>", desc = "Git file history" },
{ "<leader>pb", "<cmd>FzfLua git_branches<cr>", desc = "Git branches" },
{ "<leader>ph", "<cmd>FzfLua git_statuscr>", desc = "Git status" },
{
"<leader>ps",
"<cmd>FzfLua live_grep<cr>",
desc = "Project search"
},
-- {
-- "<leader>ds",
-- function()
-- require("utils.telescope").search_dotfiles()
-- end,
-- desc = "Search dot files 🔭",
-- },
{ "K", "<cmd>Lspsaga hover_doc<cr>", desc = "Show documentation" },
{ "<C-k>", "<cmd>Lspsaga hover_doc ++keep<cr>", desc = "Show documentation (keep)" },
{ "<f2>", "<cmd>Lspsaga rename<cr>", desc = "Rename variable" },
{ "g", group = "Go to" },
{ "gd", ":Lspsaga goto_definition<cr>", desc = "Go to definition" },
{
"gD",
function()
vim.lsp.buf.declaration()
end,
desc = "Go to declaration",
},
{ "gt", ":Lspsaga goto_type_definition<cr>", desc = "Go to type definition" },
{ "gh", ":Lspsaga finder<cr>", desc = "LSP Finder" },
{ "gH", ":Lspsaga finder ++normal<cr>", desc = "LSP Finder (keep)" },
{ "gj", ":Lspsaga diagnostic_jump_next<cr>", desc = "Next diagnostic message" },
{ "gk", ":Lspsaga diagnostic_jump_prev<cr>", desc = "Previous diagnostic message" },
{ "<localleader>a", group = "Local File Actions" },
{ "<localleader>ac", "<cmd>Lspsaga code_action<cr>", desc = "Code action" },
{
"<localleader>ag",
function()
vim.diagnostic.open_float(0, { scope = "line", focusable = false })
end,
desc = "Show line diagnostics",
},
{
"<localleader>ad",
"<cmd>Glance definitions<cr>",
desc = "Definitions",
},
{
"<localleader>ar",
"<cmd>Glance references<cr>",
desc = "References",
},
{
"<localleader>ai",
"<cmd>Glance implementations<cr>",
desc = "References",
},
{
"<localleader>at",
"<cmd>Glance type_definitions<cr>",
desc = "Type definitions",
},
{
"<localleader>aI",
"<cmd>Lspsaga incoming_calls<cr>",
desc = "Incoming calls",
},
{
"<localleader>aO",
"<cmd>Lspsaga outgoing_calls<cr>",
desc = "Outgoing calls",
},
{
"<localleader>O",
"<cmd>Lspsaga outline<cr>",
desc = "Toggle Outline",
icon = "󰷐",
},
{
"<leader>g",
group = "Git",
},
{
"<leader>gd",
"<cmd>DiffviewOpen<cr>",
desc = "Diff view",
},
{
"»",
"]",
noremap = false,
},
{
"«",
"[",
noremap = false,
},
{ "<localleader>h", group = "git signs" },
{
"<localleader>hs",
function()
require("gitsigns").stage_hunk()
end,
desc = "Stage hunk",
},
{
"<localleader>hu",
function()
require("gitsigns").undo_stage_hunk()
end,
desc = "Undo stage hunk",
},
{
"<localleader>hv",
function()
require("gitsigns").preview_hunk()
end,
desc = "Preview hunk",
},
{
"<localleader>hb",
function()
require("gitsigns").blame_line()
end,
desc = "Blame line",
},
{
"<localleader>hR",
function()
require("gitsigns").reset_buffer()
end,
desc = "Reset buffer",
},
{
"<localleader>hr",
function()
require("gitsigns").reset_hunk()
end,
desc = "Reset hunk",
},
{
"<localleader>hS",
function()
require("gitsigns").stage_buffer()
end,
desc = "Stage buffer",
},
{
"<localleader>hU",
function()
require("gitsigns").reset_buffer_index()
end,
desc = "Reset buffer index",
},
{
mode = "v",
{
"<localleader>hs",
function()
require("gitsigns").stage_hunk({ vim.fn.line("."), vim.fn.line("v") })
end,
desc = "Stage hunk",
},
{
"<localleader>hr",
function()
require("gitsigns").reset_hunk({ vim.fn.line("."), vim.fn.line("v") })
end,
desc = "Reset hunk",
},
},
{
"]c",
function()
if vim.wo.diff then
vim.cmd.normal({ "]c", bang = true })
else
vim.schedule(function()
require("gitsigns").nav_hunk("next")
end)
end
end,
desc = "Next hunk",
},
{
"[c",
function()
if vim.wo.diff then
vim.cmd.normal({ "[c", bang = true })
else
vim.schedule(function()
require("gitsigns").nav_hunk("prev")
end)
end
end,
desc = "Previous hunk",
},
{ "<leader>u", "<cmd>UndotreeToggle<cr>", desc = "Undotree", icon = "" },
{ "<leader>c", group = "quickfix" },
{ "<leader>co", "<cmd>copen<cr>", desc = "Open" },
{ "<leader>cf", "<cmd>cfirst<cr>", desc = "First result" },
{ "<leader>cl", "<cmd>clast<cr>", desc = "Last result" },
{ "<leader>cn", "<cmd>cnext<cr>", desc = "Next result" },
{ "<leader>cp", "<cmd>cprevious<cr>", desc = "Previous result" },
{ "<leader>cc", "<cmd>cclose<cr>", desc = "Close" },
{ "<localleader>c", group = "Location List" },
{ "<localleader>co", "<cmd>lopen<cr>", desc = "Open" },
{ "<localleader>cf", "<cmd>lfirst<cr>", desc = "First result" },
{ "<localleader>cl", "<cmd>llast<cr>", desc = "Last result" },
{ "<localleader>cn", "<cmd>lnext<cr>", desc = "Next result" },
{ "<localleader>cp", "<cmd>lprevious<cr>", desc = "Previous result" },
{ "<localleader>cc", "<cmd>lclose<cr>", desc = "Close" },
{ "<C-n>", "<cmd>Neotree toggle<cr>", desc = "Toggle neo-tree" },
{ "<leader>t", "<cmd>lua Snacks.terminal.toggle()<cr>", desc = "Toggle Terminal" },
{ mode = { "t" }, { "<leader>t", "<cmd>lua Snacks.terminal.toggle()<cr>", desc = "Toggle Terminal" } },
{
mode = { "n", "x", "o" },
{
"s",
function()
require("flash").jump()
end,
desc = "Flash ⚡",
},
{
"S",
function()
require("flash").treesitter()
end,
desc = "Flash Treesitter ⚡",
},
},
{
mode = { "o", "x" },
{
"R",
function()
require("flash").treesitter_search()
end,
desc = "Flash Treesitter search ⚡",
},
},
{
mode = "c",
{
"<C-s>",
function()
require("flash").toggle()
end,
desc = "Toggle Flash Search ⚡",
},
},
})
end,
}
}