Tidy up main (#3812)

Joseph T. Lyons created

Release Notes:

- N/A

Change summary

crates/zed2/src/main.rs | 97 +++++++++++++++++++-----------------------
1 file changed, 43 insertions(+), 54 deletions(-)

Detailed changes

crates/zed2/src/main.rs 🔗

@@ -1,6 +1,3 @@
-#![allow(unused_variables, dead_code, unused_mut)]
-// todo!() this is to make transition easier.
-
 // Allow binary to be called Zed for a nice application menu when running executable directly
 #![allow(non_snake_case)]
 
@@ -56,8 +53,6 @@ use zed2::{
     OpenListener, OpenRequest,
 };
 
-mod open_listener;
-
 fn main() {
     menu::init();
     zed_actions::init();
@@ -209,7 +204,6 @@ fn main() {
         project_symbols::init(cx);
         project_panel::init(Assets, cx);
         channel::init(&client, user_store.clone(), cx);
-        // diagnostics::init(cx);
         search::init(cx);
         semantic_index::init(fs.clone(), http.clone(), languages.clone(), cx);
         vim::init(cx);
@@ -254,7 +248,7 @@ fn main() {
             cx: &mut AppContext,
         ) {
             let task = workspace::open_paths(&paths, &app_state, None, cx);
-            cx.spawn(|cx| async move {
+            cx.spawn(|_| async move {
                 if let Some((_window, results)) = task.await.log_err() {
                     for result in results {
                         if let Some(Err(e)) = result {
@@ -315,53 +309,48 @@ fn main() {
         }
 
         let app_state = app_state.clone();
-        let closure_client = client.clone();
-        cx.spawn(move |mut cx| {
-            let client = closure_client.clone();
-            async move {
-                while let Some(request) = open_rx.next().await {
-                    match request {
-                        OpenRequest::Paths { paths } => {
-                            cx.update(|cx| open_paths_and_log_errs(&paths, &app_state, cx))
-                                .ok();
-                        }
-                        OpenRequest::CliConnection { connection } => {
-                            let app_state = app_state.clone();
-                            cx.spawn(move |cx| {
-                                handle_cli_connection(connection, app_state.clone(), cx)
-                            })
-                            .detach();
-                        }
-                        OpenRequest::JoinChannel { channel_id } => {
-                            let app_state = app_state.clone();
-                            cx.update(|mut cx| {
-                                cx.spawn(|cx| async move {
-                                    cx.update(|cx| {
-                                        workspace::join_channel(channel_id, app_state, None, cx)
-                                    })?
-                                    .await?;
-                                    anyhow::Ok(())
-                                })
-                                .detach_and_log_err(&mut cx);
+        cx.spawn(move |cx| async move {
+            while let Some(request) = open_rx.next().await {
+                match request {
+                    OpenRequest::Paths { paths } => {
+                        cx.update(|cx| open_paths_and_log_errs(&paths, &app_state, cx))
+                            .ok();
+                    }
+                    OpenRequest::CliConnection { connection } => {
+                        let app_state = app_state.clone();
+                        cx.spawn(move |cx| {
+                            handle_cli_connection(connection, app_state.clone(), cx)
+                        })
+                        .detach();
+                    }
+                    OpenRequest::JoinChannel { channel_id } => {
+                        let app_state = app_state.clone();
+                        cx.update(|mut cx| {
+                            cx.spawn(|cx| async move {
+                                cx.update(|cx| {
+                                    workspace::join_channel(channel_id, app_state, None, cx)
+                                })?
+                                .await?;
+                                anyhow::Ok(())
                             })
+                            .detach_and_log_err(&mut cx);
+                        })
+                        .log_err();
+                    }
+                    OpenRequest::OpenChannelNotes { channel_id } => {
+                        let app_state = app_state.clone();
+                        let open_notes_task = cx.spawn(|mut cx| async move {
+                            let workspace_window =
+                                workspace::get_any_active_workspace(app_state, cx.clone()).await?;
+                            let _ = workspace_window
+                                .update(&mut cx, |_, cx| {
+                                    ChannelView::open(channel_id, cx.view().clone(), cx)
+                                })?
+                                .await?;
+                            anyhow::Ok(())
+                        });
+                        cx.update(|cx| open_notes_task.detach_and_log_err(cx))
                             .log_err();
-                        }
-                        OpenRequest::OpenChannelNotes { channel_id } => {
-                            let app_state = app_state.clone();
-                            let open_notes_task = cx.spawn(|mut cx| async move {
-                                let workspace_window =
-                                    workspace::get_any_active_workspace(app_state, cx.clone())
-                                        .await?;
-                                let _ = workspace_window
-                                    .update(&mut cx, |_, cx| {
-                                        ChannelView::open(channel_id, cx.view().clone(), cx)
-                                    })?
-                                    .await?;
-                                anyhow::Ok(())
-                            });
-                            cx.update(|cx| open_notes_task.detach_and_log_err(cx))
-                                .log_err();
-                        }
                     }
                 }
             }
@@ -412,7 +401,7 @@ async fn installation_id() -> Result<(String, bool)> {
     Ok((installation_id, false))
 }
 
-async fn restore_or_create_workspace(app_state: &Arc<AppState>, mut cx: AsyncAppContext) {
+async fn restore_or_create_workspace(app_state: &Arc<AppState>, cx: AsyncAppContext) {
     async_maybe!({
         if let Some(location) = workspace::last_opened_workspace_paths().await {
             cx.update(|cx| workspace::open_paths(location.paths().as_ref(), app_state, None, cx))?
@@ -777,7 +766,7 @@ async fn watch_languages(fs: Arc<dyn fs::Fs>, languages: Arc<LanguageRegistry>)
 fn watch_file_types(fs: Arc<dyn fs::Fs>, cx: &mut AppContext) {
     use std::time::Duration;
 
-    cx.spawn(|mut cx| async move {
+    cx.spawn(|cx| async move {
         let mut events = fs
             .watch(
                 "assets/icons/file_icons/file_types.json".as_ref(),