From a2d266132ce503335795d14f7462cca20feb06be Mon Sep 17 00:00:00 2001 From: Natercio Moniz Date: Wed, 13 Aug 2025 10:22:28 +0100 Subject: [PATCH] add neoscroll plugin with circ easing --- lua/plugins/neoscroll.lua | 47 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 lua/plugins/neoscroll.lua diff --git a/lua/plugins/neoscroll.lua b/lua/plugins/neoscroll.lua new file mode 100644 index 0000000..ba5dbff --- /dev/null +++ b/lua/plugins/neoscroll.lua @@ -0,0 +1,47 @@ +return { + 'karb94/neoscroll.nvim', + config = function() + local neoscroll = require 'neoscroll' + neoscroll.setup { + mappings = { + '', + '', + '', + '', + 'zt', + 'zz', + 'zb', + }, + easing = 'circ', + respect_scrolloff = true, + } + + local keymap = { + [''] = function() + neoscroll.ctrl_u { duration = 200 } + end, + [''] = function() + neoscroll.ctrl_d { duration = 200 } + end, + [''] = function() + neoscroll.ctrl_b { duration = 300 } + end, + [''] = function() + neoscroll.ctrl_f { duration = 300 } + end, + ['zt'] = function() + neoscroll.zt { half_win_duration = 100 } + end, + ['zz'] = function() + neoscroll.zz { half_win_duration = 100 } + end, + ['zb'] = function() + neoscroll.zb { half_win_duration = 100 } + end, + } + local modes = { 'n', 'v', 'x' } + for key, func in pairs(keymap) do + vim.keymap.set(modes, key, func) + end + end, +}