status.lua 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. local M = {
  2. "nvim-lualine/lualine.nvim",
  3. }
  4. function M.config()
  5. local lualine = require("lualine")
  6. local mode = "mode"
  7. local filetype = { "filetype", icon_only = true }
  8. local diagnostics = {
  9. "diagnostics",
  10. sources = { "nvim_diagnostic" },
  11. sections = { "error", "warn", "info", "hint" },
  12. symbols = {
  13. error = icons.diagnostics.Error,
  14. hint = icons.diagnostics.Hint,
  15. info = icons.diagnostics.Info,
  16. warn = icons.diagnostics.Warning,
  17. },
  18. colored = true,
  19. update_in_insert = false,
  20. always_visible = false,
  21. }
  22. local diff = {
  23. "diff",
  24. source = function()
  25. local gitsigns = vim.b.gitsigns_status_dict
  26. if gitsigns then
  27. return {
  28. added = gitsigns.added,
  29. modified = gitsigns.changed,
  30. removed = gitsigns.removed,
  31. }
  32. end
  33. end,
  34. symbols = {
  35. added = icons.git.LineAdded .. " ",
  36. modified = icons.git.LineModified .. " ",
  37. removed = icons.git.LineRemoved .. " ",
  38. },
  39. colored = true,
  40. always_visible = false,
  41. }
  42. lualine.setup({
  43. options = {
  44. theme = "auto",
  45. globalstatus = true,
  46. section_separators = "",
  47. component_separators = "",
  48. disabled_filetypes = { statusline = { "dashboard", "lazy", "alpha" } },
  49. },
  50. sections = {
  51. lualine_a = { mode },
  52. lualine_b = {},
  53. lualine_c = { "filename" },
  54. lualine_x = { diff, diagnostics, filetype },
  55. lualine_y = {},
  56. lualine_z = {},
  57. },
  58. })
  59. end
  60. return M