aboutsummaryrefslogtreecommitdiff
path: root/lua/user/neoscroll.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/user/neoscroll.lua')
-rw-r--r--lua/user/neoscroll.lua31
1 files changed, 31 insertions, 0 deletions
diff --git a/lua/user/neoscroll.lua b/lua/user/neoscroll.lua
new file mode 100644
index 0000000..9ff4038
--- /dev/null
+++ b/lua/user/neoscroll.lua
@@ -0,0 +1,31 @@
+local status_ok, neoscroll = pcall(require, 'neoscroll')
+if not status_ok then
+ return
+end
+
+neoscroll.setup({
+ easing_function = "quadratic"
+})
+
+local status_ok, config = pcall(require, 'neoscroll.config')
+if not status_ok then
+ return
+end
+
+local t = {}
+-- Syntax: t[keys] = {function, {function arguments}}
+-- Use the "sine" easing function
+t['<C-u>'] = {'scroll', {'-vim.wo.scroll', 'true', '350', [['sine']]}}
+t['<C-d>'] = {'scroll', { 'vim.wo.scroll', 'true', '350', [['sine']]}}
+-- Use the "circular" easing function
+t['<C-b>'] = {'scroll', {'-vim.api.nvim_win_get_height(0)', 'true', '500', [['circular']]}}
+t['<C-f>'] = {'scroll', { 'vim.api.nvim_win_get_height(0)', 'true', '500', [['circular']]}}
+-- Pass "nil" to disable the easing animation (constant scrolling speed)
+t['<C-y>'] = {'scroll', {'-0.10', 'false', '100', nil}}
+t['<C-e>'] = {'scroll', { '0.10', 'false', '100', nil}}
+-- When no easing function is provided the default easing function (in this case "quadratic") will be used
+t['zt'] = {'zt', {'300'}}
+t['zz'] = {'zz', {'300'}}
+t['zb'] = {'zb', {'300'}}
+
+config.set_mappings()