Merge pull request #2395 from zed-industries/remove-stable-hiding-copilot

Mikayla Maki created

Remove stable guard for copilot

Change summary

crates/copilot/src/copilot.rs     | 12 -----
crates/copilot/src/sign_in.rs     | 72 ++++++++++++++++----------------
crates/editor/src/editor_tests.rs |  6 +-
3 files changed, 40 insertions(+), 50 deletions(-)

Detailed changes

crates/copilot/src/copilot.rs 🔗

@@ -27,8 +27,7 @@ use std::{
     sync::Arc,
 };
 use util::{
-    channel::ReleaseChannel, fs::remove_matching, github::latest_github_release, http::HttpClient,
-    paths, ResultExt,
+    fs::remove_matching, github::latest_github_release, http::HttpClient, paths, ResultExt,
 };
 
 const COPILOT_AUTH_NAMESPACE: &'static str = "copilot_auth";
@@ -41,15 +40,6 @@ actions!(
 );
 
 pub fn init(http: Arc<dyn HttpClient>, node_runtime: Arc<NodeRuntime>, cx: &mut AppContext) {
-    // Disable Copilot for stable releases.
-    if *cx.global::<ReleaseChannel>() == ReleaseChannel::Stable {
-        cx.update_global::<collections::CommandPaletteFilter, _, _>(|filter, _cx| {
-            filter.filtered_namespaces.insert(COPILOT_NAMESPACE);
-            filter.filtered_namespaces.insert(COPILOT_AUTH_NAMESPACE);
-        });
-        return;
-    }
-
     let copilot = cx.add_model({
         let node_runtime = node_runtime.clone();
         move |cx| Copilot::start(http, node_runtime, cx)

crates/copilot/src/sign_in.rs 🔗

@@ -23,51 +23,51 @@ struct OpenGithub;
 const COPILOT_SIGN_UP_URL: &'static str = "https://github.com/features/copilot";
 
 pub fn init(cx: &mut AppContext) {
-    let copilot = Copilot::global(cx).unwrap();
+    if let Some(copilot) = Copilot::global(cx) {
+        let mut code_verification: Option<ViewHandle<CopilotCodeVerification>> = None;
+        cx.observe(&copilot, move |copilot, cx| {
+            let status = copilot.read(cx).status();
 
-    let mut code_verification: Option<ViewHandle<CopilotCodeVerification>> = None;
-    cx.observe(&copilot, move |copilot, cx| {
-        let status = copilot.read(cx).status();
-
-        match &status {
-            crate::Status::SigningIn { prompt } => {
-                if let Some(code_verification_handle) = code_verification.as_mut() {
-                    if cx.has_window(code_verification_handle.window_id()) {
-                        code_verification_handle.update(cx, |code_verification_view, cx| {
-                            code_verification_view.set_status(status, cx)
-                        });
-                        cx.activate_window(code_verification_handle.window_id());
-                    } else {
+            match &status {
+                crate::Status::SigningIn { prompt } => {
+                    if let Some(code_verification_handle) = code_verification.as_mut() {
+                        if cx.has_window(code_verification_handle.window_id()) {
+                            code_verification_handle.update(cx, |code_verification_view, cx| {
+                                code_verification_view.set_status(status, cx)
+                            });
+                            cx.activate_window(code_verification_handle.window_id());
+                        } else {
+                            create_copilot_auth_window(cx, &status, &mut code_verification);
+                        }
+                    } else if let Some(_prompt) = prompt {
                         create_copilot_auth_window(cx, &status, &mut code_verification);
                     }
-                } else if let Some(_prompt) = prompt {
-                    create_copilot_auth_window(cx, &status, &mut code_verification);
                 }
-            }
-            Status::Authorized | Status::Unauthorized => {
-                if let Some(code_verification) = code_verification.as_ref() {
-                    code_verification.update(cx, |code_verification, cx| {
-                        code_verification.set_status(status, cx)
-                    });
+                Status::Authorized | Status::Unauthorized => {
+                    if let Some(code_verification) = code_verification.as_ref() {
+                        code_verification.update(cx, |code_verification, cx| {
+                            code_verification.set_status(status, cx)
+                        });
 
-                    cx.platform().activate(true);
-                    cx.activate_window(code_verification.window_id());
+                        cx.platform().activate(true);
+                        cx.activate_window(code_verification.window_id());
+                    }
                 }
-            }
-            _ => {
-                if let Some(code_verification) = code_verification.take() {
-                    cx.remove_window(code_verification.window_id());
+                _ => {
+                    if let Some(code_verification) = code_verification.take() {
+                        cx.remove_window(code_verification.window_id());
+                    }
                 }
             }
-        }
-    })
-    .detach();
+        })
+        .detach();
 
-    cx.add_action(
-        |code_verification: &mut CopilotCodeVerification, _: &ClickedConnect, _| {
-            code_verification.connect_clicked = true;
-        },
-    );
+        cx.add_action(
+            |code_verification: &mut CopilotCodeVerification, _: &ClickedConnect, _| {
+                code_verification.connect_clicked = true;
+            },
+        );
+    }
 }
 
 fn create_copilot_auth_window(

crates/editor/src/editor_tests.rs 🔗

@@ -4371,7 +4371,7 @@ async fn test_strip_whitespace_and_format_via_lsp(cx: &mut gpui::TestAppContext)
     cx.set_state(
         &[
             "one ",   //
-            "twoˇ",  //
+            "twoˇ",   //
             "three ", //
             "four",   //
         ]
@@ -4446,7 +4446,7 @@ async fn test_strip_whitespace_and_format_via_lsp(cx: &mut gpui::TestAppContext)
         &[
             "one",   //
             "",      //
-            "twoˇ", //
+            "twoˇ",  //
             "",      //
             "three", //
             "four",  //
@@ -4461,7 +4461,7 @@ async fn test_strip_whitespace_and_format_via_lsp(cx: &mut gpui::TestAppContext)
     cx.assert_editor_state(
         &[
             "one ",   //
-            "twoˇ",  //
+            "twoˇ",   //
             "three ", //
             "four",   //
         ]