From 2ac20b05f18895654ced1d243e99092441a94f86 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 9 Feb 2021 18:13:11 +0300 Subject: Cleanup tests --- crates/ide/src/fixture.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'crates/ide/src/fixture.rs') diff --git a/crates/ide/src/fixture.rs b/crates/ide/src/fixture.rs index cc8218885..cc6641ba1 100644 --- a/crates/ide/src/fixture.rs +++ b/crates/ide/src/fixture.rs @@ -1,5 +1,6 @@ //! Utilities for creating `Analysis` instances for tests. use ide_db::base_db::fixture::ChangeFixture; +use syntax::{TextRange, TextSize}; use test_utils::{extract_annotations, RangeOrOffset}; use crate::{Analysis, AnalysisHost, FileId, FilePosition, FileRange}; @@ -68,3 +69,18 @@ pub(crate) fn annotations(ra_fixture: &str) -> (Analysis, FilePosition, Vec<(Fil .collect(); (host.analysis(), FilePosition { file_id, offset }, annotations) } + +pub(crate) fn nav_target_annotation(ra_fixture: &str) -> (Analysis, FilePosition, FileRange) { + let (analysis, position, mut annotations) = annotations(ra_fixture); + let (mut expected, data) = annotations.pop().unwrap(); + assert!(annotations.is_empty()); + match data.as_str() { + "" => (), + "file" => { + expected.range = + TextRange::up_to(TextSize::of(&*analysis.file_text(expected.file_id).unwrap())) + } + data => panic!("bad data: {}", data), + } + (analysis, position, expected) +} -- cgit v1.2.3