return { 'folke/snacks.nvim', commit = 'b773368f8aa6e84a68e979f0e335d23de71f405a', lazy = false, priority = 1000, keys = { -- Buffer Management { 'd', function() require('snacks').bufdelete() end, desc = 'Delete Current Buffer', }, -- UX: Zen Mode --- u { 'ud', function() require('snacks').dim() end, desc = '[U]I [D]imming', }, { 'us', function() require('snacks').dim.disable() end, desc = 'Disable [U]I Dimming', }, { 'uz', function() require('snacks').zen() end, desc = '[U]I [Z]en Mode', }, -- Picker --- Accessibility { 's?', function() require('snacks').picker.pickers() end, 'n', desc = '[S]earch Pickers', }, { 'sh', function() require('snacks').picker.help() end, 'n', desc = '[S]earch [H]elp Tags', }, { 'sk', function() require('snacks').picker.keymaps() end, 'n', desc = '[S]earch [K]eymaps', }, { 'sc', function() require('snacks').picker.commands() end, 'n', desc = '[S]earch [C]ommands', }, { 'sm', function() require('snacks').picker.man() end, 'n', desc = '[S]earch [M]anpages', }, --- Grep { 'sg', function() require('snacks').picker.grep() end, 'n', desc = '[S]earch w/[G]rep', }, --- Buffer / File Search { 'sb', function() require('snacks').picker.buffers() end, 'n', desc = '[S]earch [B]uffers', }, { 'sf', function() require('snacks').picker.files() end, 'n', desc = '[S]earch [F]iles', }, { 'st', function() require('snacks').explorer() end, 'n', desc = '[S]earch File[T]ree', }, --- Git: "VCS" -> "v" { 'svd', function() require('snacks').picker.git_diff() end, 'n', desc = '[S]earch Git [L]og', }, { 'svl', function() require('snacks').picker.git_log_file() end, 'n', desc = '[S]earch Git [L]og', }, { 'svs', function() require('snacks').picker.git_status() end, 'n', desc = '[S]earch Git [S]tatus', }, --- Debug { 'sd', function() require('snacks').picker.diagnostics_buffer() end, 'n', desc = '[S]earch [D]iagnostics', }, --- Vim { "s'", function() require('snacks').picker.registers() end, 'n', desc = '[S]earch Vim Registers', }, }, opts = { -- Big Files: Disable LSPs for Very Big Files bigfile = {}, -- Dashboard: Pretty Startup dashboard = {}, -- Dim: Focus on the Active Scope dim = {}, -- Picker picker = { --sources = { -- ['projections'] = { -- preview = 'preview', -- format = "text", -- }, --}, }, -- Indent: Indentation Guides indent = { animate = { enabled = false, }, }, -- Input: Better vim.ui.input input = { enabled = true }, -- TODO: git (for the blame line) -- TODO: gitbrowse -- TODO: lazygit -- Notifier: Prettier notifications --notifier = { enabled = true }, -- Quickfile: Load files first (aka fast) when doing 'nvim file.txt' quickfile = { enabled = true }, -- TODO: 'rename' w/nvim-tree integration -- "Zen Mode" zen = { enabled = true }, }, }