diff options
| author | chaeing <[email protected]> | 2021-08-20 02:16:29 -0700 | 
|---|---|---|
| committer | GitHub <[email protected]> | 2021-08-20 13:46:29 +0430 | 
| commit | 85fe093efb8353552171575809c02a5e9124fa68 (patch) | |
| tree | d227b20217b08d894433fab2b3f10c5fc3297df4 /lua/core/lualine/styles.lua | |
| parent | 59598723077ac6728fc585c3c88e0ec84ba430c3 (diff) | |
[Feature] switch galaxyline to lualine (#1329)
Diffstat (limited to 'lua/core/lualine/styles.lua')
| -rw-r--r-- | lua/core/lualine/styles.lua | 170 | 
1 files changed, 170 insertions, 0 deletions
diff --git a/lua/core/lualine/styles.lua b/lua/core/lualine/styles.lua new file mode 100644 index 00000000..e35f66fe --- /dev/null +++ b/lua/core/lualine/styles.lua @@ -0,0 +1,170 @@ +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  | 
