Skip to content

Commit 921689b

Browse files
committed
kill text utils
1 parent f553837 commit 921689b

File tree

4 files changed

+13
-19
lines changed

4 files changed

+13
-19
lines changed

crates/ra_syntax/src/lib.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ mod parser_impl;
3131
mod reparsing;
3232
mod string_lexing;
3333
mod syntax_kinds;
34-
pub mod text_utils;
3534
/// Utilities for simple uses of the parser.
3635
pub mod utils;
3736
mod validation;
@@ -75,8 +74,7 @@ impl SourceFile {
7574
.map(|(green_node, errors)| SourceFile::new(green_node, errors))
7675
}
7776
fn full_reparse(&self, edit: &AtomTextEdit) -> TreePtr<SourceFile> {
78-
let text =
79-
text_utils::replace_range(self.syntax().text().to_string(), edit.delete, &edit.insert);
77+
let text = edit.apply(self.syntax().text().to_string());
8078
SourceFile::parse(&text)
8179
}
8280
pub fn errors(&self) -> Vec<SyntaxError> {

crates/ra_syntax/src/reparsing.rs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use crate::grammar;
33
use crate::lexer::{tokenize, Token};
44
use crate::parser_api::Parser;
55
use crate::parser_impl;
6-
use crate::text_utils::replace_range;
76
use crate::yellow::{self, GreenNode, SyntaxError, SyntaxNode};
87
use crate::{SyntaxKind::*, TextRange, TextUnit};
98
use ra_text_edit::AtomTextEdit;
@@ -62,11 +61,8 @@ fn reparse_block<'node>(
6261
}
6362

6463
fn get_text_after_edit(node: &SyntaxNode, edit: &AtomTextEdit) -> String {
65-
replace_range(
66-
node.text().to_string(),
67-
edit.delete - node.range().start(),
68-
&edit.insert,
69-
)
64+
let edit = AtomTextEdit::replace(edit.delete - node.range().start(), edit.insert.clone());
65+
edit.apply(node.text().to_string())
7066
}
7167

7268
fn is_contextual_kw(text: &str) -> bool {
@@ -156,7 +152,7 @@ fn merge_errors(
156152
mod tests {
157153
use test_utils::{extract_range, assert_eq_text};
158154

159-
use crate::{SourceFile, AstNode, text_utils::replace_range, utils::dump_tree};
155+
use crate::{SourceFile, AstNode, utils::dump_tree};
160156
use super::*;
161157

162158
fn do_check<F>(before: &str, replace_with: &str, reparser: F)
@@ -167,7 +163,8 @@ mod tests {
167163
) -> Option<(&'a SyntaxNode, GreenNode, Vec<SyntaxError>)>,
168164
{
169165
let (range, before) = extract_range(before);
170-
let after = replace_range(before.clone(), range, replace_with);
166+
let edit = AtomTextEdit::replace(range, replace_with.to_owned());
167+
let after = edit.apply(before.clone());
171168

172169
let fully_reparsed = SourceFile::parse(&after);
173170
let incrementally_reparsed = {

crates/ra_syntax/src/text_utils.rs

Lines changed: 0 additions & 8 deletions
This file was deleted.

crates/ra_text_edit/src/lib.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,11 @@ impl AtomTextEdit {
2828
pub fn insert(offset: TextUnit, text: String) -> AtomTextEdit {
2929
AtomTextEdit::replace(TextRange::offset_len(offset, 0.into()), text)
3030
}
31+
32+
pub fn apply(&self, mut text: String) -> String {
33+
let start = u32::from(self.delete.start()) as usize;
34+
let end = u32::from(self.delete.end()) as usize;
35+
text.replace_range(start..end, &self.insert);
36+
text
37+
}
3138
}

0 commit comments

Comments
 (0)