A little refactor

Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com>
This commit is contained in:
Conrad Irwin 2023-07-25 12:55:01 -06:00
parent 1f65effe57
commit 64b252e81a

View file

@ -264,25 +264,19 @@ impl Vim {
} }
} }
fn sync_mode_indicator(cx: &mut AppContext) { fn sync_mode_indicator(cx: &mut WindowContext) {
cx.spawn(|mut cx| async move { let Some(workspace) = cx.root_view()
let workspace = match cx.update(|cx| { .downcast_ref::<Workspace>()
cx.update_active_window(|cx| { .map(|workspace| workspace.downgrade()) else {
cx.root_view() return;
.downcast_ref::<Workspace>()
.map(|workspace| workspace.downgrade())
})
}) {
Some(Some(workspace)) => workspace,
_ => {
return Ok(());
}
}; };
cx.spawn(|mut cx| async move {
workspace.update(&mut cx, |workspace, cx| { workspace.update(&mut cx, |workspace, cx| {
Vim::update(cx, |vim, cx| { Vim::update(cx, |vim, cx| {
workspace.status_bar().update(cx, |status_bar, cx| { workspace.status_bar().update(cx, |status_bar, cx| {
let current_position = status_bar.position_of_item::<ModeIndicator>(); let current_position = status_bar.position_of_item::<ModeIndicator>();
if vim.enabled && current_position.is_none() { if vim.enabled && current_position.is_none() {
if vim.mode_indicator.is_none() { if vim.mode_indicator.is_none() {
vim.mode_indicator = vim.mode_indicator =