summaryrefslogtreecommitdiff
path: root/lua/core/lualine/styles.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/core/lualine/styles.lua')
-rw-r--r--lua/core/lualine/styles.lua170
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