vim/lualine: improve extension of components

This commit is contained in:
Fernando Schauenburg 2023-08-12 00:52:48 +02:00
parent ecadf89867
commit 146ccc2d8f

View file

@ -24,17 +24,15 @@ local config = function()
end end
end end
local extend = function(component, overrides) local colored_when_focused = function(component)
local new = require(component):extend() local new = require(component):extend()
for k, v in pairs(overrides) do new[k] = v end function new:update_status(is_focused)
self.options.colored = is_focused
return self.super.update_status(self, is_focused)
end
return new return new
end end
local udpate_with_color = function(self, is_focused)
self.options.colored = is_focused
return self.super.update_status(self, is_focused)
end
local window_is_at_least = function(width) local window_is_at_least = function(width)
return function() return vim.fn.winwidth(0) > width end return function() return vim.fn.winwidth(0) > width end
end end
@ -51,7 +49,7 @@ local config = function()
end end
}, },
diff = extend('lualine.components.diff', { update_status = udpate_with_color }), diff = colored_when_focused('lualine.components.diff'),
mode = { get_mode_icon() }, mode = { get_mode_icon() },
@ -100,7 +98,7 @@ local config = function()
}, },
filetype = { filetype = {
extend('lualine.components.filetype', { update_status = udpate_with_color }), colored_when_focused('lualine.components.filetype'),
cond = window_is_medium, cond = window_is_medium,
}, },