Add ConstParams to the ide layer

This commit is contained in:
Lukas Wirth 2021-01-01 10:07:01 +01:00
parent 0acdb73076
commit 18bf2e5af5
13 changed files with 66 additions and 5 deletions

View file

@ -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`