From 18bf2e5af5875f036b321bcf9e07e9904c02510e Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Fri, 1 Jan 2021 10:07:01 +0100 Subject: Add ConstParams to the ide layer --- crates/ide/src/display/navigation_target.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'crates/ide/src/display') diff --git a/crates/ide/src/display/navigation_target.rs b/crates/ide/src/display/navigation_target.rs index 6431e7d6d..bcde2b6f1 100644 --- a/crates/ide/src/display/navigation_target.rs +++ b/crates/ide/src/display/navigation_target.rs @@ -24,6 +24,7 @@ pub enum SymbolKind { Impl, Field, TypeParam, + ConstParam, LifetimeParam, ValueParam, SelfParam, @@ -225,6 +226,7 @@ impl TryToNav for Definition { Definition::TypeParam(it) => Some(it.to_nav(db)), Definition::LifetimeParam(it) => Some(it.to_nav(db)), Definition::Label(it) => Some(it.to_nav(db)), + Definition::ConstParam(it) => Some(it.to_nav(db)), } } } @@ -485,6 +487,23 @@ impl ToNav for hir::LifetimeParam { } } +impl ToNav for hir::ConstParam { + fn to_nav(&self, db: &RootDatabase) -> NavigationTarget { + let src = self.source(db); + let full_range = src.value.syntax().text_range(); + NavigationTarget { + file_id: src.file_id.original_file(db), + name: self.name(db).to_string().into(), + kind: Some(SymbolKind::ConstParam), + full_range, + focus_range: src.value.name().map(|n| n.syntax().text_range()), + container_name: None, + description: None, + docs: None, + } + } +} + /// Get a description of a symbol. /// /// e.g. `struct Name`, `enum Name`, `fn Name` -- cgit v1.2.3