Detailed changes
@@ -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)
@@ -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(
@@ -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", //
]