copilot: Decouple copilot sign in from edit prediction settings (#26689)
Closes #25883 This PR allows you to use copilot chat for assistant without setting copilot as the edit prediction provider. [copilot.webm](https://github.com/user-attachments/assets/fecfbde1-d72c-4c0c-b080-a07671fb846e) Todos: - [x] Remove redudant "copilot" key from settings - [x] Do not disable copilot LSP when `edit_prediction_provider` is not set to `copilot` - [x] Start copilot LSP when: - [x] `edit_prediction_provider` is set to `copilot` - [x] Copilot sign in clicked from assistant settings - [x] Handle flicker for frame after starting LSP, but before signing in caused due to signed out status - [x] Fixed this by adding intermediate state for awaiting signing in in sign out enum - [x] Handle cancel button should sign out from `copilot` (existing bug) - [x] Handle modal dismissal should sign out if not in signed in state (existing bug) Release Notes: - You can now sign into Copilot from assistant settings without making it your edit prediction provider. This is useful if you want to use Copilot chat while keeping a different provider, like Zed, for predictions. - Removed the `copilot` key from `features` in settings. Use `edit_prediction_provider` instead.
This commit is contained in:
parent
8d7b021f92
commit
6a95ec6a64
4 changed files with 114 additions and 61 deletions
|
@ -129,7 +129,7 @@ impl LanguageModelProvider for CopilotChatLanguageModelProvider {
|
|||
Status::Error(err) => anyhow!(format!("Received the following error while signing into Copilot: {err}")),
|
||||
Status::Starting { task: _ } => anyhow!("Copilot is still starting, please wait for Copilot to start then try again"),
|
||||
Status::Unauthorized => anyhow!("Unable to authorize with Copilot. Please make sure that you have an active Copilot and Copilot Chat subscription."),
|
||||
Status::SignedOut => anyhow!("You have signed out of Copilot. Please sign in to Copilot and try again."),
|
||||
Status::SignedOut {..} => anyhow!("You have signed out of Copilot. Please sign in to Copilot and try again."),
|
||||
Status::SigningIn { prompt: _ } => anyhow!("Still signing into Copilot..."),
|
||||
};
|
||||
|
||||
|
@ -366,7 +366,6 @@ impl Render for ConfigurationView {
|
|||
|
||||
match &self.copilot_status {
|
||||
Some(status) => match status {
|
||||
Status::Disabled => v_flex().gap_6().p_4().child(Label::new(ERROR_LABEL)),
|
||||
Status::Starting { task: _ } => {
|
||||
const LABEL: &str = "Starting Copilot...";
|
||||
v_flex()
|
||||
|
@ -376,7 +375,10 @@ impl Render for ConfigurationView {
|
|||
.child(Label::new(LABEL))
|
||||
.child(loading_icon)
|
||||
}
|
||||
Status::SigningIn { prompt: _ } => {
|
||||
Status::SigningIn { prompt: _ }
|
||||
| Status::SignedOut {
|
||||
awaiting_signing_in: true,
|
||||
} => {
|
||||
const LABEL: &str = "Signing in to Copilot...";
|
||||
v_flex()
|
||||
.gap_6()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue