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
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 {