qol.lua 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. return {
  2. "folke/snacks.nvim",
  3. priority = 1000,
  4. config = function()
  5. local snacks = require("snacks")
  6. snacks.setup({
  7. bigfile = { enabled = true },
  8. debug = { enabled = true },
  9. image = { enabled = true },
  10. indent = { enabled = true, animate = { enabled = false } },
  11. rename = { enabled = true },
  12. notifier = { enabled = true },
  13. scroll = {
  14. enabled = true,
  15. animate = {
  16. duration = { step = 5, total = 50 },
  17. easing = "linear",
  18. },
  19. },
  20. dashboard = {
  21. preset = {
  22. keys = function()
  23. return {
  24. { icon = "⏻", key = "q", desc = "Quit", action = "<cmd>qa<CR>" },
  25. { icon = "󱇧", key = "e", desc = "New Buffer", action = "<cmd>ene<CR>" },
  26. }
  27. end,
  28. header = table.concat({
  29. [[ █ █ ]],
  30. [[ █ ██ ]],
  31. [[ ████ ]],
  32. [[ ██ ███ ]],
  33. [[ █ █ ]],
  34. [[ ]],
  35. [[ n e o v i m ]],
  36. }, "\n"),
  37. },
  38. sections = {
  39. {
  40. section = "header",
  41. },
  42. { title = "MRU ", file = vim.fn.fnamemodify(".", ":~"), padding = 1 },
  43. { section = "recent_files", cwd = true, limit = 10, padding = 1 },
  44. { title = "GMRU", padding = 1 },
  45. { section = "recent_files", limit = 5, padding = 1 },
  46. { title = "Sessions", padding = 1 },
  47. { section = "projects", padding = 1 },
  48. { section = "keys", gap = 0, padding = 1 },
  49. },
  50. },
  51. })
  52. nmap("<leader>.", snacks.scratch.open, { desc = "Toggle Scratch Buffer" })
  53. nmap("<leader>,", snacks.scratch.select, { desc = "Select Scratch Buffer" })
  54. -- Show notifier history
  55. nmap("<leader>ns", snacks.notifier.show_history, { desc = "Show notifier history" })
  56. end,
  57. }