Update CreateAugroupOpts on nightly

This commit is contained in:
Riccardo Mazzarini 2024-12-05 16:01:36 +08:00
parent af3558aa97
commit 21994a2b75
No known key found for this signature in database
GPG key ID: 38165222613796F5
2 changed files with 31 additions and 15 deletions

View file

@ -1,10 +1,25 @@
/// Options passed to [`create_augroup()`](crate::create_augroup).
#[cfg(feature = "neovim-nightly")] // Only on Nightly.
#[derive(Clone, Debug, Default, macros::OptsBuilder)]
#[repr(C)]
pub struct CreateAugroupOpts {
#[builder(mask)]
mask: u64,
/// Whether to clear existing commands if the group already exists.
#[builder(argtype = "bool")]
clear: types::Boolean,
}
/// Options passed to [`create_augroup()`](crate::create_augroup).
#[cfg(not(feature = "neovim-nightly"))] // On 0.9 and 0.10.
#[derive(Clone, Debug, Default)]
#[repr(C)]
pub struct CreateAugroupOpts {
clear: types::Object,
}
#[cfg(not(feature = "neovim-nightly"))] // On 0.9 and 0.10.
impl CreateAugroupOpts {
#[inline(always)]
pub fn builder() -> CreateAugroupOptsBuilder {
@ -12,9 +27,11 @@ impl CreateAugroupOpts {
}
}
#[cfg(not(feature = "neovim-nightly"))] // On 0.9 and 0.10.
#[derive(Clone, Default)]
pub struct CreateAugroupOptsBuilder(CreateAugroupOpts);
#[cfg(not(feature = "neovim-nightly"))] // On 0.9 and 0.10.
impl CreateAugroupOptsBuilder {
/// Whether to clear existing commands if the group already exists.
#[inline]

View file

@ -1,8 +1,7 @@
use all_asserts::*;
use nvim_oxi as oxi;
use nvim_oxi::api::{self, opts::*, Buffer};
#[oxi::test]
#[nvim_oxi::test]
fn clear_autocmds_current_buf() {
let opts = ClearAutocmdsOpts::builder().buffer(0.into()).build();
assert_eq!(Ok(()), api::clear_autocmds(&opts));
@ -11,7 +10,7 @@ fn clear_autocmds_current_buf() {
assert_eq!(Ok(()), api::clear_autocmds(&opts));
}
#[oxi::test]
#[nvim_oxi::test]
fn clear_autocmds_events() {
let opts = ClearAutocmdsOpts::builder()
.events(["BufFilePre", "BufFilePost"])
@ -29,7 +28,7 @@ fn clear_autocmds_events() {
assert_eq!(Ok(()), api::clear_autocmds(&opts));
}
#[oxi::test]
#[nvim_oxi::test]
fn clear_autocmds_buffer_n_patterns() {
let opts = ClearAutocmdsOpts::builder()
.buffer(0.into())
@ -42,7 +41,7 @@ fn clear_autocmds_buffer_n_patterns() {
);
}
#[oxi::test]
#[nvim_oxi::test]
fn create_augroup() {
let opts = CreateAugroupOpts::builder().build();
let id = api::create_augroup("Foo", &opts).expect("create_augroup failed");
@ -53,19 +52,19 @@ fn create_augroup() {
assert_eq!(Ok(id), got);
}
#[oxi::test]
#[nvim_oxi::test]
fn create_autocmd() {
let opts = CreateAutocmdOpts::builder()
.buffer(0.into())
.desc("Does nothing, in the current buffer")
.callback(|_args| Ok::<_, oxi::Error>(false))
.callback(|_args| Ok::<_, nvim_oxi::Error>(false))
.build();
let id = api::create_autocmd(["VimEnter"], &opts);
assert!(id.is_ok(), "{id:?}");
}
#[oxi::test]
#[nvim_oxi::test]
fn create_autocmd_buffer_n_patterns() {
let opts = CreateAutocmdOpts::builder()
.command("echo 'hi there'")
@ -77,7 +76,7 @@ fn create_autocmd_buffer_n_patterns() {
assert!(id.is_err(), "{id:?}");
}
#[oxi::test]
#[nvim_oxi::test]
fn exec_autocmds() {
use std::cell::RefCell;
use std::rc::Rc;
@ -90,7 +89,7 @@ fn exec_autocmds() {
.callback(move |_args| {
let mut i = cloned.borrow_mut();
*i += 1;
Ok::<_, oxi::Error>(false)
Ok::<_, nvim_oxi::Error>(false)
})
.buffer(Buffer::current())
.once(true)
@ -111,31 +110,31 @@ fn exec_autocmds() {
assert_eq!(1, *i.try_borrow().unwrap());
}
#[oxi::test]
#[nvim_oxi::test]
fn get_autocmds() {
let autocmds =
api::get_autocmds(&Default::default()).expect("couldn't get autocmds");
assert_lt!(0, autocmds.collect::<Vec<_>>().len());
}
#[oxi::test]
#[nvim_oxi::test]
fn set_del_augroup_by_id() {
let id = api::create_augroup("Foo", &Default::default())
.expect("create_augroup failed");
assert_eq!(Ok(()), api::del_augroup_by_id(id));
}
#[oxi::test]
#[nvim_oxi::test]
fn set_del_augroup_by_name() {
let _ = api::create_augroup("Foo", &Default::default())
.expect("create_augroup failed");
assert_eq!(Ok(()), api::del_augroup_by_name("Foo"));
}
#[oxi::test]
#[nvim_oxi::test]
fn set_exec_del_autocmd() {
let opts = CreateAutocmdOpts::builder()
.callback(|_args| Ok::<_, oxi::Error>(false))
.callback(|_args| Ok::<_, nvim_oxi::Error>(false))
.build();
let id = api::create_autocmd(["BufAdd", "BufDelete"], &opts)