return ref ranges from gotodef

This commit is contained in:
Aleksey Kladov 2019-01-11 14:14:09 +03:00
parent f9ed8d4d23
commit 3aaf20bd6e
4 changed files with 24 additions and 10 deletions

View file

@ -6,7 +6,7 @@ use languageserver_types::{
};
use ra_ide_api::{
CompletionItem, CompletionItemKind, FileId, FilePosition, FileRange, FileSystemEdit,
InsertText, NavigationTarget, SourceChange, SourceFileEdit,
InsertText, NavigationTarget, SourceChange, SourceFileEdit, RangeInfo,
LineCol, LineIndex, translate_offset_with_edit
};
use ra_syntax::{SyntaxKind, TextRange, TextUnit};
@ -349,6 +349,15 @@ impl TryConvWith for &NavigationTarget {
}
}
impl TryConvWith for &RangeInfo<NavigationTarget> {
type Ctx = ServerWorld;
type Output = Location;
fn try_conv_with(self, world: &ServerWorld) -> Result<Location> {
let line_index = world.analysis().file_line_index(self.info.file_id());
to_location(self.info.file_id(), self.info.range(), &world, &line_index)
}
}
pub fn to_location(
file_id: FileId,
range: TextRange,