2023-06-27 09:52:49 +00:00
|
|
|
return {
|
2025-02-26 10:22:27 +00:00
|
|
|
"nvim-lualine/lualine.nvim",
|
2024-03-15 14:15:26 +00:00
|
|
|
dependencies = {
|
2025-02-26 10:22:27 +00:00
|
|
|
{ "kyazdani42/nvim-web-devicons", lazy = true },
|
|
|
|
"crater2150/vim-theme-chroma",
|
2024-09-11 08:18:23 +00:00
|
|
|
{
|
2025-02-26 10:22:27 +00:00
|
|
|
"linrongbin16/lsp-progress.nvim",
|
2024-09-11 08:18:23 +00:00
|
|
|
config = function()
|
2025-02-26 10:22:27 +00:00
|
|
|
require("lsp-progress").setup()
|
|
|
|
end,
|
2024-09-11 08:18:23 +00:00
|
|
|
},
|
2024-03-15 14:15:26 +00:00
|
|
|
},
|
|
|
|
event = "VeryLazy",
|
|
|
|
opts = function(_, opts)
|
|
|
|
return {
|
|
|
|
options = {
|
2025-02-26 10:22:27 +00:00
|
|
|
theme = require("chroma-theme.lualine"),
|
2024-03-15 14:15:26 +00:00
|
|
|
},
|
|
|
|
tabline = {
|
2025-02-26 10:22:27 +00:00
|
|
|
lualine_a = { "branch" },
|
2024-03-15 14:15:26 +00:00
|
|
|
lualine_b = {},
|
2025-02-26 10:22:27 +00:00
|
|
|
lualine_c = {
|
|
|
|
{
|
|
|
|
"buffers",
|
|
|
|
show_filename_only = false,
|
|
|
|
symbols = { modified = " ✏️]", alternate_file = " 🔃", folder = " 📁" },
|
|
|
|
},
|
|
|
|
},
|
2024-03-15 14:15:26 +00:00
|
|
|
lualine_x = {},
|
|
|
|
lualine_y = {},
|
|
|
|
lualine_z = {
|
|
|
|
{
|
2025-02-26 10:22:27 +00:00
|
|
|
"tabs",
|
2024-03-15 14:15:26 +00:00
|
|
|
mode = 1,
|
|
|
|
fmt = function(name, context)
|
|
|
|
local buflist = vim.fn.tabpagebuflist(context.tabnr)
|
2025-02-26 10:22:27 +00:00
|
|
|
local mod = not vim.tbl_isempty(vim.tbl_filter(function(bufnr)
|
|
|
|
return vim.fn.getbufvar(bufnr, "&mod") == 1
|
|
|
|
end, buflist))
|
2023-08-23 11:25:45 +00:00
|
|
|
|
2025-02-26 10:22:27 +00:00
|
|
|
local wincount = #vim.tbl_filter(function(i)
|
|
|
|
return i == "leaf"
|
|
|
|
end, vim.tbl_flatten(vim.fn.winlayout(context.tabnr)))
|
2023-08-23 11:25:45 +00:00
|
|
|
|
2025-02-26 10:22:27 +00:00
|
|
|
return name
|
|
|
|
.. (wincount > 1 and " +" .. (wincount - 1) or "")
|
|
|
|
.. (mod and " [✏️]]" or "")
|
|
|
|
end,
|
|
|
|
},
|
|
|
|
},
|
2024-03-15 14:15:26 +00:00
|
|
|
},
|
|
|
|
sections = {
|
2025-02-26 10:22:27 +00:00
|
|
|
lualine_a = { "filename" },
|
|
|
|
lualine_b = { "diff", "diagnostics" },
|
2024-09-11 08:18:23 +00:00
|
|
|
lualine_x = {
|
|
|
|
function()
|
|
|
|
-- invoke `progress` here.
|
2025-02-26 10:22:27 +00:00
|
|
|
return require("lsp-progress").progress()
|
|
|
|
end,
|
2024-09-11 08:18:23 +00:00
|
|
|
},
|
2025-02-26 10:22:27 +00:00
|
|
|
lualine_y = { "filetype" },
|
|
|
|
lualine_z = { "searchcount", "selectioncount", "location" },
|
2024-03-15 14:15:26 +00:00
|
|
|
},
|
|
|
|
inactive_sections = {
|
|
|
|
lualine_a = {},
|
|
|
|
lualine_b = {},
|
2025-02-26 10:22:27 +00:00
|
|
|
lualine_c = { "filename" },
|
|
|
|
lualine_x = { "location" },
|
2024-03-15 14:15:26 +00:00
|
|
|
lualine_y = {},
|
2025-02-26 10:22:27 +00:00
|
|
|
lualine_z = {},
|
2024-03-15 14:15:26 +00:00
|
|
|
},
|
|
|
|
winbar = {},
|
|
|
|
inactive_winbar = {},
|
2025-02-26 10:22:27 +00:00
|
|
|
extensions = {},
|
2024-03-15 14:15:26 +00:00
|
|
|
}
|
|
|
|
end,
|
2024-09-11 08:18:23 +00:00
|
|
|
config = function(_, opts)
|
|
|
|
require("lualine").setup(opts)
|
|
|
|
vim.api.nvim_create_augroup("lualine_augroup", { clear = true })
|
|
|
|
vim.api.nvim_create_autocmd("User", {
|
|
|
|
group = "lualine_augroup",
|
|
|
|
pattern = "LspProgressStatusUpdated",
|
|
|
|
callback = require("lualine").refresh,
|
|
|
|
})
|
|
|
|
end,
|
2023-06-27 09:52:49 +00:00
|
|
|
}
|