From 01bca7114c0567961c875a1df5a60748cd872073 Mon Sep 17 00:00:00 2001 From: Wilco Kusee Date: Fri, 22 Mar 2019 17:10:20 +0100 Subject: Simplify changes and fix tests --- crates/ra_ide_api/src/join_lines.rs | 13 ++++++------- crates/ra_ide_api/src/lib.rs | 6 ++++-- crates/ra_ide_api/src/test_utils.rs | 15 +++++---------- 3 files changed, 15 insertions(+), 19 deletions(-) (limited to 'crates/ra_ide_api/src') diff --git a/crates/ra_ide_api/src/join_lines.rs b/crates/ra_ide_api/src/join_lines.rs index 6e84e4b10..8fb3eaa06 100644 --- a/crates/ra_ide_api/src/join_lines.rs +++ b/crates/ra_ide_api/src/join_lines.rs @@ -1,5 +1,4 @@ use itertools::Itertools; -use ra_db::FileRange; use ra_syntax::{ SourceFile, TextRange, TextUnit, AstNode, SyntaxNode, SyntaxKind::{self, WHITESPACE, COMMA, R_CURLY, R_PAREN, R_BRACK}, @@ -12,17 +11,17 @@ use ra_fmt::{ }; use ra_text_edit::{TextEdit, TextEditBuilder}; -pub fn join_lines(file: &SourceFile, frange: FileRange) -> TextEdit { - let range = if frange.range.is_empty() { +pub fn join_lines(file: &SourceFile, range: TextRange) -> TextEdit { + let range = if range.is_empty() { let syntax = file.syntax(); - let text = syntax.text().slice(frange.range.start()..); + let text = syntax.text().slice(range.start()..); let pos = match text.find('\n') { None => return TextEditBuilder::default().finish(), Some(pos) => pos, }; - TextRange::offset_len(frange.range.start() + pos, TextUnit::of_char('\n')) + TextRange::offset_len(range.start() + pos, TextUnit::of_char('\n')) } else { - frange.range + range }; let node = find_covering_node(file.syntax(), range); @@ -507,7 +506,7 @@ fn foo() { let (sel, before) = extract_range(before); let file = SourceFile::parse(&before); let result = join_lines(&file, sel); - let actual = result.edit.apply(&before); + let actual = result.apply(&before); assert_eq_text!(after, &actual); } diff --git a/crates/ra_ide_api/src/lib.rs b/crates/ra_ide_api/src/lib.rs index d4dba1eeb..a838c30da 100644 --- a/crates/ra_ide_api/src/lib.rs +++ b/crates/ra_ide_api/src/lib.rs @@ -279,8 +279,10 @@ impl Analysis { /// stuff like trailing commas. pub fn join_lines(&self, frange: FileRange) -> SourceChange { let file = self.db.parse(frange.file_id); - let file_edit = - SourceFileEdit { file_id: frange.file_id, edit: join_lines::join_lines(&file, frange) }; + let file_edit = SourceFileEdit { + file_id: frange.file_id, + edit: join_lines::join_lines(&file, frange.range), + }; SourceChange { label: "join lines".to_string(), source_file_edits: vec![file_edit], diff --git a/crates/ra_ide_api/src/test_utils.rs b/crates/ra_ide_api/src/test_utils.rs index bfac0fce3..d0bd3a1e4 100644 --- a/crates/ra_ide_api/src/test_utils.rs +++ b/crates/ra_ide_api/src/test_utils.rs @@ -1,9 +1,9 @@ use ra_syntax::{SourceFile, TextUnit}; +use ra_text_edit::TextEdit; -use crate::LocalEdit; pub use test_utils::*; -pub fn check_action Option>( +pub fn check_action Option>( before: &str, after: &str, f: F, @@ -11,14 +11,9 @@ pub fn check_action Option>( let (before_cursor_pos, before) = extract_offset(before); let file = SourceFile::parse(&before); let result = f(&file, before_cursor_pos).expect("code action is not applicable"); - let actual = result.edit.apply(&before); - let actual_cursor_pos = match result.cursor_position { - None => result - .edit - .apply_to_offset(before_cursor_pos) - .expect("cursor position is affected by the edit"), - Some(off) => off, - }; + let actual = result.apply(&before); + let actual_cursor_pos = + result.apply_to_offset(before_cursor_pos).expect("cursor position is affected by the edit"); let actual = add_cursor(&actual, actual_cursor_pos); assert_eq_text!(after, &actual); } -- cgit v1.2.3