LunarVim/lua/core/lualine/styles.lua

137 lines
2.8 KiB
Lua

local M = {}
local components = require "core.lualine.components"
local styles = {
lvim = nil,
default = nil,
none = nil,
}
styles.none = {
style = "none",
options = {
icons_enabled = true,
component_separators = "",
section_separators = "",
disabled_filetypes = {},
},
sections = {
lualine_a = {},
lualine_b = {},
lualine_c = {},
lualine_x = {},
lualine_y = {},
lualine_z = {},
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = {},
lualine_x = {},
lualine_y = {},
lualine_z = {},
},
tabline = {},
extensions = {},
}
styles.default = {
style = "default",
options = {
icons_enabled = true,
component_separators = { "", "" },
section_separators = { "", "" },
disabled_filetypes = {},
},
sections = {
lualine_a = { "mode" },
lualine_b = { "branch" },
lualine_c = { "filename" },
lualine_x = { "encoding", "fileformat", "filetype" },
lualine_y = { "progress" },
lualine_z = { "location" },
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = { "filename" },
lualine_x = { "location" },
lualine_y = {},
lualine_z = {},
},
tabline = {},
extensions = {},
}
styles.lvim = {
style = "lvim",
options = {
icons_enabled = true,
component_separators = "",
section_separators = "",
disabled_filetypes = { "dashboard" },
},
sections = {
lualine_a = {
components.mode,
},
lualine_b = {
components.branch,
components.filename,
},
lualine_c = {
components.diff,
components.python_env,
},
lualine_x = {
components.diagnostics,
components.treesitter,
components.lsp,
components.filetype,
},
lualine_y = {},
lualine_z = {
components.scrollbar,
},
},
inactive_sections = {
lualine_a = {
"filename",
},
lualine_b = {},
lualine_c = {},
lualine_x = {},
lualine_y = {},
lualine_z = {},
},
tabline = {},
extensions = { "nvim-tree" },
}
function M.get_style(style)
local style_keys = vim.tbl_keys(styles)
if not vim.tbl_contains(style_keys, style) then
local Log = require "core.log"
Log:error(
"Invalid lualine style",
string.format('"%s"', style),
"options are: ",
string.format('"%s"', table.concat(style_keys, '", "'))
)
Log:debug '"lvim" style is applied.'
style = "lvim"
end
return vim.deepcopy(styles[style])
end
function M.update()
local style = M.get_style(lvim.builtin.lualine.style)
if lvim.builtin.lualine.options.theme == nil then
lvim.builtin.lualine.options.theme = lvim.colorscheme
end
lvim.builtin.lualine = vim.tbl_deep_extend("keep", lvim.builtin.lualine, style)
end
return M