project: Print error causes when failing to spawn lsp command (#36163)
cc https://github.com/zed-industries/zed/issues/34666 Display printing anyhow errors only renders the error itself, but not any of its causes so we've been dropping the important context when showing the issue to the users. Release Notes: - N/A
This commit is contained in:
parent
0291db0d78
commit
8e4f30abcb
2 changed files with 11 additions and 7 deletions
|
@ -318,6 +318,8 @@ impl LanguageServer {
|
|||
} else {
|
||||
root_path.parent().unwrap_or_else(|| Path::new("/"))
|
||||
};
|
||||
let root_uri = Url::from_file_path(&working_dir)
|
||||
.map_err(|()| anyhow!("{working_dir:?} is not a valid URI"))?;
|
||||
|
||||
log::info!(
|
||||
"starting language server process. binary path: {:?}, working directory: {:?}, args: {:?}",
|
||||
|
@ -345,8 +347,6 @@ impl LanguageServer {
|
|||
let stdin = server.stdin.take().unwrap();
|
||||
let stdout = server.stdout.take().unwrap();
|
||||
let stderr = server.stderr.take().unwrap();
|
||||
let root_uri = Url::from_file_path(&working_dir)
|
||||
.map_err(|()| anyhow!("{working_dir:?} is not a valid URI"))?;
|
||||
let server = Self::new_internal(
|
||||
server_id,
|
||||
server_name,
|
||||
|
|
|
@ -390,13 +390,17 @@ impl LocalLspStore {
|
|||
delegate.update_status(
|
||||
adapter.name(),
|
||||
BinaryStatus::Failed {
|
||||
error: format!("{err}\n-- stderr--\n{log}"),
|
||||
error: if log.is_empty() {
|
||||
format!("{err:#}")
|
||||
} else {
|
||||
format!("{err:#}\n-- stderr --\n{log}")
|
||||
},
|
||||
},
|
||||
);
|
||||
let message =
|
||||
format!("Failed to start language server {server_name:?}: {err:#?}");
|
||||
log::error!("{message}");
|
||||
log::error!("server stderr: {log}");
|
||||
log::error!("Failed to start language server {server_name:?}: {err:?}");
|
||||
if !log.is_empty() {
|
||||
log::error!("server stderr: {log}");
|
||||
}
|
||||
None
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue