mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-14 22:14:23 +00:00
Do not log errors when no worktree is found for certain assistant panel editors (#18923)
Nothing in the assistant panel needs LSP so far, so the errors are not useful. Release Notes: - N/A
This commit is contained in:
parent
926e54bd4a
commit
8911fd46e1
1 changed files with 19 additions and 13 deletions
|
@ -18,7 +18,7 @@ use crate::{
|
||||||
PendingSlashCommand, PendingSlashCommandStatus, QuoteSelection, RemoteContextMetadata,
|
PendingSlashCommand, PendingSlashCommandStatus, QuoteSelection, RemoteContextMetadata,
|
||||||
SavedContextMetadata, Split, ToggleFocus, ToggleModelSelector, WorkflowStepResolution,
|
SavedContextMetadata, Split, ToggleFocus, ToggleModelSelector, WorkflowStepResolution,
|
||||||
};
|
};
|
||||||
use anyhow::{anyhow, Result};
|
use anyhow::Result;
|
||||||
use assistant_slash_command::{SlashCommand, SlashCommandOutputSection};
|
use assistant_slash_command::{SlashCommand, SlashCommandOutputSection};
|
||||||
use assistant_tool::ToolRegistry;
|
use assistant_tool::ToolRegistry;
|
||||||
use client::{proto, Client, Status};
|
use client::{proto, Client, Status};
|
||||||
|
@ -697,7 +697,9 @@ impl AssistantPanel {
|
||||||
log::error!("no context found with ID: {}", context_id.to_proto());
|
log::error!("no context found with ID: {}", context_id.to_proto());
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
let lsp_adapter_delegate = make_lsp_adapter_delegate(&self.project, cx).log_err();
|
let lsp_adapter_delegate = make_lsp_adapter_delegate(&self.project, cx)
|
||||||
|
.log_err()
|
||||||
|
.flatten();
|
||||||
|
|
||||||
let assistant_panel = cx.view().downgrade();
|
let assistant_panel = cx.view().downgrade();
|
||||||
let editor = cx.new_view(|cx| {
|
let editor = cx.new_view(|cx| {
|
||||||
|
@ -971,7 +973,8 @@ impl AssistantPanel {
|
||||||
this.update(&mut cx, |this, cx| {
|
this.update(&mut cx, |this, cx| {
|
||||||
let workspace = this.workspace.clone();
|
let workspace = this.workspace.clone();
|
||||||
let project = this.project.clone();
|
let project = this.project.clone();
|
||||||
let lsp_adapter_delegate = make_lsp_adapter_delegate(&project, cx).log_err();
|
let lsp_adapter_delegate =
|
||||||
|
make_lsp_adapter_delegate(&project, cx).log_err().flatten();
|
||||||
|
|
||||||
let fs = this.fs.clone();
|
let fs = this.fs.clone();
|
||||||
let project = this.project.clone();
|
let project = this.project.clone();
|
||||||
|
@ -1001,7 +1004,9 @@ impl AssistantPanel {
|
||||||
None
|
None
|
||||||
} else {
|
} else {
|
||||||
let context = self.context_store.update(cx, |store, cx| store.create(cx));
|
let context = self.context_store.update(cx, |store, cx| store.create(cx));
|
||||||
let lsp_adapter_delegate = make_lsp_adapter_delegate(&self.project, cx).log_err();
|
let lsp_adapter_delegate = make_lsp_adapter_delegate(&self.project, cx)
|
||||||
|
.log_err()
|
||||||
|
.flatten();
|
||||||
|
|
||||||
let assistant_panel = cx.view().downgrade();
|
let assistant_panel = cx.view().downgrade();
|
||||||
let editor = cx.new_view(|cx| {
|
let editor = cx.new_view(|cx| {
|
||||||
|
@ -1207,7 +1212,7 @@ impl AssistantPanel {
|
||||||
let project = self.project.clone();
|
let project = self.project.clone();
|
||||||
let workspace = self.workspace.clone();
|
let workspace = self.workspace.clone();
|
||||||
|
|
||||||
let lsp_adapter_delegate = make_lsp_adapter_delegate(&project, cx).log_err();
|
let lsp_adapter_delegate = make_lsp_adapter_delegate(&project, cx).log_err().flatten();
|
||||||
|
|
||||||
cx.spawn(|this, mut cx| async move {
|
cx.spawn(|this, mut cx| async move {
|
||||||
let context = context.await?;
|
let context = context.await?;
|
||||||
|
@ -1254,7 +1259,9 @@ impl AssistantPanel {
|
||||||
.update(cx, |store, cx| store.open_remote_context(id, cx));
|
.update(cx, |store, cx| store.open_remote_context(id, cx));
|
||||||
let fs = self.fs.clone();
|
let fs = self.fs.clone();
|
||||||
let workspace = self.workspace.clone();
|
let workspace = self.workspace.clone();
|
||||||
let lsp_adapter_delegate = make_lsp_adapter_delegate(&self.project, cx).log_err();
|
let lsp_adapter_delegate = make_lsp_adapter_delegate(&self.project, cx)
|
||||||
|
.log_err()
|
||||||
|
.flatten();
|
||||||
|
|
||||||
cx.spawn(|this, mut cx| async move {
|
cx.spawn(|this, mut cx| async move {
|
||||||
let context = context.await?;
|
let context = context.await?;
|
||||||
|
@ -5505,22 +5512,21 @@ fn render_docs_slash_command_trailer(
|
||||||
fn make_lsp_adapter_delegate(
|
fn make_lsp_adapter_delegate(
|
||||||
project: &Model<Project>,
|
project: &Model<Project>,
|
||||||
cx: &mut AppContext,
|
cx: &mut AppContext,
|
||||||
) -> Result<Arc<dyn LspAdapterDelegate>> {
|
) -> Result<Option<Arc<dyn LspAdapterDelegate>>> {
|
||||||
project.update(cx, |project, cx| {
|
project.update(cx, |project, cx| {
|
||||||
// TODO: Find the right worktree.
|
// TODO: Find the right worktree.
|
||||||
let worktree = project
|
let Some(worktree) = project.worktrees(cx).next() else {
|
||||||
.worktrees(cx)
|
return Ok(None::<Arc<dyn LspAdapterDelegate>>);
|
||||||
.next()
|
};
|
||||||
.ok_or_else(|| anyhow!("no worktrees when constructing LocalLspAdapterDelegate"))?;
|
|
||||||
let http_client = project.client().http_client().clone();
|
let http_client = project.client().http_client().clone();
|
||||||
project.lsp_store().update(cx, |lsp_store, cx| {
|
project.lsp_store().update(cx, |lsp_store, cx| {
|
||||||
Ok(LocalLspAdapterDelegate::new(
|
Ok(Some(LocalLspAdapterDelegate::new(
|
||||||
lsp_store,
|
lsp_store,
|
||||||
&worktree,
|
&worktree,
|
||||||
http_client,
|
http_client,
|
||||||
project.fs().clone(),
|
project.fs().clone(),
|
||||||
cx,
|
cx,
|
||||||
) as Arc<dyn LspAdapterDelegate>)
|
) as Arc<dyn LspAdapterDelegate>))
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue