aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEllison Leão <ellisonleao@gmail.com>2021-03-17 11:59:02 -0300
committerEllison Leão <ellisonleao@gmail.com>2021-03-17 11:59:02 -0300
commit748a82c29250c467108523d184e25160f3fab930 (patch)
tree36c227e870cbbab2cc281037419d95361c282286
parent877451aff3f125ded1cb6c3b080d358bb5cfe112 (diff)
downloadgruvbox-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.lua3
-rw-r--r--lua/gruvbox/plugins/lightline.lua127
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