From fb52609b7a0fe9151cbdaae7d3a286869e912e0c Mon Sep 17 00:00:00 2001 From: SinTan1729 Date: Thu, 5 Sep 2024 15:41:54 +0200 Subject: [PATCH] fix: neoscroll mappings --- laptop/plugin/neoscroll.lua | 35 +++++++++++++++++----------------- server/plugin/neoscroll.lua | 38 +++++++++++++++++++------------------ vps/plugin/neoscroll.lua | 36 ++++++++++++++++++----------------- 3 files changed, 57 insertions(+), 52 deletions(-) diff --git a/laptop/plugin/neoscroll.lua b/laptop/plugin/neoscroll.lua index 5efd765..16cb573 100644 --- a/laptop/plugin/neoscroll.lua +++ b/laptop/plugin/neoscroll.lua @@ -1,7 +1,9 @@ +local neoscroll = require("neoscroll") + -- Keep cursor away from the edges vim.opt.scrolloff = 8 -require("neoscroll").setup({ +neoscroll.setup({ -- All these keys will be mapped to their corresponding default scrolling animation mappings = { '', '', '', '', '', '', 'zt', 'zz', 'zb' }, @@ -16,20 +18,19 @@ require("neoscroll").setup({ easing_function = "quadratic", -- Default easing function }) -local t = {} --- Syntax: t[keys] = {function, {function arguments}} --- Use the "sine" easing function -t[''] = { 'scroll', { '-vim.wo.scroll', 'true', '350', [['sine']] } } -t[''] = { 'scroll', { 'vim.wo.scroll', 'true', '350', [['sine']] } } --- Use the "circular" easing function -t[''] = { 'scroll', { '-vim.api.nvim_win_get_height(0)', 'true', '500', [['circular']] } } -t[''] = { 'scroll', { 'vim.api.nvim_win_get_height(0)', 'true', '500', [['circular']] } } --- Pass "nil" to disable the easing animation (constant scrolling speed) -t[''] = { 'scroll', { '-0.10', 'false', '100', nil } } -t[''] = { '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' } } +local keymap = { + [""] = function() neoscroll.ctrl_u({ duration = 250 }) end, + [""] = function() neoscroll.ctrl_d({ duration = 250 }) end, + [""] = function() neoscroll.ctrl_b({ duration = 450 }) end, + [""] = function() neoscroll.ctrl_f({ duration = 450 }) end, + [""] = function() neoscroll.scroll(-0.1, { move_cursor = false, duration = 100 }) end, + [""] = function() neoscroll.scroll(0.1, { move_cursor = false, duration = 100 }) end, + ["zt"] = function() neoscroll.zt({ half_win_duration = 250 }) end, + ["zz"] = function() neoscroll.zz({ half_win_duration = 250 }) end, + ["zb"] = function() neoscroll.zb({ half_win_duration = 250 }) end, +} -require('neoscroll.config').set_mappings(t) +local modes = { 'n', 'v', 'x' } +for key, func in pairs(keymap) do + vim.keymap.set(modes, key, func) +end diff --git a/server/plugin/neoscroll.lua b/server/plugin/neoscroll.lua index ea41343..65aeee8 100644 --- a/server/plugin/neoscroll.lua +++ b/server/plugin/neoscroll.lua @@ -1,13 +1,15 @@ +local neoscroll = require("neoscroll") + -- Keep cursor away from the edges vim.opt.scrolloff = 8 -require("neoscroll").setup({ +neoscroll.setup({ -- All these keys will be mapped to their corresponding default scrolling animation mappings = { '', '', '', '', '', '', 'zt', 'zz', 'zb' }, hide_cursor = true, -- Hide cursor while scrolling stop_eof = true, -- Stop at when scrolling downwards - respect_scrolloff = false, -- Stop scrolling when the cursor reaches the scrolloff margin of the file + respect_scrolloff = false, -- Stop scrolling when the cursor reaches the scrolloff margin of the file cursor_scrolls_alone = true, -- The cursor will keep on scrolling even if the window cannot scroll further easing_function = nil, -- Default easing function pre_hook = nil, -- Function to run before the scrolling animation starts @@ -16,20 +18,20 @@ require("neoscroll").setup({ easing_function = "quadratic", -- Default easing function }) -local t = {} --- Syntax: t[keys] = {function, {function arguments}} --- Use the "sine" easing function -t[''] = { 'scroll', { '-vim.wo.scroll', 'true', '350', [['sine']] } } -t[''] = { 'scroll', { 'vim.wo.scroll', 'true', '350', [['sine']] } } --- Use the "circular" easing function -t[''] = { 'scroll', { '-vim.api.nvim_win_get_height(0)', 'true', '500', [['circular']] } } -t[''] = { 'scroll', { 'vim.api.nvim_win_get_height(0)', 'true', '500', [['circular']] } } --- Pass "nil" to disable the easing animation (constant scrolling speed) -t[''] = { 'scroll', { '-0.10', 'false', '100', nil } } -t[''] = { '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' } } +local keymap = { + [""] = function() neoscroll.ctrl_u({ duration = 250 }) end, + [""] = function() neoscroll.ctrl_d({ duration = 250 }) end, + [""] = function() neoscroll.ctrl_b({ duration = 450 }) end, + [""] = function() neoscroll.ctrl_f({ duration = 450 }) end, + [""] = function() neoscroll.scroll(-0.1, { move_cursor = false, duration = 100 }) end, + [""] = function() neoscroll.scroll(0.1, { move_cursor = false, duration = 100 }) end, + ["zt"] = function() neoscroll.zt({ half_win_duration = 250 }) end, + ["zz"] = function() neoscroll.zz({ half_win_duration = 250 }) end, + ["zb"] = function() neoscroll.zb({ half_win_duration = 250 }) end, +} + +local modes = { 'n', 'v', 'x' } +for key, func in pairs(keymap) do + vim.keymap.set(modes, key, func) +end -require('neoscroll.config').set_mappings(t) diff --git a/vps/plugin/neoscroll.lua b/vps/plugin/neoscroll.lua index 5efd765..65aeee8 100644 --- a/vps/plugin/neoscroll.lua +++ b/vps/plugin/neoscroll.lua @@ -1,7 +1,9 @@ +local neoscroll = require("neoscroll") + -- Keep cursor away from the edges vim.opt.scrolloff = 8 -require("neoscroll").setup({ +neoscroll.setup({ -- All these keys will be mapped to their corresponding default scrolling animation mappings = { '', '', '', '', '', '', 'zt', 'zz', 'zb' }, @@ -16,20 +18,20 @@ require("neoscroll").setup({ easing_function = "quadratic", -- Default easing function }) -local t = {} --- Syntax: t[keys] = {function, {function arguments}} --- Use the "sine" easing function -t[''] = { 'scroll', { '-vim.wo.scroll', 'true', '350', [['sine']] } } -t[''] = { 'scroll', { 'vim.wo.scroll', 'true', '350', [['sine']] } } --- Use the "circular" easing function -t[''] = { 'scroll', { '-vim.api.nvim_win_get_height(0)', 'true', '500', [['circular']] } } -t[''] = { 'scroll', { 'vim.api.nvim_win_get_height(0)', 'true', '500', [['circular']] } } --- Pass "nil" to disable the easing animation (constant scrolling speed) -t[''] = { 'scroll', { '-0.10', 'false', '100', nil } } -t[''] = { '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' } } +local keymap = { + [""] = function() neoscroll.ctrl_u({ duration = 250 }) end, + [""] = function() neoscroll.ctrl_d({ duration = 250 }) end, + [""] = function() neoscroll.ctrl_b({ duration = 450 }) end, + [""] = function() neoscroll.ctrl_f({ duration = 450 }) end, + [""] = function() neoscroll.scroll(-0.1, { move_cursor = false, duration = 100 }) end, + [""] = function() neoscroll.scroll(0.1, { move_cursor = false, duration = 100 }) end, + ["zt"] = function() neoscroll.zt({ half_win_duration = 250 }) end, + ["zz"] = function() neoscroll.zz({ half_win_duration = 250 }) end, + ["zb"] = function() neoscroll.zb({ half_win_duration = 250 }) end, +} + +local modes = { 'n', 'v', 'x' } +for key, func in pairs(keymap) do + vim.keymap.set(modes, key, func) +end -require('neoscroll.config').set_mappings(t)