copilot_ui.rs

 1mod sign_in;
 2
 3use std::sync::Arc;
 4
 5use copilot::GlobalCopilotAuth;
 6use gpui::AppContext;
 7use language::language_settings::AllLanguageSettings;
 8use project::DisableAiSettings;
 9use settings::SettingsStore;
10pub use sign_in::{
11    ConfigurationMode, ConfigurationView, CopilotCodeVerification, initiate_sign_in,
12    initiate_sign_out, reinstall_and_sign_in,
13};
14use ui::App;
15use workspace::AppState;
16
17pub fn init(app_state: &Arc<AppState>, cx: &mut App) {
18    let disable_ai = cx.read_global(|settings: &SettingsStore, _| {
19        settings.get::<DisableAiSettings>(None).disable_ai
20    });
21    let provider = cx.read_global(|settings: &SettingsStore, _| {
22        settings
23            .get::<AllLanguageSettings>(None)
24            .edit_predictions
25            .provider
26    });
27    if !disable_ai && provider == settings::EditPredictionProvider::Copilot {
28        GlobalCopilotAuth::set_global(
29            app_state.languages.next_language_server_id(),
30            app_state.fs.clone(),
31            app_state.node_runtime.clone(),
32            cx,
33        );
34    }
35}