Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-db/src/defs.rs')
| -rw-r--r-- | crates/ide-db/src/defs.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/crates/ide-db/src/defs.rs b/crates/ide-db/src/defs.rs index 8de885f499..35aaf86469 100644 --- a/crates/ide-db/src/defs.rs +++ b/crates/ide-db/src/defs.rs @@ -24,6 +24,12 @@ use crate::documentation::{Documentation, HasDocs}; use crate::famous_defs::FamousDefs; use crate::RootDatabase; +#[derive(Default)] +pub struct HoverDisplayConfig { + pub trait_item_display_num: Option<usize>, + // todo: add config for struct & enum +} + // FIXME: a more precise name would probably be `Symbol`? #[derive(Debug, PartialEq, Eq, Copy, Clone, Hash)] pub enum Definition { @@ -213,7 +219,7 @@ impl Definition { }) } - pub fn label(&self, db: &RootDatabase, max_size: Option<usize>) -> String { + pub fn label(&self, db: &RootDatabase, hover_display_config: HoverDisplayConfig) -> String { match *self { Definition::Macro(it) => it.display(db).to_string(), Definition::Field(it) => it.display(db).to_string(), @@ -224,7 +230,9 @@ impl Definition { Definition::Variant(it) => it.display(db).to_string(), Definition::Const(it) => it.display(db).to_string(), Definition::Static(it) => it.display(db).to_string(), - Definition::Trait(it) => it.display_truncated(db, max_size).to_string(), + Definition::Trait(it) => { + it.display_truncated(db, hover_display_config.trait_item_display_num).to_string() + } Definition::TraitAlias(it) => it.display(db).to_string(), Definition::TypeAlias(it) => it.display(db).to_string(), Definition::BuiltinType(it) => it.name().display(db).to_string(), |