diff options
Diffstat (limited to 'lua/lvim/core/lualine/styles.lua')
| -rw-r--r-- | lua/lvim/core/lualine/styles.lua | 137 | 
1 files changed, 137 insertions, 0 deletions
| diff --git a/lua/lvim/core/lualine/styles.lua b/lua/lvim/core/lualine/styles.lua new file mode 100644 index 00000000..0843aead --- /dev/null +++ b/lua/lvim/core/lualine/styles.lua @@ -0,0 +1,137 @@ +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]) +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 | 
