diff --git a/crates/vim/src/normal/delete.rs b/crates/vim/src/normal/delete.rs index 3bb580ec10650c3a77d26a7ab623b984d1d5ab85..1e23e08a4d28a3168300cd9a2dfebfd6aea963d2 100644 --- a/crates/vim/src/normal/delete.rs +++ b/crates/vim/src/normal/delete.rs @@ -214,9 +214,11 @@ fn ends_at_eof(map: &DisplaySnapshot, selection: &mut Selection) - #[cfg(test)] mod test { + use gpui::KeyBinding; use indoc::indoc; use crate::{ + PushObject, state::Mode, test::{NeovimBackedTestContext, VimTestContext}, }; @@ -765,4 +767,24 @@ mod test { .await .assert_matches(); } + + #[gpui::test] + async fn test_delete_object_scope(cx: &mut gpui::TestAppContext) { + let mut cx = VimTestContext::new(cx, true).await; + + cx.update(|_, cx| { + cx.bind_keys([KeyBinding::new( + "a", + PushObject { + around: true, + whitespace: false, + }, + Some("VimControl && !menu"), + )]); + }); + + cx.set_state("some 'ˇquotes' here", Mode::Normal); + cx.simulate_keystrokes("d a '"); + cx.assert_editor_state("some ˇ here"); + } }