nvrim/plugins/
scrolloff.rs1use nvim_oxi::api::Window;
4use nvim_oxi::api::opts::CreateAutocmdOptsBuilder;
5use nvim_oxi::api::types::AutocmdCallbackArgs;
6
7pub fn create_autocmd() {
9 crate::cmds::create_autocmd(
10 ["BufEnter", "WinEnter", "WinNew", "VimResized"],
11 "ScrolloffFraction",
12 CreateAutocmdOptsBuilder::default().patterns(["*"]).callback(callback),
13 );
14}
15
16fn callback(_: AutocmdCallbackArgs) -> bool {
18 let Ok(height) = Window::current().get_height().inspect_err(|err| {
19 ytil_noxi::notify::error(format!("error getting Neovim window height | error={err:#?}"));
20 }) else {
21 return false;
22 };
23 let scrolloff = height / 2;
24 crate::vim_opts::set("scrolloff", scrolloff, &crate::vim_opts::global_scope());
25 false
26}