From 70b8331fd51774f764affded4127c2ef25df87a1 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Fri, 3 Dec 2021 17:10:56 +0100 Subject: [PATCH] Basic hover for builtin-attr and tool modules --- crates/hir/src/lib.rs | 10 ++++++++++ crates/ide/src/hover/render.rs | 5 +++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs index cfa674cafa6..e64a8182c9c 100644 --- a/crates/hir/src/lib.rs +++ b/crates/hir/src/lib.rs @@ -2031,6 +2031,11 @@ pub(crate) fn by_name(name: &str) -> Option { // FIXME: def maps registered attrs? hir_def::builtin_attr::find_builtin_attr_idx(name).map(Self) } + + pub fn name(&self, _: &dyn HirDatabase) -> &str { + // FIXME: Return a `Name` here + hir_def::builtin_attr::INERT_ATTRIBUTES[self.0].name + } } #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] @@ -2041,6 +2046,11 @@ pub(crate) fn by_name(name: &str) -> Option { // FIXME: def maps registered tools hir_def::builtin_attr::TOOL_MODULES.iter().position(|&tool| tool == name).map(Self) } + + pub fn name(&self, _: &dyn HirDatabase) -> &str { + // FIXME: Return a `Name` here + hir_def::builtin_attr::TOOL_MODULES[self.0] + } } #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] diff --git a/crates/ide/src/hover/render.rs b/crates/ide/src/hover/render.rs index e72ed8c2b28..46f5b2e35be 100644 --- a/crates/ide/src/hover/render.rs +++ b/crates/ide/src/hover/render.rs @@ -369,8 +369,9 @@ pub(super) fn definition( } Definition::GenericParam(it) => label_and_docs(db, it), Definition::Label(it) => return Some(Markup::fenced_block(&it.name(db))), - Definition::BuiltinAttr(_) => return None, // FIXME - Definition::Tool(_) => return None, // FIXME + // FIXME: We should be able to show more info about these + Definition::BuiltinAttr(it) => return Some(Markup::fenced_block(&it.name(db))), + Definition::Tool(it) => return Some(Markup::fenced_block(&it.name(db))), }; markup(docs.filter(|_| config.documentation.is_some()).map(Into::into), label, mod_path) -- 2.44.0