Skip to content

Commit

Permalink
Revert "fix: restore user's UI options when switching tabs (#455)" (#457
Browse files Browse the repository at this point in the history
)

This reverts commit 6da86d8.
  • Loading branch information
glepnir authored May 31, 2024
1 parent 2457ead commit b5a2a42
Showing 1 changed file with 22 additions and 32 deletions.
54 changes: 22 additions & 32 deletions lua/dashboard/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -88,34 +88,46 @@ end

function db:new_file()
vim.cmd('enew')
end
if self.user_laststatus_value then
vim.opt_local.laststatus = self.user_laststatus_value
self.user_laststatus_value = nil
end

function db:save_user_options()
self.user_cursor_line = vim.opt.cursorline:get()
self.user_laststatus_value = vim.opt.laststatus:get()
self.user_tabline_value = vim.opt.showtabline:get()
if self.user_tabline_value then
vim.opt_local.showtabline = self.user_showtabline_value
self.user_showtabline_value = nil
end
end

function db:set_ui_options(opts)
-- cache the user options value restore after leave the dahsboard buffer
-- or use DashboardNewFile command
function db:cache_ui_options(opts)
if opts.hide.statusline then
---@diagnostic disable-next-line: param-type-mismatch
self.user_laststatus_value = vim.opt.laststatus:get()
vim.opt.laststatus = 0
end
if opts.hide.tabline then
---@diagnostic disable-next-line: param-type-mismatch
self.user_tabline_value = vim.opt.showtabline:get()
vim.opt.showtabline = 0
end
end

function db:restore_user_options()
function db:restore_options()
if self.user_cursor_line then
vim.opt.cursorline = self.user_cursor_line
self.user_cursor_line = nil
end

if self.user_laststatus_value then
vim.opt.laststatus = tonumber(self.user_laststatus_value)
self.user_laststatus_value = nil
end

if self.user_tabline_value then
vim.opt.showtabline = tonumber(self.user_tabline_value)
self.user_tabline_value = nil
end
end

Expand Down Expand Up @@ -198,8 +210,7 @@ function db:load_theme(opts)
end

require('dashboard.theme.' .. opts.theme)(config)

self:set_ui_options(opts)
self:cache_ui_options(opts)

api.nvim_create_autocmd('VimResized', {
buffer = self.bufnr,
Expand All @@ -209,38 +220,18 @@ function db:load_theme(opts)
end,
})

api.nvim_create_autocmd('BufEnter', {
buffer = self.bufnr,
callback = function(opt)
self:set_ui_options(opts)
end,
})

api.nvim_create_autocmd('BufEnter', {
callback = function(opt)
local bufs = api.nvim_list_bufs()

bufs = vim.tbl_filter(function(k)
return vim.bo[k].filetype == 'dashboard'
end, bufs)

-- restore the user's UI settings is no dashboard buffers are visible
local wins = api.nvim_tabpage_list_wins(0)
wins = vim.tbl_filter(function(k)
return vim.tbl_contains(bufs, api.nvim_win_get_buf(k))
end, wins)

if #wins == 0 then
self:restore_user_options()
end

-- clean up if there are no dashboard buffers at all
if #bufs == 0 then
self:cache_opts()
self:restore_options()
clean_ctx()
pcall(api.nvim_del_autocmd, opt.id)
end

end,
desc = '[Dashboard] clean dashboard data reduce memory',
})
Expand Down Expand Up @@ -268,8 +259,7 @@ function db:instance()
self.winid = api.nvim_get_current_win()
api.nvim_win_set_buf(self.winid, self.bufnr)

self:save_user_options()

self.user_cursor_line = vim.opt.cursorline:get()
buf_local()
if self.opts then
self:load_theme(self.opts)
Expand Down

0 comments on commit b5a2a42

Please sign in to comment.