Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/moniker.rs')
-rw-r--r--crates/ide/src/moniker.rs17
1 files changed, 13 insertions, 4 deletions
diff --git a/crates/ide/src/moniker.rs b/crates/ide/src/moniker.rs
index 2e93d895f0..0f75abe55c 100644
--- a/crates/ide/src/moniker.rs
+++ b/crates/ide/src/moniker.rs
@@ -3,7 +3,7 @@
use hir::{db::DefDatabase, AsAssocItem, AssocItemContainer, Crate, Name, Semantics};
use ide_db::{
- base_db::{CrateOrigin, FileId, FileLoader, FilePosition},
+ base_db::{CrateOrigin, FileId, FileLoader, FilePosition, LangCrateOrigin},
defs::{Definition, IdentClass},
helpers::pick_best_token,
RootDatabase,
@@ -151,11 +151,20 @@ pub(crate) fn def_to_moniker(
let name = krate.display_name(db)?.to_string();
let (repo, version) = match krate.origin(db) {
CrateOrigin::CratesIo { repo } => (repo?, krate.version(db)?),
- CrateOrigin::Lang => (
+ CrateOrigin::Lang(lang) => (
"https://github.com/rust-lang/rust/".to_string(),
- "compiler_version".to_string(),
+ format!(
+ "https://github.com/rust-lang/rust/library/{}",
+ match lang {
+ LangCrateOrigin::Alloc => "alloc",
+ LangCrateOrigin::Core => "core",
+ LangCrateOrigin::ProcMacro => "proc_macro",
+ LangCrateOrigin::Std => "std",
+ LangCrateOrigin::Test => "test",
+ LangCrateOrigin::Other => "",
+ }
+ ),
),
- CrateOrigin::Unknown => return None,
};
PackageInformation { name, repo, version }
},