ide: Generate monikers for local crates.
This commit is contained in:
@@ -106,12 +106,12 @@ impl LsifManager<'_> {
|
||||
manager: "cargo".to_string(),
|
||||
uri: None,
|
||||
content: None,
|
||||
repository: Some(lsif::Repository {
|
||||
url: pi.repo,
|
||||
repository: pi.repo.map(|url| lsif::Repository {
|
||||
url,
|
||||
r#type: "git".to_string(),
|
||||
commit_id: None,
|
||||
}),
|
||||
version: Some(pi.version),
|
||||
version: pi.version,
|
||||
}));
|
||||
self.package_map.insert(package_information, result_set_id);
|
||||
result_set_id
|
||||
|
||||
@@ -231,7 +231,7 @@ fn token_to_symbol(token: &TokenStaticData) -> Option<scip_types::Symbol> {
|
||||
package: Some(scip_types::Package {
|
||||
manager: "cargo".to_string(),
|
||||
name: package_name,
|
||||
version,
|
||||
version: version.unwrap_or_else(|| ".".to_string()),
|
||||
..Default::default()
|
||||
})
|
||||
.into(),
|
||||
@@ -415,4 +415,42 @@ pub mod module {
|
||||
"",
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn global_symbol_for_pub_struct() {
|
||||
check_symbol(
|
||||
r#"
|
||||
//- /lib.rs crate:main
|
||||
mod foo;
|
||||
|
||||
fn main() {
|
||||
let _bar = foo::Bar { i: 0 };
|
||||
}
|
||||
//- /foo.rs
|
||||
pub struct Bar$0 {
|
||||
pub i: i32,
|
||||
}
|
||||
"#,
|
||||
"rust-analyzer cargo main . foo/Bar#",
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn global_symbol_for_pub_struct_reference() {
|
||||
check_symbol(
|
||||
r#"
|
||||
//- /lib.rs crate:main
|
||||
mod foo;
|
||||
|
||||
fn main() {
|
||||
let _bar = foo::Bar$0 { i: 0 };
|
||||
}
|
||||
//- /foo.rs
|
||||
pub struct Bar {
|
||||
pub i: i32,
|
||||
}
|
||||
"#,
|
||||
"rust-analyzer cargo main . foo/Bar#",
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user