LunarVim/lua/lvim/core/lualine/styles.lua
2022-10-04 13:23:52 -04:00

165 lines
3.6 KiB
Lua

local M = {}
local components = require "lvim.core.lualine.components"
local styles = {
lvim = nil,
default = nil,
none = nil,
}
styles.none = {
style = "none",
options = {
theme = "auto",
globalstatus = true,
icons_enabled = lvim.use_icons,
component_separators = { left = "", right = "" },
section_separators = { left = "", right = "" },
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 = {
theme = "auto",
globalstatus = true,
icons_enabled = lvim.use_icons,
component_separators = {
left = lvim.icons.ui.DividerRight,
right = lvim.icons.ui.DividerLeft,
},
section_separators = {
left = lvim.icons.ui.BoldDividerRight,
right = lvim.icons.ui.BoldDividerLeft,
},
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 = {
theme = "auto",
globalstatus = true,
icons_enabled = lvim.use_icons,
component_separators = { left = "", right = "" },
section_separators = { left = "", right = "" },
disabled_filetypes = { "alpha" },
},
sections = {
lualine_a = {
components.mode,
},
lualine_b = {
components.branch,
},
lualine_c = {
components.diff,
components.python_env,
},
lualine_x = {
components.diagnostics,
components.lsp,
components.spaces,
components.filetype,
},
lualine_y = { components.location },
lualine_z = {
components.progress,
},
},
inactive_sections = {
lualine_a = {
components.mode,
},
lualine_b = {
components.branch,
},
lualine_c = {
components.diff,
components.python_env,
},
lualine_x = {
components.diagnostics,
components.lsp,
components.spaces,
components.filetype,
},
lualine_y = { components.location },
lualine_z = {
components.progress,
},
},
tabline = {},
extensions = {},
}
function M.get_style(style)
local style_keys = vim.tbl_keys(styles)
if not vim.tbl_contains(style_keys, style) then
local Log = require "lvim.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)
lvim.builtin.lualine = vim.tbl_deep_extend("keep", lvim.builtin.lualine, style)
local color_template = vim.g.colors_name or lvim.colorscheme
local theme_supported, template = pcall(function()
require("lualine.utils.loader").load_theme(color_template)
end)
if theme_supported and template then
lvim.builtin.lualine.options.theme = color_template
end
end
return M