aboutsummaryrefslogtreecommitdiff
path: root/crates/ide
diff options
context:
space:
mode:
authorLukas Wirth <[email protected]>2021-03-16 15:36:34 +0000
committerLukas Wirth <[email protected]>2021-03-16 15:36:34 +0000
commit4d1e1daa31239cb71a81c6958c1b9137274fd189 (patch)
tree11ceca4b2d4f0aa866baa1b9ea42af40dab99866 /crates/ide
parentb4ed3e1551f828d44dcd8e0caf08420438e5eb1a (diff)
Implement HirDisplay for some more types
Diffstat (limited to 'crates/ide')
-rw-r--r--crates/ide/src/hover.rs18
1 files changed, 4 insertions, 14 deletions
diff --git a/crates/ide/src/hover.rs b/crates/ide/src/hover.rs
index 8d45b4875..325014622 100644
--- a/crates/ide/src/hover.rs
+++ b/crates/ide/src/hover.rs
@@ -1,6 +1,6 @@
1use either::Either; 1use either::Either;
2use hir::{ 2use hir::{
3 Adt, AsAssocItem, AssocItemContainer, GenericParam, HasAttrs, HasSource, HirDisplay, Module, 3 AsAssocItem, AssocItemContainer, GenericParam, HasAttrs, HasSource, HirDisplay, Module,
4 ModuleDef, Semantics, 4 ModuleDef, Semantics,
5}; 5};
6use ide_db::{ 6use ide_db::{
@@ -339,9 +339,7 @@ fn hover_for_definition(
339 Definition::ModuleDef(it) => match it { 339 Definition::ModuleDef(it) => match it {
340 ModuleDef::Module(it) => from_hir_fmt(db, it, mod_path), 340 ModuleDef::Module(it) => from_hir_fmt(db, it, mod_path),
341 ModuleDef::Function(it) => from_hir_fmt(db, it, mod_path), 341 ModuleDef::Function(it) => from_hir_fmt(db, it, mod_path),
342 ModuleDef::Adt(Adt::Struct(it)) => from_hir_fmt(db, it, mod_path), 342 ModuleDef::Adt(it) => from_hir_fmt(db, it, mod_path),
343 ModuleDef::Adt(Adt::Union(it)) => from_hir_fmt(db, it, mod_path),
344 ModuleDef::Adt(Adt::Enum(it)) => from_hir_fmt(db, it, mod_path),
345 ModuleDef::Variant(it) => from_hir_fmt(db, it, mod_path), 343 ModuleDef::Variant(it) => from_hir_fmt(db, it, mod_path),
346 ModuleDef::Const(it) => from_hir_fmt(db, it, mod_path), 344 ModuleDef::Const(it) => from_hir_fmt(db, it, mod_path),
347 ModuleDef::Static(it) => from_hir_fmt(db, it, mod_path), 345 ModuleDef::Static(it) => from_hir_fmt(db, it, mod_path),
@@ -353,18 +351,10 @@ fn hover_for_definition(
353 }, 351 },
354 Definition::Local(it) => hover_for_local(it, db), 352 Definition::Local(it) => hover_for_local(it, db),
355 Definition::SelfType(impl_def) => { 353 Definition::SelfType(impl_def) => {
356 impl_def.target_ty(db).as_adt().and_then(|adt| match adt { 354 impl_def.target_ty(db).as_adt().and_then(|adt| from_hir_fmt(db, adt, mod_path))
357 Adt::Struct(it) => from_hir_fmt(db, it, mod_path),
358 Adt::Union(it) => from_hir_fmt(db, it, mod_path),
359 Adt::Enum(it) => from_hir_fmt(db, it, mod_path),
360 })
361 } 355 }
356 Definition::GenericParam(it) => from_hir_fmt(db, it, None),
362 Definition::Label(it) => Some(Markup::fenced_block(&it.name(db))), 357 Definition::Label(it) => Some(Markup::fenced_block(&it.name(db))),
363 Definition::GenericParam(it) => match it {
364 GenericParam::TypeParam(it) => Some(Markup::fenced_block(&it.display(db))),
365 GenericParam::LifetimeParam(it) => Some(Markup::fenced_block(&it.name(db))),
366 GenericParam::ConstParam(it) => Some(Markup::fenced_block(&it.display(db))),
367 },
368 }; 358 };
369 359
370 fn from_hir_fmt<D>(db: &RootDatabase, def: D, mod_path: Option<String>) -> Option<Markup> 360 fn from_hir_fmt<D>(db: &RootDatabase, def: D, mod_path: Option<String>) -> Option<Markup>