Skip to content

Commit

Permalink
Clarify /docs error message when target/doc does not exist (zed-i…
Browse files Browse the repository at this point in the history
…ndustries#14364)

This PR improves the error message shown by the `/docs` slash command
when indexing fails due to the absence of `target/doc`.

We now distinguish between the overall `target/doc` directory missing
and an individual crate directory missing beneath it.

Release Notes:

- N/A
  • Loading branch information
maxdeviant authored Jul 12, 2024
1 parent ca80343 commit 85d77a3
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions crates/indexed_docs/src/providers/rustdoc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,18 @@ impl IndexedDocsProvider for LocalRustdocProvider {
let crate_name = crate_name.clone();
let item = item.cloned();
async move {
let mut local_cargo_doc_path = cargo_workspace_root.join("target/doc");
local_cargo_doc_path.push(crate_name.as_ref());
let target_doc_path = cargo_workspace_root.join("target/doc");
let mut local_cargo_doc_path = target_doc_path.join(crate_name.as_ref());

if !fs.is_dir(&local_cargo_doc_path).await {
bail!("docs directory for '{crate_name}' does not exist. run `cargo doc`");
let cargo_doc_exists_at_all = fs.is_dir(&target_doc_path).await;
if cargo_doc_exists_at_all {
bail!(
"no docs directory for '{crate_name}'. if this is a valid crate name, try running `cargo doc`"
);
} else {
bail!("no cargo doc directory. run `cargo doc`");
}
}

if let Some(item) = item {
Expand Down

0 comments on commit 85d77a3

Please sign in to comment.