return {
|
|
"nvim-lualine/lualine.nvim",
|
|
dependencies = {
|
|
"nvim-tree/nvim-web-devicons",
|
|
"letieu/harpoon-lualine",
|
|
},
|
|
config = function()
|
|
local lualine = require("lualine")
|
|
local lazy_status = require("lazy.status")
|
|
|
|
-- Custom components
|
|
local function macro_recording()
|
|
local recording_register = vim.fn.reg_recording()
|
|
if recording_register == "" then
|
|
return ""
|
|
else
|
|
return "Recording @" .. recording_register
|
|
end
|
|
end
|
|
|
|
local function buffer_count()
|
|
local buffers = vim.fn.getbufinfo({ buflisted = 1 })
|
|
return "Buffers: " .. #buffers
|
|
end
|
|
|
|
|
|
lualine.setup({
|
|
options = {
|
|
theme = "auto",
|
|
component_separators = { left = "", right = "" },
|
|
section_separators = { left = "", right = "" },
|
|
globalstatus = true,
|
|
refresh = {
|
|
statusline = 1000, -- Refresh every second for macro recording
|
|
},
|
|
},
|
|
extensions = {
|
|
"fugitive",
|
|
"oil",
|
|
"quickfix",
|
|
"trouble", -- Add if you use trouble.nvim
|
|
"mason", -- Add if you use mason.nvim
|
|
},
|
|
sections = {
|
|
lualine_a = {
|
|
{ "mode", fmt = function(str) return str:sub(1,1) end }, -- Shorter mode display
|
|
},
|
|
lualine_b = {
|
|
{ "branch", icon = "" },
|
|
{
|
|
"diff",
|
|
colored = true,
|
|
symbols = { added = " ", modified = " ", removed = " " }
|
|
},
|
|
{
|
|
"diagnostics",
|
|
sources = { "nvim_lsp" },
|
|
symbols = { error = " ", warn = " ", info = " ", hint = " " }
|
|
},
|
|
},
|
|
lualine_c = {
|
|
{
|
|
"filename",
|
|
file_status = true,
|
|
path = 1, -- Show relative path
|
|
shorting_target = 40, -- Shorten long paths
|
|
symbols = {
|
|
modified = "",
|
|
readonly = "",
|
|
unnamed = "[No Name]",
|
|
newfile = "[New]",
|
|
}
|
|
},
|
|
{ "harpoon2" },
|
|
{
|
|
macro_recording,
|
|
color = { fg = "#ff9e64", gui = "bold" },
|
|
separator = { left = "" }
|
|
},
|
|
{ buffer_count, color = { fg = "#7aa2f7" } },
|
|
},
|
|
lualine_x = {
|
|
{
|
|
lazy_status.updates,
|
|
cond = lazy_status.has_updates,
|
|
color = { fg = "#ff9e64" },
|
|
},
|
|
-- Remove fileformat unless you really need it
|
|
-- { "fileformat" },
|
|
{ "filetype", colored = true },
|
|
},
|
|
lualine_y = {
|
|
{ "progress" },
|
|
},
|
|
lualine_z = {
|
|
{ "location" },
|
|
},
|
|
},
|
|
inactive_sections = {
|
|
lualine_c = {
|
|
{ "filename", file_status = true, path = 1 }
|
|
},
|
|
lualine_x = {
|
|
{ "filetype" }
|
|
},
|
|
},
|
|
})
|
|
end,
|
|
}
|