diff --git a/crates/vim/src/test/neovim_backed_test_context.rs b/crates/vim/src/test/neovim_backed_test_context.rs index 7944e9297c..d6c00c8534 100644 --- a/crates/vim/src/test/neovim_backed_test_context.rs +++ b/crates/vim/src/test/neovim_backed_test_context.rs @@ -1,7 +1,10 @@ use editor::scroll::VERTICAL_SCROLL_MARGIN; use indoc::indoc; use settings::SettingsStore; -use std::ops::{Deref, DerefMut}; +use std::{ + ops::{Deref, DerefMut}, + panic, thread, +}; use collections::{HashMap, HashSet}; use gpui::{geometry::vector::vec2f, ContextHandle}; @@ -59,12 +62,22 @@ pub struct NeovimBackedTestContext<'a> { impl<'a> NeovimBackedTestContext<'a> { pub async fn new(cx: &'a mut gpui::TestAppContext) -> NeovimBackedTestContext<'a> { - let function_name = cx.function_name.clone(); - let cx = VimTestContext::new(cx, true).await; + // rust stores the name of the test on the current thread. + // We use this to automatically name a file that will store + // the neovim connection's requests/responses so that we can + // run without neovim on CI. + let thread = thread::current(); + let test_name = thread + .name() + .expect("thread is not named") + .split(":") + .last() + .unwrap() + .to_string(); Self { - cx, + cx: VimTestContext::new(cx, true).await, exemptions: Default::default(), - neovim: NeovimConnection::new(function_name).await, + neovim: NeovimConnection::new(test_name).await, last_set_state: None, recent_keystrokes: Default::default(),