1
1
Fork 0
dotfiles/nvim/lua/plugins/pickers.lua
2025-06-21 19:42:53 -06:00

52 lines
2.7 KiB
Lua

return {
"folke/snacks.nvim",
---@type snacks.Config
opts = {
picker = {
layout = {
preview = "main",
preset = "ivy",
},
sources = {
explorer = {
auto_close = true,
layout = { preset = "sidebar", preview = "top" },
}
}
},
terminal = {
win = {
position = "float",
border = "rounded",
height = 0.8,
width = 0.6,
}
},
},
keys = {
{ "`", function() Snacks.explorer() end, desc = "File Explorer" },
{ "<leader>s", function() Snacks.picker.lsp_symbols() end, desc = "LSP Symbols" },
{ "gd", function() Snacks.picker.lsp_definitions() end, desc = "Goto Definition" },
{ "gD", function() Snacks.picker.lsp_declarations() end, desc = "Goto Declaration" },
{ "gr", function() Snacks.picker.lsp_references() end, nowait = true, desc = "References" },
{ "gI", function() Snacks.picker.lsp_implementations() end, desc = "Goto Implementation" },
{ "gy", function() Snacks.picker.lsp_type_definitions() end, desc = "Goto T[y]pe Definition" },
{ "<leader><leader>", function() Snacks.picker.smart() end, desc = "Smart Find Files" },
{ "<leader>b", function() Snacks.picker.buffers() end, desc = "Buffers" },
{ "<leader>/", function() Snacks.picker.grep() end, desc = "Grep" },
{ "<leader>:", function() Snacks.picker.command_history() end, desc = "Command History" },
{ "<leader>n", function() Snacks.picker.notifications() end, desc = "Notification History" },
{ "<leader>u", function() Snacks.picker.undo() end, desc = "Undo History" },
{ '<leader>"', function() Snacks.picker.registers() end, desc = "Registers" },
{ "<leader>gb", function() Snacks.picker.git_branches() end, desc = "Git Branches" },
{ "<leader>gl", function() Snacks.picker.git_log() end, desc = "Git Log" },
{ "<leader>gs", function() Snacks.picker.git_status() end, desc = "Git Status" },
{ "<leader>gS", function() Snacks.picker.git_stash() end, desc = "Git Stash" },
{ "<leader>gd", function() Snacks.picker.git_diff() end, desc = "Git Diff (Hunks)" },
{ "<leader>gf", function() Snacks.picker.git_log_file() end, desc = "Git Log File" },
{ "<F12>", function() Snacks.terminal.toggle() end, desc = "Terminal Toggle", mode = { "n", "i", "t" } },
}
}