mini.lua 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. local M = {
  2. {
  3. "echasnovski/mini.icons",
  4. init = function()
  5. package.preload["nvim-web-devicons"] = function()
  6. require("mini.icons").mock_nvim_web_devicons()
  7. return package.loaded["nvim-web-devicons"]
  8. end
  9. end,
  10. },
  11. {
  12. "echasnovski/mini.ai",
  13. config = function()
  14. -- - va) - [V]isually select [A]round [)]paren
  15. -- - yinq - [Y]ank [I]nside [N]ext [Q]uote
  16. -- - ci' - [C]hange [I]nside [']quote
  17. require("mini.ai").setup({ n_lines = 500 })
  18. end,
  19. },
  20. {
  21. "echasnovski/mini.surround",
  22. config = function()
  23. -- Add/delete/replace surroundings (brackets, quotes, etc.)
  24. --
  25. -- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
  26. -- - sd' - [S]urround [D]elete [']quotes
  27. -- - sr)' - [S]urround [R]eplace [)] [']
  28. require("mini.surround").setup({})
  29. end,
  30. },
  31. {
  32. "echasnovski/mini.statusline",
  33. version = false,
  34. config = function()
  35. require("mini.statusline").setup({})
  36. MiniStatusline.section_codeium = function(args)
  37. args = args or {}
  38. local trunc_width = args.trunc_width or 75
  39. if MiniStatusline.is_truncated(trunc_width) then
  40. return ""
  41. end
  42. local status = vim.fn["codeium#GetStatusString"]()
  43. if status and status ~= "" then
  44. local icon = args.icon or "󰘦 "
  45. return icon .. status
  46. end
  47. return ""
  48. end
  49. MiniStatusline.config.content.active = function()
  50. local mode, mode_hl = MiniStatusline.section_mode({ trunc_width = 120 })
  51. local git = MiniStatusline.section_git({ trunc_width = 40 })
  52. local diff = MiniStatusline.section_diff({ trunc_width = 75 })
  53. local diagnostics = MiniStatusline.section_diagnostics({ trunc_width = 75 })
  54. local lsp = MiniStatusline.section_lsp({ trunc_width = 75 })
  55. local filename = MiniStatusline.section_filename({ trunc_width = 140 })
  56. local fileinfo = MiniStatusline.section_fileinfo({ trunc_width = 120 })
  57. local location = MiniStatusline.section_location({ trunc_width = 75 })
  58. local search = MiniStatusline.section_searchcount({ trunc_width = 75 })
  59. local codeium = MiniStatusline.section_codeium({ trunc_width = 75 })
  60. return MiniStatusline.combine_groups({
  61. { hl = mode_hl, strings = { mode } },
  62. { hl = "MiniStatuslineDevinfo", strings = { git, diff, diagnostics, lsp } },
  63. "%<", -- Mark general truncate point
  64. { hl = "MiniStatuslineFilename", strings = { filename } },
  65. "%=", -- End left alignment
  66. { hl = "MiniStatuslineFileinfo", strings = { fileinfo } },
  67. { hl = mode_hl, strings = { codeium, search, location } },
  68. })
  69. end
  70. end,
  71. },
  72. }
  73. return M