From 61360fdfec981eadef1eefb595c8b32c951771e8 Mon Sep 17 00:00:00 2001 From: Edwin Cheng Date: Sun, 15 Dec 2019 01:20:07 +0800 Subject: Fix original_source find order --- crates/ra_ide/src/display/navigation_target.rs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'crates/ra_ide/src/display/navigation_target.rs') diff --git a/crates/ra_ide/src/display/navigation_target.rs b/crates/ra_ide/src/display/navigation_target.rs index 6a6b49afd..6a2bf7273 100644 --- a/crates/ra_ide/src/display/navigation_target.rs +++ b/crates/ra_ide/src/display/navigation_target.rs @@ -7,10 +7,14 @@ use ra_syntax::{ ast::{self, DocCommentsOwner, NameOwner}, match_ast, AstNode, SmolStr, SyntaxKind::{self, BIND_PAT, TYPE_PARAM}, - TextRange, + SyntaxNode, TextRange, }; -use crate::{db::RootDatabase, expand::original_range, FileSymbol}; +use crate::{ + db::RootDatabase, + expand::{original_range_by_kind, OriginalRangeKind}, + FileRange, FileSymbol, +}; use super::short_label::ShortLabel; @@ -416,3 +420,14 @@ pub(crate) fn description_from_symbol(db: &RootDatabase, symbol: &FileSymbol) -> } } } + +fn original_range(db: &RootDatabase, node: InFile<&SyntaxNode>) -> FileRange { + if let Some(range) = original_range_by_kind(db, node, OriginalRangeKind::CallToken) { + return range; + } + if let Some(range) = original_range_by_kind(db, node, OriginalRangeKind::WholeCall) { + return range; + } + + FileRange { file_id: node.file_id.original_file(db), range: node.value.text_range() } +} -- cgit v1.2.3