Add highlighting of items from other crates

This commit is contained in:
Aramis Razzaghipour 2021-05-23 23:45:26 +10:00
parent 064ff633f6
commit 4fd5248749
No known key found for this signature in database
GPG key ID: F788F7E990136003
6 changed files with 103 additions and 12 deletions

View file

@ -673,6 +673,11 @@ impl Variant {
pub fn module(self, db: &dyn HirDatabase) -> Module {
self.parent.module(db)
}
pub fn krate(self, db: &dyn HirDatabase) -> Crate {
self.module(db).krate()
}
pub fn parent_enum(self, _db: &dyn HirDatabase) -> Enum {
self.parent
}
@ -767,6 +772,10 @@ impl VariantDef {
}
}
pub fn krate(self, db: &dyn HirDatabase) -> Crate {
self.module(db).krate()
}
pub fn name(&self, db: &dyn HirDatabase) -> Name {
match self {
VariantDef::Struct(s) => s.name(db),
@ -1074,6 +1083,10 @@ impl Trait {
Module { id: self.id.lookup(db.upcast()).container }
}
pub fn krate(self, db: &dyn HirDatabase) -> Crate {
self.module(db).krate()
}
pub fn name(self, db: &dyn HirDatabase) -> Name {
db.trait_data(self.id).name.clone()
}
@ -1178,6 +1191,10 @@ impl MacroDef {
Some(Module { id: def_map.module_id(module_id) })
}
pub fn krate(self, db: &dyn HirDatabase) -> Option<Crate> {
self.module(db).map(Module::krate)
}
/// XXX: this parses the file
pub fn name(self, db: &dyn HirDatabase) -> Option<Name> {
match self.source(db)?.value {