mirror of
https://github.com/iofq/nvim.nix.git
synced 2026-01-23 08:55:16 -06:00
130 lines
4.1 KiB
Lua
130 lines
4.1 KiB
Lua
return {
|
|
{
|
|
"folke/snacks.nvim",
|
|
dependencies = { "folke/trouble.nvim" },
|
|
lazy = false,
|
|
priority = 1000,
|
|
opts = {
|
|
bigfile = { enabled = true },
|
|
dim = { enabled = true },
|
|
quickfile = { enabled = true },
|
|
notifier = { enabled = true },
|
|
scope = { enabled = true },
|
|
terminal = { enabled = true },
|
|
indent = { enabled = true },
|
|
input = { enabled = true },
|
|
words = { enabled = true },
|
|
picker = {
|
|
enabled = true,
|
|
matcher = { frecency = true },
|
|
layout = {
|
|
preset = function()
|
|
return vim.o.columns >= 120 and "telescope" or "vertical"
|
|
end
|
|
},
|
|
sources = {
|
|
files = { hidden = true },
|
|
grep = { hidden = true },
|
|
explorer = { hidden = true },
|
|
git_files = { untracked = true },
|
|
smart = {
|
|
multi = { "buffers", "recent", "files", "git_files" }
|
|
}
|
|
},
|
|
actions = {
|
|
trouble_open = function(...)
|
|
return require("trouble.sources.snacks").actions.trouble_open.action(...)
|
|
end,
|
|
},
|
|
win = {
|
|
input = {
|
|
keys = {
|
|
["wq"] = { "close", mode = "i" },
|
|
["<c-t>"] = { "trouble_open", mode = { "n", "i" } },
|
|
}
|
|
},
|
|
list = {
|
|
keys = {
|
|
["wq"] = { "close", mode = "i" },
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
config = function(_, opts)
|
|
require("snacks").setup(opts)
|
|
vim.api.nvim_set_hl(0, 'SnacksPickerDir', { fg = '#cccccc' })
|
|
end,
|
|
keys = {
|
|
{ '<C-\\>', function() Snacks.terminal.toggle() end, mode = { "n", "t" }, noremap = true, desc = 'terminal open' },
|
|
{ '\\\\', function() Snacks.terminal.toggle('$SHELL') end, mode = { "n", "t" }, noremap = true, desc = 'terminal open' },
|
|
{ 'm', function() Snacks.words.jump(1, true) end, noremap = true, desc = 'next reference' },
|
|
{ 'M', function() Snacks.words.jump(-1, true) end, noremap = true, desc = 'next reference' },
|
|
{
|
|
'<leader>ff',
|
|
function() Snacks.picker.smart() end,
|
|
{ noremap = true, silent = true, desc = 'Fuzzy find files' }
|
|
},
|
|
{
|
|
'<leader>fe',
|
|
function() Snacks.explorer() end,
|
|
{ noremap = true, silent = true, desc = 'snacks explorer' }
|
|
},
|
|
{
|
|
'<leader>fE',
|
|
function() Snacks.explorer.reveal() end,
|
|
{ noremap = true, silent = true, desc = 'snacks explorer open current file' }
|
|
},
|
|
{
|
|
'<leader>fg',
|
|
function() Snacks.picker.git_files() end,
|
|
{ noremap = true, silent = true, desc = 'Fuzzy find files' }
|
|
},
|
|
{
|
|
'<leader>fa',
|
|
function() Snacks.picker.grep() end,
|
|
{ noremap = true, silent = true, desc = 'Fuzzy find grep' }
|
|
},
|
|
{
|
|
'<leader>f8',
|
|
function() Snacks.picker.grep_word() end,
|
|
{ noremap = true, silent = true, desc = 'Fuzzy find grep word' }
|
|
},
|
|
{
|
|
'<leader>f?',
|
|
function() Snacks.picker.pickers() end,
|
|
{ noremap = true, silent = true, desc = 'See all pickers' }
|
|
},
|
|
{
|
|
'<leader>f\'',
|
|
function() Snacks.picker.marks() end,
|
|
{ noremap = true, silent = true, desc = 'Pick marks' }
|
|
},
|
|
{
|
|
'<leader>fu',
|
|
function() Snacks.picker.undo() end,
|
|
{ noremap = true, silent = true, desc = 'Pick undotree' }
|
|
},
|
|
{
|
|
'<leader>fj',
|
|
function() Snacks.picker.jumps() end,
|
|
{ noremap = true, silent = true, desc = 'Pick jumps' }
|
|
},
|
|
{
|
|
'<leader>f.',
|
|
function() Snacks.picker.resume() end,
|
|
{ noremap = true, silent = true, desc = 'Fuzzy find resume' }
|
|
},
|
|
{
|
|
'<leader><leader>',
|
|
function() Snacks.picker.buffers() end,
|
|
{ noremap = true, silent = true, desc = 'Fuzzy find buffers' }
|
|
},
|
|
{
|
|
'<leader>fn',
|
|
function() Snacks.picker.notifications() end,
|
|
{ noremap = true, silent = true, desc = 'pick notifications' }
|
|
},
|
|
}
|
|
}
|
|
}
|