diff --git a/config/nvim/lua/fschauen/plugins/lualine.lua b/config/nvim/lua/fschauen/plugins/lualine.lua index 5c1c6e2..9a05cd7 100644 --- a/config/nvim/lua/fschauen/plugins/lualine.lua +++ b/config/nvim/lua/fschauen/plugins/lualine.lua @@ -38,17 +38,17 @@ local config = function() ['t'] = ' Term ', } - local update_status = function(self, is_focused) + local extend = function(component, overrides) + local new = require(component):extend() + for k, v in pairs(overrides) do new[k] = v end + return new + end + + local udpate_with_color = function(self, is_focused) self.options.colored = is_focused return self.super.update_status(self, is_focused) end - local diff = require'lualine.components.diff':extend() - diff.update_status = update_status - - local filetype = require'lualine.components.filetype':extend() - filetype.update_status = update_status - local window_is_at_least = function(width) return function() return vim.fn.winwidth(0) > width end end @@ -67,6 +67,8 @@ local config = function() end }, + diff = extend('lualine.components.diff', { update_status = udpate_with_color }), + mode = { function() local code = vim.api.nvim_get_mode().mode @@ -125,7 +127,7 @@ local config = function() }, filetype = { - filetype, + extend('lualine.components.filetype', { update_status = udpate_with_color }), cond = window_is_medium, }, @@ -138,7 +140,7 @@ local config = function() local inactive_sections = { lualine_a = {}, lualine_b = { my.visual_multi, my.branch }, - lualine_c = { diff, my.filename, my.status }, + lualine_c = { my.diff, my.filename, my.status }, lualine_x = { my.filetype }, lualine_y = { my.fileformat, 'progress' }, lualine_z = { 'location' },