| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 | local M = {}local components = require "lvim.core.lualine.components"local styles = {  lvim = nil,  default = nil,  none = nil,}styles.none = {  style = "none",  options = {    icons_enabled = true,    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 = {    icons_enabled = true,    component_separators = { left = "", right = "" },    section_separators = { left = "", right = "" },    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 = { left = "", right = "" },    section_separators = { left = "", right = "" },    disabled_filetypes = { "dashboard", "NvimTree", "Outline" },  },  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 "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])endfunction 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)endreturn M
 |