my neovim config, who would've thought
1---@type LazySpec
2return {
3 {
4 "echasnovski/mini.nvim",
5 event = "VeryLazy",
6 keys = {
7 {
8 "<leader>c",
9 function()
10 require("mini.bufremove").delete()
11 end,
12 },
13 },
14 config = function()
15 require("mini.bufremove").setup { silent = true }
16 require("mini.splitjoin").setup {}
17 require("mini.pairs").setup {}
18 require("mini.ai").setup {}
19 require("mini.icons").setup {}
20 require("mini.test").setup {}
21 require("mini.hipatterns").setup {}
22 require("mini.comment").setup {}
23 end,
24 },
25
26 {
27 "folke/snacks.nvim",
28 lazy = false,
29 priority = 1001,
30 keys = function()
31 local function wrap(mod, fn, opts)
32 return function()
33 return Snacks[mod][fn](opts or {})
34 end
35 end
36
37 return {
38 { "<leader>d", wrap("picker", "resume") },
39 { "<leader>f", wrap("picker", "smart") },
40 { "<leader>b", wrap("picker", "buffers") },
41 { "<leader>sr", wrap("picker", "recent") },
42 { "<leader>sg", wrap("picker", "grep", { args = { "-i" } }) },
43 { "<leader>sd", wrap("picker", "diagnostics") },
44 { "<leader>sh", wrap("picker", "help") },
45 { "z=", wrap("picker", "spelling") },
46 }
47 end,
48 ---@module "snacks"
49 ---@type snacks.Config
50 opts = {
51 image = {
52 enabled = true,
53 doc = { inline = false },
54 },
55 words = {
56 enabled = true,
57 debounce = 100,
58 },
59 picker = {
60 enabled = true,
61 main = { current = true },
62 layout = {
63 preset = "ivy",
64 layout = {
65 height = 25,
66 },
67 },
68 win = {
69 input = {
70 keys = {
71 ["<Esc>"] = { "close", mode = { "n", "i" } },
72 ["<C-k>"] = { "" },
73 ["<C-j>"] = { "" },
74 },
75 },
76 },
77 sources = {
78 select = { layout = { preset = "ivy" } },
79 spelling = { layout = { preset = "ivy" } },
80 smart = { multi = { "buffers", "files" } },
81 },
82 },
83 },
84 },
85}