qol.lua 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. return {
  2. "folke/snacks.nvim",
  3. priority = 1000,
  4. init = function()
  5. local group = vim.api.nvim_create_augroup("BlinkCmpSnacksToggle", { clear = true })
  6. vim.api.nvim_create_autocmd("User", {
  7. group = group,
  8. pattern = "BlinkCmpMenuOpen",
  9. callback = function()
  10. vim.g.snacks_animate = false
  11. end,
  12. })
  13. vim.api.nvim_create_autocmd("User", {
  14. group = group,
  15. pattern = "BlinkCmpMenuClose",
  16. callback = function()
  17. vim.g.snacks_animate = true
  18. end,
  19. })
  20. end,
  21. config = function()
  22. local snacks = require("snacks")
  23. snacks.setup({
  24. bigfile = { enabled = true },
  25. input = {
  26. enabled = true,
  27. prompt_pos = "left",
  28. icon_pos = "left",
  29. expand = false,
  30. win = {
  31. row = 0.4,
  32. position = "float",
  33. border = "rounded",
  34. },
  35. },
  36. select = {
  37. enabled = true,
  38. win = { border = "rounded" },
  39. },
  40. debug = { enabled = true },
  41. image = { enabled = true },
  42. indent = { enabled = true, animate = { enabled = false } },
  43. rename = { enabled = true },
  44. notifier = { enabled = true },
  45. scroll = {
  46. enabled = true,
  47. animate = {
  48. duration = { step = 5, total = 50 },
  49. easing = "linear",
  50. },
  51. },
  52. dashboard = {
  53. preset = {
  54. keys = function()
  55. return {
  56. { icon = "⏻", key = "q", desc = "Quit", action = "<cmd>qa<CR>" },
  57. { icon = "󱇧", key = "e", desc = "New Buffer", action = "<cmd>ene<CR>" },
  58. }
  59. end,
  60. header = table.concat({
  61. [[ █ █ ]],
  62. [[ █ ██ ]],
  63. [[ ████ ]],
  64. [[ ██ ███ ]],
  65. [[ █ █ ]],
  66. [[ ]],
  67. [[ n e o v i m ]],
  68. }, "\n"),
  69. },
  70. sections = {
  71. {
  72. section = "header",
  73. },
  74. { title = "MRU ", file = vim.fn.fnamemodify(".", ":~"), padding = 1 },
  75. { section = "recent_files", cwd = true, limit = 10, padding = 1 },
  76. { title = "GMRU", padding = 1 },
  77. { section = "recent_files", limit = 5, padding = 1 },
  78. { title = "Sessions", padding = 1 },
  79. { section = "projects", padding = 1 },
  80. { section = "keys", gap = 0, padding = 1 },
  81. },
  82. },
  83. })
  84. nmap("<leader>.", snacks.scratch.open, { desc = "Toggle Scratch Buffer" })
  85. nmap("<leader>,", snacks.scratch.select, { desc = "Select Scratch Buffer" })
  86. -- Show notifier history
  87. nmap("<leader>ns", snacks.notifier.show_history, { desc = "Show notifier history" })
  88. end,
  89. }