57 lines
1.3 KiB
Lua
57 lines
1.3 KiB
Lua
|
return {
|
||
|
'mini.animate',
|
||
|
enabled = vim.g.neovide == nil,
|
||
|
event = { 'DeferredUIEnter' },
|
||
|
after = function()
|
||
|
local mouse_scrolled = false
|
||
|
for _, scroll in ipairs({ 'UP', 'DOWN' }) do
|
||
|
local key = '<SCROLLWHEEL' .. scroll .. '>'
|
||
|
|
||
|
vim.keymap.set({ '', 'i' }, key, function()
|
||
|
mouse_scrolled = true
|
||
|
return key
|
||
|
end, { expr = true })
|
||
|
end
|
||
|
|
||
|
vim.api.nvim_create_autocmd('FileType', {
|
||
|
pattern = 'grug-far',
|
||
|
callback = function()
|
||
|
vim.b.minianimate_disable = true
|
||
|
end,
|
||
|
})
|
||
|
|
||
|
Snacks.toggle({
|
||
|
name = 'mini animate',
|
||
|
get = function()
|
||
|
return not vim.g.minianimate_disable
|
||
|
end,
|
||
|
set = function(state)
|
||
|
vim.g.minianimate_disable = not state
|
||
|
end,
|
||
|
}):map('<LEADER>ua')
|
||
|
|
||
|
local animate = require('mini.animate')
|
||
|
|
||
|
local opts = {
|
||
|
resize = {
|
||
|
timing = animate.gen_timing.linear({ duration = 50, unit = 'total' }),
|
||
|
},
|
||
|
scroll = {
|
||
|
timing = animate.gen_timing.linear({ duration = 50, unit = 'total' }),
|
||
|
subscroll = animate.gen_subscroll.equal({
|
||
|
predicate = function(total_scroll)
|
||
|
if mouse_scrolled then
|
||
|
mouse_scrolled = false
|
||
|
return false
|
||
|
end
|
||
|
|
||
|
return total_scroll > 1
|
||
|
end,
|
||
|
}),
|
||
|
},
|
||
|
}
|
||
|
|
||
|
animate.setup(opts)
|
||
|
end,
|
||
|
}
|