diff options
| author | Ellison Leão <ellisonleao@gmail.com> | 2021-03-17 11:59:02 -0300 |
|---|---|---|
| committer | Ellison Leão <ellisonleao@gmail.com> | 2021-03-17 11:59:02 -0300 |
| commit | 748a82c29250c467108523d184e25160f3fab930 (patch) | |
| tree | 36c227e870cbbab2cc281037419d95361c282286 | |
| parent | 877451aff3f125ded1cb6c3b080d358bb5cfe112 (diff) | |
| download | gruvbox-748a82c29250c467108523d184e25160f3fab930.tar.gz gruvbox-748a82c29250c467108523d184e25160f3fab930.tar.xz | |
fixing conditional loading for lightline and group colors #28
- error msg still showing from lightline side as a side effect, but
hightlight is with the right color
| -rw-r--r-- | lua/gruvbox/init.lua | 3 | ||||
| -rw-r--r-- | lua/gruvbox/plugins/lightline.lua | 127 |
2 files changed, 62 insertions, 68 deletions
diff --git a/lua/gruvbox/init.lua b/lua/gruvbox/init.lua index 3447cb8..fd568dd 100644 --- a/lua/gruvbox/init.lua +++ b/lua/gruvbox/init.lua @@ -984,7 +984,6 @@ local groups = lush(function() } end) --- lightline check -require("gruvbox.plugins.lightline").start() +require("gruvbox.plugins.lightline").start(groups) return groups diff --git a/lua/gruvbox/plugins/lightline.lua b/lua/gruvbox/plugins/lightline.lua index 2cc9caf..2e0ad38 100644 --- a/lua/gruvbox/plugins/lightline.lua +++ b/lua/gruvbox/plugins/lightline.lua @@ -1,75 +1,70 @@ -- lightline support local M = {} -local function get_gruvbox_color(group) - local gui_color = vim.fn.synIDattr(vim.fn.hlID(group), "fg", "gui") - local term_color = vim.fn.synIDattr(vim.fn.hlID(group), "fg", "cterm") - return {gui_color, term_color} -end - -local bg0 = get_gruvbox_color("GruvboxBg0") -local bg1 = get_gruvbox_color("GruvboxBg1") -local bg2 = get_gruvbox_color("GruvboxBg2") -local bg4 = get_gruvbox_color("GruvboxBg4") -local fg1 = get_gruvbox_color("GruvboxFg1") -local fg4 = get_gruvbox_color("GruvboxFg4") +M.start = function(theme) + local bg0 = theme.GruvboxBg0.bg.hex + local bg1 = theme.GruvboxBg1.bg.hex + local bg2 = theme.GruvboxBg2.bg.hex + local bg4 = theme.GruvboxBg4.bg.hex + local fg1 = theme.GruvboxFg1.fg.hex + local fg4 = theme.GruvboxFg4.fg.hex -local yellow = get_gruvbox_color("GruvboxYellow") -local blue = get_gruvbox_color("GruvboxBlue") -local aqua = get_gruvbox_color("GruvboxAqua") -local orange = get_gruvbox_color("GruvboxOrange") -local red = get_gruvbox_color("GruvboxRed") -local green = get_gruvbox_color("GruvboxGreen") + local yellow = theme.GruvboxYellow.fg.hex + local blue = theme.GruvboxBlue.fg.hex + local aqua = theme.GruvboxAqua.fg.hex + local orange = theme.GruvboxOrange.fg.hex + local red = theme.GruvboxRed.fg.hex + local green = theme.GruvboxGreen.fg.hex -local p = { - normal = { - right = {{bg0, fg4}, {fg4, bg2}}, - left = {{bg0, fg4, "bold"}, {fg4, bg2}}, - middle = {{fg4, bg1}}, - error = {{bg0, red}}, - warning = {{bg0, yellow}}, - }, - inactive = { - right = {{bg4, bg1}, {bg4, bg1}}, - left = {{bg4, bg1}, {bg4, bg1}}, - middle = {{bg4, bg1}}, - }, - insert = { - right = {{bg0, blue}, {fg1, bg2}}, - left = {{bg0, blue, "bold"}, {fg1, bg2}}, - middle = {{fg4, bg1}}, - }, - terminal = { - right = {{bg0, green}, {fg1, bg2}}, - left = {{bg0, green, "bold"}, {fg1, bg2}}, - middle = {{fg4, bg1}}, - }, - replace = { - right = {{bg0, aqua}, {fg1, bg2}}, - left = {{bg0, aqua, "bold"}, {fg1, bg2}}, - middle = {{fg4, bg1}}, - }, - visual = { - right = {{bg0, orange}, {bg0, bg4}}, - left = {{bg0, orange, "bold"}, {bg0, bg4}}, - middle = {{fg4, bg1}}, - }, - tabline = { - right = {{bg0, orange}}, - left = {{fg4, bg2}}, - middle = {{bg0, bg4}}, - tabsel = {{bg0, fg4}}, - }, -} - -M.start = function() - if not vim.fn.exists(vim.g.lightline) then - return - end + local lightline_theme = { + normal = { + left = {{bg0, fg4, "bold"}, {fg4, bg2}}, + middle = {{fg4, bg1}}, + right = {{bg0, fg4}, {fg4, bg2}}, + error = {{bg0, red}}, + warning = {{bg0, yellow}}, + }, + insert = { + left = {{bg0, blue, "bold"}, {fg1, bg2}}, + middle = {{fg4, bg1}}, + right = {{bg0, blue}, {fg1, bg2}}, + }, + inactive = { + left = {{bg4, bg1}}, + middle = {{bg4, bg1}}, + right = {{bg4, bg1}, {bg4, bg1}}, + }, + terminal = { + left = {{bg0, green, "bold"}, {fg1, bg2}}, + middle = {{fg4, bg1}}, + right = {{bg0, green}, {fg1, bg2}}, + }, + replace = { + left = {{bg0, aqua, "bold"}, {fg1, bg2}}, + middle = {{fg4, bg1}}, + right = {{bg0, aqua}, {fg1, bg2}}, + }, + visual = { + left = {{bg0, orange, "bold"}, {bg0, bg4}}, + middle = {{fg4, bg1}}, + right = {{bg0, orange}, {bg0, bg4}}, + }, + tabline = { + left = {{fg4, bg2}}, + middle = {{bg0, bg4}}, + right = {{bg0, orange}}, + tabsel = {{bg0, fg4}}, + }, + } - if vim.g.loaded_lightline then - vim.g["lightline#colorscheme#gruvbox#palette"] = - vim.api.nvim_call_function("lightline#colorscheme#flatten", {p}) + local has_lightline, _ = pcall(vim.fn["lightline#update"]) + if has_lightline then + local ll_filled = vim.fn['lightline#colorscheme#fill'](lightline_theme) + vim.g['lightline#colorscheme#gruvbox#palette'] = ll_filled + vim.schedule(function() + vim.fn['lightline#disable']() + vim.fn['lightline#enable']() + end) end end |
