Open a buffer for every language server error when clicking on status

This commit is contained in:
Antonio Scandurra 2022-06-16 09:59:47 +02:00
parent 7239aac532
commit 4e4210ac39
9 changed files with 180 additions and 109 deletions

View file

@ -184,7 +184,7 @@ pub enum LanguageServerBinaryStatus {
Downloading,
Downloaded,
Cached,
Failed,
Failed { error: String },
}
pub struct LanguageRegistry {
@ -382,7 +382,7 @@ async fn get_server_binary_path(
statuses.clone(),
)
.await;
if path.is_err() {
if let Err(error) = path.as_ref() {
if let Some(cached_path) = adapter.cached_server_binary(container_dir).await {
statuses
.broadcast((language.clone(), LanguageServerBinaryStatus::Cached))
@ -390,7 +390,12 @@ async fn get_server_binary_path(
return Ok(cached_path);
} else {
statuses
.broadcast((language.clone(), LanguageServerBinaryStatus::Failed))
.broadcast((
language.clone(),
LanguageServerBinaryStatus::Failed {
error: format!("{:?}", error),
},
))
.await?;
}
}