chore: autogen (vimdocs+formating)
This commit is contained in:
parent
53aa3d82d9
commit
d7386bbab3
|
@ -105,9 +105,17 @@ For more information, check out `:help lua-heredoc`.
|
|||
theme = 'auto',
|
||||
component_separators = { left = '', right = ''},
|
||||
section_separators = { left = '', right = ''},
|
||||
disabled_filetypes = {},
|
||||
disabled_filetypes = {
|
||||
statusline = {},
|
||||
winbar = {},
|
||||
},
|
||||
always_divide_middle = true,
|
||||
globalstatus = false,
|
||||
refresh = {
|
||||
statusline = 1000,
|
||||
tabline = 1000,
|
||||
winbar = 1000,
|
||||
}
|
||||
},
|
||||
sections = {
|
||||
lualine_a = {'mode'},
|
||||
|
@ -126,6 +134,8 @@ For more information, check out `:help lua-heredoc`.
|
|||
lualine_z = {}
|
||||
},
|
||||
tabline = {},
|
||||
winbar = {},
|
||||
inactive_winbar = {},
|
||||
extensions = {}
|
||||
}
|
||||
<
|
||||
|
@ -346,13 +356,28 @@ in component.
|
|||
theme = 'auto', -- lualine theme
|
||||
component_separators = { left = '', right = '' },
|
||||
section_separators = { left = '', right = '' },
|
||||
disabled_filetypes = {}, -- Filetypes to disable lualine for.
|
||||
disabled_filetypes = { -- Filetypes to disable lualine for.
|
||||
statusline = {}, -- only ignores the ft for statusline.
|
||||
winbar = {}, -- only ignores the ft for winbar.
|
||||
},
|
||||
|
||||
always_divide_middle = true, -- When set to true, left sections i.e. 'a','b' and 'c'
|
||||
-- can't take over the entire statusline even
|
||||
-- if neither of 'x', 'y' or 'z' are present.
|
||||
|
||||
globalstatus = false, -- enable global statusline (have a single statusline
|
||||
-- at bottom of neovim instead of one for every window).
|
||||
-- This feature is only available in neovim 0.7 and higher.
|
||||
|
||||
refresh = { -- sets how often lualine should refreash it's contents (in ms)
|
||||
statusline = 1000, -- The refresh option sets minimum time that lualine tries
|
||||
tabline = 1000, -- to maintain between refresh. It's not guarantied if situation
|
||||
winbar = 1000 -- arises that lualine needs to refresh itself before this time
|
||||
-- it'll do it.
|
||||
|
||||
-- Also you can force lualine's refresh by calling refresh function
|
||||
-- like require('lualine').refresh()
|
||||
}
|
||||
}
|
||||
<
|
||||
|
||||
|
@ -718,6 +743,38 @@ more traditional tabline/bufferline.
|
|||
<
|
||||
|
||||
|
||||
WINBAR ~
|
||||
|
||||
From neovim-0.8 you can customize your winbar with lualine. Winbar
|
||||
configuration is similar to statusline.
|
||||
|
||||
>
|
||||
winbar = {
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_c = {'filename'},
|
||||
lualine_x = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {}
|
||||
}
|
||||
|
||||
inactive_winbar = {
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_c = {'filename'},
|
||||
lualine_x = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {}
|
||||
}
|
||||
<
|
||||
|
||||
|
||||
Just like statusline you can separately specify winbar for active and inactive
|
||||
windows. Any lualine component can be placed in winbar. All kinds of custom
|
||||
components supported in statusline are also suported for winbar too. In general
|
||||
You can treat winbar as another lualine statusline that just appears on top of
|
||||
windows instead of at bottom.
|
||||
|
||||
*lualine-Buffers*
|
||||
|
||||
Buffers Shows currently open buffers. Like
|
||||
|
|
170
lua/lualine.lua
170
lua/lualine.lua
|
@ -10,7 +10,7 @@ local modules = lualine_require.lazy_require {
|
|||
utils = 'lualine.utils.utils',
|
||||
utils_notices = 'lualine.utils.notices',
|
||||
config_module = 'lualine.config',
|
||||
nvim_opts = 'lualine.utils.nvim_opts'
|
||||
nvim_opts = 'lualine.utils.nvim_opts',
|
||||
}
|
||||
local config -- Stores currently applied config
|
||||
local timers = {
|
||||
|
@ -22,7 +22,7 @@ local timers = {
|
|||
-- The events on which lualine redraws itself
|
||||
local default_refresh_events = 'WinEnter,BufEnter,SessionLoadPost,FileChangedShellPost,VimResized'
|
||||
if vim.fn.has('nvim-0.7') == 1 then -- utilize ModeChanged event introduced in 0.7
|
||||
default_refresh_events = default_refresh_events..',ModeChanged'
|
||||
default_refresh_events = default_refresh_events .. ',ModeChanged'
|
||||
end
|
||||
-- Helper for apply_transitional_separators()
|
||||
--- finds first applied highlight group after str_checked in status
|
||||
|
@ -272,8 +272,12 @@ local function status_dispatch(sec_name)
|
|||
local retval
|
||||
local current_ft = vim.bo.filetype
|
||||
local is_focused = focused ~= nil and focused or modules.utils.is_focused()
|
||||
if vim.tbl_contains(config.options.disabled_filetypes[(sec_name == 'sections' and 'statusline' or sec_name)],
|
||||
current_ft) then
|
||||
if
|
||||
vim.tbl_contains(
|
||||
config.options.disabled_filetypes[(sec_name == 'sections' and 'statusline' or sec_name)],
|
||||
current_ft
|
||||
)
|
||||
then
|
||||
-- disable on specific filetypes
|
||||
return ''
|
||||
end
|
||||
|
@ -281,7 +285,7 @@ local function status_dispatch(sec_name)
|
|||
if extension_sections ~= nil then
|
||||
retval = statusline(extension_sections, is_focused, sec_name == 'winbar')
|
||||
else
|
||||
retval = statusline(config[(is_focused and '' or 'inactive_')..sec_name], is_focused, sec_name == 'winbar')
|
||||
retval = statusline(config[(is_focused and '' or 'inactive_') .. sec_name], is_focused, sec_name == 'winbar')
|
||||
end
|
||||
return retval
|
||||
end
|
||||
|
@ -303,22 +307,23 @@ end
|
|||
---@param opts LualineRefreshOpts
|
||||
local function refresh(opts)
|
||||
if opts == nil then
|
||||
opts = {kind = 'tabpage', place = {'statusline', 'winbar', 'tabline'}, trigger='unknown'}
|
||||
opts = { kind = 'tabpage', place = { 'statusline', 'winbar', 'tabline' }, trigger = 'unknown' }
|
||||
end
|
||||
|
||||
-- workaround for https://github.com/neovim/neovim/issues/19464
|
||||
if (opts.trigger == 'autocmd'
|
||||
and vim.api.nvim_win_get_height(vim.api.nvim_get_current_win()) <= 1
|
||||
and vim.tbl_contains(opts.place, 'winbar')
|
||||
) then
|
||||
local id
|
||||
for index, value in ipairs(opts.place) do
|
||||
if value == 'winbar' then
|
||||
id = index
|
||||
break
|
||||
end
|
||||
end
|
||||
table.remove(opts.place, id)
|
||||
if
|
||||
opts.trigger == 'autocmd'
|
||||
and vim.api.nvim_win_get_height(vim.api.nvim_get_current_win()) <= 1
|
||||
and vim.tbl_contains(opts.place, 'winbar')
|
||||
then
|
||||
local id
|
||||
for index, value in ipairs(opts.place) do
|
||||
if value == 'winbar' then
|
||||
id = index
|
||||
break
|
||||
end
|
||||
end
|
||||
table.remove(opts.place, id)
|
||||
end
|
||||
|
||||
local wins = {}
|
||||
|
@ -326,47 +331,40 @@ local function refresh(opts)
|
|||
vim.g.actual_curwin = vim.api.nvim_get_current_win()
|
||||
-- gather which windows needs update
|
||||
if opts.kind == 'all' then
|
||||
if vim.tbl_contains(opts.place, 'statusline')
|
||||
or vim.tbl_contains(opts.place, 'winbar') then
|
||||
wins = vim.tbl_filter(function (win)
|
||||
if vim.tbl_contains(opts.place, 'statusline') or vim.tbl_contains(opts.place, 'winbar') then
|
||||
wins = vim.tbl_filter(function(win)
|
||||
return vim.fn.win_gettype(win) ~= 'popup'
|
||||
end, vim.api.nvim_list_wins())
|
||||
end
|
||||
elseif opts.kind == 'tabpage' then
|
||||
if vim.tbl_contains(opts.place, 'statusline')
|
||||
or vim.tbl_contains(opts.place, 'winbar') then
|
||||
wins = vim.tbl_filter(function (win)
|
||||
if vim.tbl_contains(opts.place, 'statusline') or vim.tbl_contains(opts.place, 'winbar') then
|
||||
wins = vim.tbl_filter(function(win)
|
||||
return vim.fn.win_gettype(win) ~= 'popup'
|
||||
end, vim.api.nvim_tabpage_list_wins(0))
|
||||
end
|
||||
elseif opts.kind == 'window' then
|
||||
wins = {vim.api.nvim_get_current_win()}
|
||||
wins = { vim.api.nvim_get_current_win() }
|
||||
end
|
||||
|
||||
-- update them
|
||||
if vim.tbl_contains(opts.place, 'statusline') then
|
||||
for _, win in ipairs(wins) do
|
||||
modules.nvim_opts.set('statusline',
|
||||
vim.api.nvim_win_call(win, M.statusline), {window=win})
|
||||
modules.nvim_opts.set('statusline', vim.api.nvim_win_call(win, M.statusline), { window = win })
|
||||
end
|
||||
end
|
||||
if vim.tbl_contains(opts.place, 'winbar') then
|
||||
for _, win in ipairs(wins) do
|
||||
if vim.api.nvim_win_get_height(win) > 1 then
|
||||
modules.nvim_opts.set('winbar',
|
||||
vim.api.nvim_win_call(win, M.winbar), {window=win})
|
||||
modules.nvim_opts.set('winbar', vim.api.nvim_win_call(win, M.winbar), { window = win })
|
||||
end
|
||||
end
|
||||
end
|
||||
if vim.tbl_contains(opts.place, 'tabline') then
|
||||
modules.nvim_opts.set('tabline',
|
||||
vim.api.nvim_win_call(vim.api.nvim_get_current_win(), tabline),
|
||||
{global=true})
|
||||
modules.nvim_opts.set('tabline', vim.api.nvim_win_call(vim.api.nvim_get_current_win(), tabline), { global = true })
|
||||
end
|
||||
|
||||
-- call redraw
|
||||
if vim.tbl_contains(opts.place, 'statusline')
|
||||
or vim.tbl_contains(opts.place, 'winbar') then
|
||||
if vim.tbl_contains(opts.place, 'statusline') or vim.tbl_contains(opts.place, 'winbar') then
|
||||
vim.cmd('redrawstatus')
|
||||
elseif vim.tbl_contains(opts.place, 'tabline') then
|
||||
vim.cmd('redrawtabline')
|
||||
|
@ -380,17 +378,24 @@ local function set_tabline()
|
|||
vim.loop.timer_stop(timers.tal_timer)
|
||||
vim.cmd([[augroup lualine_tal_refresh | exe "autocmd!" | augroup END]])
|
||||
if next(config.tabline) ~= nil then
|
||||
vim.loop.timer_start(timers.tal_timer, 0, config.options.refresh.tabline,
|
||||
modules.utils.timer_call(timers.stl_timer, 'lualine_tal_refresh', function ()
|
||||
refresh({kind='tabpage', place={'tabline'}, trigger='timer'})
|
||||
end, 3, "lualine: Failed to refresh tabline"))
|
||||
modules.utils.define_autocmd(default_refresh_events,
|
||||
'*', "call v:lua.require'lualine'.refresh({'kind': 'tabpage', 'place': ['tabline'], 'trigger': 'autocmd'})",
|
||||
'lualine_tal_refresh')
|
||||
modules.nvim_opts.set('showtabline', 2, {global=true})
|
||||
vim.loop.timer_start(
|
||||
timers.tal_timer,
|
||||
0,
|
||||
config.options.refresh.tabline,
|
||||
modules.utils.timer_call(timers.stl_timer, 'lualine_tal_refresh', function()
|
||||
refresh { kind = 'tabpage', place = { 'tabline' }, trigger = 'timer' }
|
||||
end, 3, 'lualine: Failed to refresh tabline')
|
||||
)
|
||||
modules.utils.define_autocmd(
|
||||
default_refresh_events,
|
||||
'*',
|
||||
"call v:lua.require'lualine'.refresh({'kind': 'tabpage', 'place': ['tabline'], 'trigger': 'autocmd'})",
|
||||
'lualine_tal_refresh'
|
||||
)
|
||||
modules.nvim_opts.set('showtabline', 2, { global = true })
|
||||
else
|
||||
modules.nvim_opts.restore('tabline', {global=true})
|
||||
modules.nvim_opts.restore('showtabline', {global=true})
|
||||
modules.nvim_opts.restore('tabline', { global = true })
|
||||
modules.nvim_opts.restore('showtabline', { global = true })
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -401,30 +406,44 @@ local function set_statusline()
|
|||
vim.cmd([[augroup lualine_stl_refresh | exe "autocmd!" | augroup END]])
|
||||
if next(config.sections) ~= nil or next(config.inactive_sections) ~= nil then
|
||||
if config.options.globalstatus then
|
||||
modules.nvim_opts.set('laststatus', 3, {global=true})
|
||||
vim.loop.timer_start(timers.stl_timer, 0, config.options.refresh.statusline,
|
||||
modules.utils.timer_call(timers.stl_timer, 'lualine_stl_refresh', function ()
|
||||
refresh({kind='window', place={'statusline'}, trigger='timer'})
|
||||
end, 3, "lualine: Failed to refresh statusline"))
|
||||
modules.utils.define_autocmd(default_refresh_events,
|
||||
'*', "call v:lua.require'lualine'.refresh({'kind': 'window', 'place': ['statusline'], 'trigger': 'autocmd'})",
|
||||
'lualine_stl_refresh')
|
||||
modules.nvim_opts.set('laststatus', 3, { global = true })
|
||||
vim.loop.timer_start(
|
||||
timers.stl_timer,
|
||||
0,
|
||||
config.options.refresh.statusline,
|
||||
modules.utils.timer_call(timers.stl_timer, 'lualine_stl_refresh', function()
|
||||
refresh { kind = 'window', place = { 'statusline' }, trigger = 'timer' }
|
||||
end, 3, 'lualine: Failed to refresh statusline')
|
||||
)
|
||||
modules.utils.define_autocmd(
|
||||
default_refresh_events,
|
||||
'*',
|
||||
"call v:lua.require'lualine'.refresh({'kind': 'window', 'place': ['statusline'], 'trigger': 'autocmd'})",
|
||||
'lualine_stl_refresh'
|
||||
)
|
||||
else
|
||||
modules.nvim_opts.set('laststatus', 2, {global=true})
|
||||
vim.loop.timer_start(timers.stl_timer, 0, config.options.refresh.statusline,
|
||||
modules.utils.timer_call(timers.stl_timer, 'lualine_stl_refresh', function ()
|
||||
refresh({kind='tabpage', place={'statusline'}, trigger='timer'})
|
||||
end, 3, "lualine: Failed to refresh statusline"))
|
||||
modules.utils.define_autocmd(default_refresh_events,
|
||||
'*', "call v:lua.require'lualine'.refresh({'kind': 'tabpage', 'place': ['statusline'], 'trigger': 'autocmd'})",
|
||||
'lualine_stl_refresh')
|
||||
modules.nvim_opts.set('laststatus', 2, { global = true })
|
||||
vim.loop.timer_start(
|
||||
timers.stl_timer,
|
||||
0,
|
||||
config.options.refresh.statusline,
|
||||
modules.utils.timer_call(timers.stl_timer, 'lualine_stl_refresh', function()
|
||||
refresh { kind = 'tabpage', place = { 'statusline' }, trigger = 'timer' }
|
||||
end, 3, 'lualine: Failed to refresh statusline')
|
||||
)
|
||||
modules.utils.define_autocmd(
|
||||
default_refresh_events,
|
||||
'*',
|
||||
"call v:lua.require'lualine'.refresh({'kind': 'tabpage', 'place': ['statusline'], 'trigger': 'autocmd'})",
|
||||
'lualine_stl_refresh'
|
||||
)
|
||||
end
|
||||
else
|
||||
modules.nvim_opts.restore('statusline', {global=true})
|
||||
modules.nvim_opts.restore('statusline', { global = true })
|
||||
for _, win in ipairs(vim.api.nvim_list_wins()) do
|
||||
modules.nvim_opts.restore('statusline', {window=win})
|
||||
modules.nvim_opts.restore('statusline', { window = win })
|
||||
end
|
||||
modules.nvim_opts.restore('laststatus', {global=true})
|
||||
modules.nvim_opts.restore('laststatus', { global = true })
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -433,17 +452,24 @@ local function set_winbar()
|
|||
vim.loop.timer_stop(timers.wb_timer)
|
||||
vim.cmd([[augroup lualine_wb_refresh | exe "autocmd!" | augroup END]])
|
||||
if next(config.winbar) ~= nil or next(config.inactive_winbar) ~= nil then
|
||||
vim.loop.timer_start(timers.stl_timer, 0, config.options.refresh.winbar,
|
||||
modules.utils.timer_call(timers.stl_timer, 'lualine_wb_refresh', function ()
|
||||
refresh({kind='tabpage', place={'winbar'}, trigger='timer'})
|
||||
end, 3, "lualine: Failed to refresh winbar"))
|
||||
modules.utils.define_autocmd(default_refresh_events,
|
||||
'*', "call v:lua.require'lualine'.refresh({'kind': 'tabpage', 'place': ['winbar'], 'trigger': 'autocmd'})",
|
||||
'lualine_wb_refresh')
|
||||
vim.loop.timer_start(
|
||||
timers.stl_timer,
|
||||
0,
|
||||
config.options.refresh.winbar,
|
||||
modules.utils.timer_call(timers.stl_timer, 'lualine_wb_refresh', function()
|
||||
refresh { kind = 'tabpage', place = { 'winbar' }, trigger = 'timer' }
|
||||
end, 3, 'lualine: Failed to refresh winbar')
|
||||
)
|
||||
modules.utils.define_autocmd(
|
||||
default_refresh_events,
|
||||
'*',
|
||||
"call v:lua.require'lualine'.refresh({'kind': 'tabpage', 'place': ['winbar'], 'trigger': 'autocmd'})",
|
||||
'lualine_wb_refresh'
|
||||
)
|
||||
elseif vim.fn.has('nvim-0.8') == 1 then
|
||||
modules.nvim_opts.restore('winbar', {global=true})
|
||||
modules.nvim_opts.restore('winbar', { global = true })
|
||||
for _, win in ipairs(vim.api.nvim_list_wins()) do
|
||||
modules.nvim_opts.restore('winbar', {window=win})
|
||||
modules.nvim_opts.restore('winbar', { window = win })
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -14,7 +14,7 @@ local config = {
|
|||
section_separators = { left = '', right = '' },
|
||||
disabled_filetypes = {
|
||||
statusline = {},
|
||||
winbar = {}
|
||||
winbar = {},
|
||||
},
|
||||
always_divide_middle = true,
|
||||
globalstatus = vim.go.laststatus == 3,
|
||||
|
@ -22,7 +22,7 @@ local config = {
|
|||
statusline = 1000,
|
||||
tabline = 1000,
|
||||
winbar = 1000,
|
||||
}
|
||||
},
|
||||
},
|
||||
sections = {
|
||||
lualine_a = { 'mode' },
|
||||
|
@ -62,7 +62,9 @@ end
|
|||
---@param disabled_filetypes table
|
||||
---@return table
|
||||
local function fix_disabled_filetypes(disabled_filetypes)
|
||||
if disabled_filetypes == nil then return end
|
||||
if disabled_filetypes == nil then
|
||||
return
|
||||
end
|
||||
if disabled_filetypes.statusline == nil then
|
||||
disabled_filetypes.statusline = {}
|
||||
end
|
||||
|
@ -102,9 +104,7 @@ local function apply_configuration(config_table)
|
|||
config_table.options.globalstatus = false
|
||||
end
|
||||
if vim.fn.has('nvim-0.8') == 0 and (next(config_table.winbar or {}) or next(config_table.inactive_winbar or {})) then
|
||||
modules.utils_notices.add_notice(
|
||||
'### winbar\nSorry `winbar can only be used in neovim 0.8 or higher.\n'
|
||||
)
|
||||
modules.utils_notices.add_notice('### winbar\nSorry `winbar can only be used in neovim 0.8 or higher.\n')
|
||||
config_table.winbar = {}
|
||||
config_table.inactive_winbar = {}
|
||||
end
|
||||
|
|
|
@ -154,7 +154,7 @@ end
|
|||
---loads all the configs (active, inactive, tabline)
|
||||
---@param config table user config
|
||||
local function load_components(config)
|
||||
local sec_names = {'sections', 'inactive_sections', 'tabline', 'winbar', 'inactive_winbar'}
|
||||
local sec_names = { 'sections', 'inactive_sections', 'tabline', 'winbar', 'inactive_winbar' }
|
||||
for _, section in ipairs(sec_names) do
|
||||
load_sections(config[section], config.options)
|
||||
end
|
||||
|
@ -164,7 +164,7 @@ end
|
|||
---@param config table user config
|
||||
local function load_extensions(config)
|
||||
local loaded_extensions = {}
|
||||
local sec_names = {'sections', 'inactive_sections', 'winbar', 'inactive_winbar'}
|
||||
local sec_names = { 'sections', 'inactive_sections', 'winbar', 'inactive_winbar' }
|
||||
for _, extension in pairs(config.extensions) do
|
||||
if type(extension) == 'string' then
|
||||
local ok
|
||||
|
|
|
@ -24,7 +24,7 @@ local M = {}
|
|||
---@field buffer table<number, LualineNvimOptCacheOpt[]>
|
||||
---@field window table<number, LualineNvimOptCacheOpt[]>
|
||||
---@type LualineNvimOptCache
|
||||
local options = {global={}, buffer={}, window={}}
|
||||
local options = { global = {}, buffer = {}, window = {} }
|
||||
|
||||
-- helper function for M.set
|
||||
local function set_opt(name, val, getter_fn, setter_fn, cache_tbl)
|
||||
|
@ -32,9 +32,15 @@ local function set_opt(name, val, getter_fn, setter_fn, cache_tbl)
|
|||
-- the option wasn't set instead threw error.
|
||||
-- So we need pcall (probably just for test)
|
||||
local ok, cur = pcall(getter_fn, name)
|
||||
if not ok then cur = nil end
|
||||
if cur == val then return end
|
||||
if cache_tbl[name] == nil then cache_tbl[name] = {} end
|
||||
if not ok then
|
||||
cur = nil
|
||||
end
|
||||
if cur == val then
|
||||
return
|
||||
end
|
||||
if cache_tbl[name] == nil then
|
||||
cache_tbl[name] = {}
|
||||
end
|
||||
if cache_tbl[name].set ~= cur then
|
||||
cache_tbl[name].prev = cur
|
||||
end
|
||||
|
@ -54,18 +60,18 @@ function M.set(name, val, opts)
|
|||
if options.buffer[opts.buffer] == nil then
|
||||
options.buffer[opts.buffer] = {}
|
||||
end
|
||||
set_opt(name, val, function (nm)
|
||||
set_opt(name, val, function(nm)
|
||||
return vim.api.nvim_buf_get_option(opts.buffer, nm)
|
||||
end, function (nm, vl)
|
||||
end, function(nm, vl)
|
||||
vim.api.nvim_buf_set_option(opts.buffer, nm, vl)
|
||||
end, options.buffer[opts.buffer])
|
||||
elseif opts.window then
|
||||
if options.window[opts.window] == nil then
|
||||
options.window[opts.window] = {}
|
||||
end
|
||||
set_opt(name, val, function (nm)
|
||||
set_opt(name, val, function(nm)
|
||||
return vim.api.nvim_win_get_option(opts.window, nm)
|
||||
end, function (nm, vl)
|
||||
end, function(nm, vl)
|
||||
vim.api.nvim_win_set_option(opts.window, nm, vl)
|
||||
end, options.window[opts.window])
|
||||
end
|
||||
|
@ -80,15 +86,19 @@ function M.restore(name, opts)
|
|||
vim.api.nvim_set_option(name, options.global[name].prev)
|
||||
end
|
||||
elseif opts.buffer then
|
||||
if options.buffer[opts.buffer] ~= nil
|
||||
if
|
||||
options.buffer[opts.buffer] ~= nil
|
||||
and options.buffer[opts.buffer][name] ~= nil
|
||||
and options.buffer[opts.buffer][name].prev ~= nil then
|
||||
and options.buffer[opts.buffer][name].prev ~= nil
|
||||
then
|
||||
vim.api.nvim_buf_set_option(opts.buffer, name, options.buffer[opts.buffer][name].prev)
|
||||
end
|
||||
elseif opts.window then
|
||||
if options.window[opts.window] ~= nil
|
||||
if
|
||||
options.window[opts.window] ~= nil
|
||||
and options.window[opts.window][name] ~= nil
|
||||
and options.window[opts.window][name].prev ~= nil then
|
||||
and options.window[opts.window][name].prev ~= nil
|
||||
then
|
||||
vim.api.nvim_win_set_option(opts.window, name, options.window[opts.window][name].prev)
|
||||
end
|
||||
end
|
||||
|
@ -103,24 +113,27 @@ function M.get_cache(name, opts)
|
|||
return options.global[name].prev
|
||||
end
|
||||
elseif opts.buffer then
|
||||
if options.buffer[opts.buffer] ~= nil
|
||||
if
|
||||
options.buffer[opts.buffer] ~= nil
|
||||
and options.buffer[opts.buffer][name] ~= nil
|
||||
and options.buffer[opts.buffer][name].prev ~= nil then
|
||||
and options.buffer[opts.buffer][name].prev ~= nil
|
||||
then
|
||||
return options.buffer[opts.buffer][name].prev
|
||||
end
|
||||
elseif opts.window then
|
||||
if options.window[opts.window] ~= nil
|
||||
if
|
||||
options.window[opts.window] ~= nil
|
||||
and options.window[opts.window][name] ~= nil
|
||||
and options.window[opts.window][name].prev ~= nil then
|
||||
and options.window[opts.window][name].prev ~= nil
|
||||
then
|
||||
return options.window[opts.window][name].prev
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
-- resets cache for options
|
||||
function M.reset_cache()
|
||||
options = {global={}, buffer={}, window={}}
|
||||
options = { global = {}, buffer = {}, window = {} }
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
|
@ -201,7 +201,7 @@ function M.timer_call(timer, augroup, fn, max_err, err_msg)
|
|||
if augroup then
|
||||
vim.cmd(string.format([[augroup %s | exe "autocmd!" | augroup END]], augroup))
|
||||
end
|
||||
error(err_msg..':\n'..tostring(ret))
|
||||
error(err_msg .. ':\n' .. tostring(ret))
|
||||
end
|
||||
local ok
|
||||
ok, ret = pcall(fn, ...)
|
||||
|
|
Loading…
Reference in New Issue