mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-28 12:54:58 +00:00
Move text-edit into ide-db
This commit is contained in:
parent
80e9d014be
commit
64f56f458f
63 changed files with 684 additions and 707 deletions
|
@ -5,7 +5,6 @@
|
|||
use std::str::{self, FromStr};
|
||||
|
||||
use parser::Edition;
|
||||
use text_edit::Indel;
|
||||
|
||||
use crate::{validation, AstNode, SourceFile, TextRange};
|
||||
|
||||
|
@ -22,7 +21,8 @@ pub fn check_parser(text: &str) {
|
|||
#[derive(Debug, Clone)]
|
||||
pub struct CheckReparse {
|
||||
text: String,
|
||||
edit: Indel,
|
||||
delete: TextRange,
|
||||
insert: String,
|
||||
edited_text: String,
|
||||
}
|
||||
|
||||
|
@ -43,14 +43,13 @@ impl CheckReparse {
|
|||
TextRange::at(delete_start.try_into().unwrap(), delete_len.try_into().unwrap());
|
||||
let edited_text =
|
||||
format!("{}{}{}", &text[..delete_start], &insert, &text[delete_start + delete_len..]);
|
||||
let edit = Indel { insert, delete };
|
||||
Some(CheckReparse { text, edit, edited_text })
|
||||
Some(CheckReparse { text, insert, delete, edited_text })
|
||||
}
|
||||
|
||||
#[allow(clippy::print_stderr)]
|
||||
pub fn run(&self) {
|
||||
let parse = SourceFile::parse(&self.text, Edition::CURRENT);
|
||||
let new_parse = parse.reparse(&self.edit, Edition::CURRENT);
|
||||
let new_parse = parse.reparse(self.delete, &self.insert, Edition::CURRENT);
|
||||
check_file_invariants(&new_parse.tree());
|
||||
assert_eq!(&new_parse.tree().syntax().text().to_string(), &self.edited_text);
|
||||
let full_reparse = SourceFile::parse(&self.edited_text, Edition::CURRENT);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue