diff --git a/lua/deadcolumn/autocmds.lua b/lua/deadcolumn/autocmds.lua index 2045e08..a906f90 100644 --- a/lua/deadcolumn/autocmds.lua +++ b/lua/deadcolumn/autocmds.lua @@ -78,7 +78,9 @@ local function redraw_colorcolumn() -- Only set vim.wo.cc when necessary, -- prevent cursor position from being reset. if vim.wo.cc ~= '' then + local winview = vim.fn.winsaveview() vim.wo.cc = '' + vim.fn.winrestview(winview) end return end @@ -92,13 +94,17 @@ local function redraw_colorcolumn() len < thresh or not vim.tbl_contains(configs.user.modes, vim.fn.mode()) then if vim.wo.cc ~= '' then + local winview = vim.fn.winsaveview() vim.wo.cc = '' + vim.fn.winrestview(winview) end return end if vim.wo.cc ~= vim.w.cc then + local winview = vim.fn.winsaveview() vim.wo.cc = vim.w.cc + vim.fn.winrestview(winview) end -- Show blended color when len < cc @@ -158,7 +164,9 @@ local function make_autocmds() group = 'AutoColorColumn', callback = function() store.previous_cc = vim.w.cc + local winview = vim.fn.winsaveview() vim.wo.cc = '' + vim.fn.winrestview(winview) end, }) @@ -221,7 +229,9 @@ local function make_autocmds() vim.api.nvim_create_autocmd({ 'BufLeave' }, { group = 'AutoColorColumn', callback = function() + local winview = vim.fn.winsaveview() vim.wo.cc = '' + vim.fn.winrestview(winview) end, }) vim.api.nvim_create_autocmd({ 'BufWinEnter' }, { @@ -230,7 +240,9 @@ local function make_autocmds() vim.b.cc = str_fallback(vim.wo.cc, vim.b.cc, vim.g.cc) vim.w.cc = str_fallback(vim.wo.cc, vim.b.cc, vim.g.cc) if not vim.tbl_contains(configs.user.modes, vim.fn.mode()) then + local winview = vim.fn.winsaveview() vim.wo.cc = '' + vim.fn.winrestview(winview) end end, }) @@ -257,7 +269,9 @@ local function make_autocmds() vim.b.cc = vim.wo.cc end vim.go.cc = '' + local winview = vim.fn.winsaveview() vim.wo.cc = '' + vim.fn.winrestview(winview) end, })