From c45221907adde640208a9e52636f4845d4654994 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 18 Dec 2020 23:00:43 +0300 Subject: Deduplicate highlight tags and symbol kinds Curiously, LSP uses different enums for those, and unsurprising and annoyingly, there are things which exist in one but not in the other. Let's not repeat the mistake and unify the two things --- crates/ide/src/display/navigation_target.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'crates/ide/src/display/navigation_target.rs') diff --git a/crates/ide/src/display/navigation_target.rs b/crates/ide/src/display/navigation_target.rs index cbdd4ecc2..7d0514105 100644 --- a/crates/ide/src/display/navigation_target.rs +++ b/crates/ide/src/display/navigation_target.rs @@ -18,13 +18,14 @@ use crate::FileSymbol; use super::short_label::ShortLabel; -#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)] pub enum SymbolKind { Module, Impl, Field, TypeParam, LifetimeParam, + ValueParam, SelfParam, Local, Function, @@ -406,10 +407,11 @@ impl ToNav for hir::Local { Some(it) => it.to_string().into(), None => "".into(), }; + let kind = if self.is_param(db) { SymbolKind::ValueParam } else { SymbolKind::Local }; NavigationTarget { file_id: full_range.file_id, name, - kind: Some(SymbolKind::Local), + kind: Some(kind), full_range: full_range.range, focus_range: None, container_name: None, -- cgit v1.2.3