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.rs | 17 |
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 } }, |