mirror of
https://github.com/folke/snacks.nvim
synced 2025-08-04 18:58:12 +00:00
fix(scroll): don't animate for new changedtick. Fixes #384
This commit is contained in:
parent
7dcdcb0b6a
commit
ac8b3cdfa0
1 changed files with 4 additions and 1 deletions
|
@ -17,6 +17,7 @@ M.meta = {
|
|||
---@field target vim.fn.winsaveview.ret
|
||||
---@field scrolloff number
|
||||
---@field virtualedit? string
|
||||
---@field changedtick number
|
||||
|
||||
---@class snacks.scroll.Config
|
||||
---@field animate snacks.animate.Config
|
||||
|
@ -62,14 +63,16 @@ local function get_state(win)
|
|||
if not Snacks.animate.enabled({ buf = buf, name = "scroll" }) then
|
||||
return
|
||||
end
|
||||
local changedtick = vim.api.nvim_buf_get_changedtick(buf)
|
||||
local view = vim.api.nvim_win_call(win, vim.fn.winsaveview) ---@type vim.fn.winsaveview.ret
|
||||
if not (states[win] and states[win].buf == buf) then
|
||||
if not (states[win] and states[win].buf == buf and states[win].changedtick == changedtick) then
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
states[win] = {
|
||||
win = win,
|
||||
target = vim.deepcopy(view),
|
||||
current = vim.deepcopy(view),
|
||||
buf = buf,
|
||||
changedtick = changedtick,
|
||||
}
|
||||
end
|
||||
states[win].scrolloff = vim.wo[win].scrolloff
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue