2024-02-04 15:05:08 -08:00
|
|
|
{
|
|
|
|
lib,
|
|
|
|
helpers,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
with lib;
|
2024-12-22 09:58:27 +00:00
|
|
|
lib.nixvim.plugins.mkNeovimPlugin {
|
2024-02-04 15:05:08 -08:00
|
|
|
name = "neoscroll";
|
2024-12-13 08:27:14 -06:00
|
|
|
packPathName = "neoscroll.nvim";
|
2024-09-02 14:05:11 +01:00
|
|
|
package = "neoscroll-nvim";
|
2024-02-04 15:05:08 -08:00
|
|
|
|
|
|
|
maintainers = [ maintainers.GaetanLepage ];
|
|
|
|
|
|
|
|
settingsOptions = {
|
|
|
|
mappings =
|
|
|
|
helpers.defaultNullOpts.mkListOf types.str
|
2024-06-11 16:54:41 +01:00
|
|
|
[
|
|
|
|
"<C-u>"
|
|
|
|
"<C-d>"
|
|
|
|
"<C-b>"
|
|
|
|
"<C-f>"
|
|
|
|
"<C-y>"
|
|
|
|
"<C-e>"
|
|
|
|
"zt"
|
|
|
|
"zz"
|
|
|
|
"zb"
|
|
|
|
]
|
2024-02-04 15:05:08 -08:00
|
|
|
''
|
|
|
|
All the keys defined in this option will be mapped to their corresponding default
|
|
|
|
scrolling animation. To no map any key pass an empty table:
|
|
|
|
```nix
|
|
|
|
mappings.__empty = null;
|
|
|
|
```
|
|
|
|
'';
|
|
|
|
|
|
|
|
hide_cursor = helpers.defaultNullOpts.mkBool true ''
|
|
|
|
If 'termguicolors' is set, hide the cursor while scrolling.
|
|
|
|
'';
|
|
|
|
|
|
|
|
step_eof = helpers.defaultNullOpts.mkBool true ''
|
|
|
|
When `move_cursor` is `true` scrolling downwards will stop when the bottom line of the
|
|
|
|
window is the last line of the file.
|
|
|
|
'';
|
|
|
|
|
|
|
|
respect_scrolloff = helpers.defaultNullOpts.mkBool false ''
|
|
|
|
The cursor stops at the scrolloff margin.
|
|
|
|
Try combining this option with either `stop_eof` or `cursor_scrolls_alone` (or both).
|
|
|
|
'';
|
|
|
|
|
|
|
|
cursor_scrolls_alone = helpers.defaultNullOpts.mkBool true ''
|
|
|
|
The cursor will keep on scrolling even if the window cannot scroll further.
|
|
|
|
'';
|
|
|
|
|
|
|
|
easing_function = helpers.mkNullOrStr ''
|
|
|
|
Name of the easing function to use by default in all scrolling animamtions.
|
|
|
|
`scroll()` that don't provide the optional `easing` argument will use this easing
|
|
|
|
function.
|
|
|
|
If set to `null` (the default) no easing function will be used in the scrolling animation
|
|
|
|
(constant scrolling speed).
|
|
|
|
'';
|
|
|
|
|
|
|
|
pre_hook = helpers.mkNullOrLuaFn ''
|
|
|
|
Function to run before the scrolling animation starts.
|
|
|
|
The function will be called with the `info` parameter which can be optionally passed to
|
|
|
|
`scroll()` (or any of the provided wrappers).
|
|
|
|
This can be used to conditionally run different hooks for different types of scrolling
|
|
|
|
animations.
|
|
|
|
'';
|
|
|
|
|
|
|
|
post_hook = helpers.mkNullOrLuaFn ''
|
|
|
|
Equivalent to `pre_hook` but the function will run after the scrolling animation ends.
|
|
|
|
'';
|
|
|
|
|
|
|
|
performance_mode = helpers.defaultNullOpts.mkBool false ''
|
|
|
|
Option to enable "Performance Mode" on all buffers.
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
settingsExample = {
|
|
|
|
mappings = [
|
|
|
|
"<C-u>"
|
|
|
|
"<C-d>"
|
|
|
|
"<C-b>"
|
|
|
|
"<C-f>"
|
|
|
|
"<C-y>"
|
|
|
|
"<C-e>"
|
|
|
|
"zt"
|
|
|
|
"zz"
|
|
|
|
"zb"
|
|
|
|
];
|
|
|
|
hide_cursor = true;
|
|
|
|
stop_eof = true;
|
|
|
|
respect_scrolloff = false;
|
|
|
|
cursor_scrolls_alone = true;
|
|
|
|
easing_function = "quadratic";
|
|
|
|
};
|
|
|
|
}
|