123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- 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.vi_mode,
- },
- lualine_b = {
- components.branch,
- },
- lualine_c = {
- components.diff,
- components.python_env,
- },
- lualine_x = {
- components.diagnostics,
- components.treesitter,
- components.lsp,
- -- components.location,
- -- components.progress,
- -- components.spaces,
- -- components.encoding,
- components.filetype,
- },
- lualine_y = {
- -- components.filetype,
- },
- 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"
- local logger = Log:get_default()
- logger.error(
- "Invalid lualine style",
- string.format('"%s"', style),
- "options are: ",
- string.format('"%s"', table.concat(style_keys, '", "'))
- )
- logger.info '"lvim" style is applied.'
- style = "lvim"
- end
- return vim.deepcopy(styles[style])
- end
- function M.update()
- local config = lvim.builtin.lualine
- local style = M.get_style(config.style)
- lvim.builtin.lualine = {
- active = true,
- style = style.style,
- options = {
- icons_enabled = config.options.icons_enabled or style.options.icons_enabled,
- component_separators = config.options.component_separators or style.options.component_separators,
- section_separators = config.options.section_separators or style.options.section_separators,
- theme = config.options.theme or lvim.colorscheme or "auto",
- disabled_filetypes = config.options.disabled_filetypes or style.options.disabled_filetypes,
- },
- sections = {
- lualine_a = config.sections.lualine_a or style.sections.lualine_a,
- lualine_b = config.sections.lualine_b or style.sections.lualine_b,
- lualine_c = config.sections.lualine_c or style.sections.lualine_c,
- lualine_x = config.sections.lualine_x or style.sections.lualine_x,
- lualine_y = config.sections.lualine_y or style.sections.lualine_y,
- lualine_z = config.sections.lualine_z or style.sections.lualine_z,
- },
- inactive_sections = {
- lualine_a = config.inactive_sections.lualine_a or style.inactive_sections.lualine_a,
- lualine_b = config.inactive_sections.lualine_b or style.inactive_sections.lualine_b,
- lualine_c = config.inactive_sections.lualine_c or style.inactive_sections.lualine_c,
- lualine_x = config.inactive_sections.lualine_x or style.inactive_sections.lualine_x,
- lualine_y = config.inactive_sections.lualine_y or style.inactive_sections.lualine_y,
- lualine_z = config.inactive_sections.lualine_z or style.inactive_sections.lualine_z,
- },
- tabline = config.tabline or style.tabline,
- extensions = config.extensions or style.extensions,
- on_config_done = config.on_config_done,
- }
- end
- return M
|