lualine.nvim/BREAKING_CHANGES.md

3.3 KiB

This file contains breaking changes in chronological order. It's possible breaking change has been made several times to the same thing. In that case the one nearest the bottom indicates current state.

Color option unification

color_added, color_modified, color_removed options in diff & color_error, color_warning, color_info, color_hint too only fg color that was different from other color options that took fg ,bg & gui changes were made to make them similar.

So instead of

color_added = '#rrbbgg',

You'll have

color_added = { fg = '#rrbbgg' }

for the same effect.

Theme rename

Some themes were renamed so they are same as their g:color_name

  • oceanicnext -> OceanicNext
  • papercolor -> PaperColor
  • tomorrow -> Tomorrow
  • gruvbox_material -> gruvbox-material
  • modus_vivendi -> modus-vivendi

function components now receive some default parameters

Now function components receive the same args as update_status. So the function signature is now:

function(self, is_active)

self is a table that represents the component in lualine & is_active is a boolean value that indicates whether the function is being evaluated for an active statusline or an inactive statusline. This means function components can be more versatile. But it also means you can't use functions that take optional arguments directly as function component. lsp_status is such a case that takes an optional winid in its first argument. You can wrap it with a function so the self & is_active don't get passed to lsp_status

lualine_c = { function() return require'lsp-status'.status() end}

Options simplification

See #24 for details

  • upper & lower removed use string.upper/lower in fmt option.
  • separators are specified by left & right instead of position instead of {'>', '<'} you'll use {left= '>', right='<'}.
  • left_padding & right_padding removed. You can specify left or right padding with a padding option like padding = { left = 5 }
  • Option rename:
  • condition -> cond
  • format -> fmt
  • disable_text -> icon_only
  • color_added, color_modified, color_removed are now available as added, modified, removed in diff_color table option
  • color_error, color_warning, color_info, color_hint are now available as error, warn, info, hint in diagnostics_color table option

Component class refactor

Applicable only ones responsible for custom components

  • Now call extend method on super class to create new type of component instead of calling new with empty args.
  • Don't overrite new method for initialization. Overrite init instead.
  • rename Component._parent -> Component.super
  • Call methods from super class directly on classes super not through objects super or self.super So basically if you had something like
local my_comp = require'lualine.component':new()
function mycomp:new(options, child)
  local obj = self._parent:new(options, child or my_comp)
  obj.x = 1
  obj.y = 2
  return obj
end

change it to

local my_comp = require('lualine.component'):extend()

function my_comp:init(options)
  -- Notice carefully it's not self.super.init nor my_comp.super:init
  my_comp.super.init(self, options)
  self.x = 1
  self.y = 2
end