Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/syntax/src/ast/edit_in_place.rs')
-rw-r--r--crates/syntax/src/ast/edit_in_place.rs104
1 files changed, 0 insertions, 104 deletions
diff --git a/crates/syntax/src/ast/edit_in_place.rs b/crates/syntax/src/ast/edit_in_place.rs
index 93ca27c8e3..2b947f2d0f 100644
--- a/crates/syntax/src/ast/edit_in_place.rs
+++ b/crates/syntax/src/ast/edit_in_place.rs
@@ -291,110 +291,6 @@ impl ast::RecordExprField {
}
}
-impl ast::RecordPatFieldList {
- pub fn add_field(&self, field: ast::RecordPatField) {
- let is_multiline = self.syntax().text().contains_char('\n');
- let whitespace = if is_multiline {
- let indent = IndentLevel::from_node(self.syntax()) + 1;
- make::tokens::whitespace(&format!("\n{indent}"))
- } else {
- make::tokens::single_space()
- };
-
- if is_multiline {
- normalize_ws_between_braces(self.syntax());
- }
-
- let position = match self.fields().last() {
- Some(last_field) => {
- let syntax = last_field.syntax();
- let comma = get_or_insert_comma_after(syntax);
- ted::Position::after(comma)
- }
- None => match self.l_curly_token() {
- Some(it) => ted::Position::after(it),
- None => ted::Position::last_child_of(self.syntax()),
- },
- };
-
- ted::insert_all(position, vec![whitespace.into(), field.syntax().clone().into()]);
- if is_multiline {
- ted::insert(ted::Position::after(field.syntax()), ast::make::token(T![,]));
- }
- }
-}
-
-fn get_or_insert_comma_after(syntax: &SyntaxNode) -> SyntaxToken {
- match syntax
- .siblings_with_tokens(Direction::Next)
- .filter_map(|it| it.into_token())
- .find(|it| it.kind() == T![,])
- {
- Some(it) => it,
- None => {
- let comma = ast::make::token(T![,]);
- ted::insert(ted::Position::after(syntax), &comma);
- comma
- }
- }
-}
-
-fn normalize_ws_between_braces(node: &SyntaxNode) -> Option<()> {
- let l = node
- .children_with_tokens()
- .filter_map(|it| it.into_token())
- .find(|it| it.kind() == T!['{'])?;
- let r = node
- .children_with_tokens()
- .filter_map(|it| it.into_token())
- .find(|it| it.kind() == T!['}'])?;
-
- let indent = IndentLevel::from_node(node);
-
- match l.next_sibling_or_token() {
- Some(ws)
- if ws.kind() == SyntaxKind::WHITESPACE
- && ws.next_sibling_or_token()?.into_token()? == r =>
- {
- ted::replace(ws, make::tokens::whitespace(&format!("\n{indent}")));
- }
- Some(ws) if ws.kind() == T!['}'] => {
- ted::insert(ted::Position::after(l), make::tokens::whitespace(&format!("\n{indent}")));
- }
- _ => (),
- }
- Some(())
-}
-
-fn normalize_ws_between_braces_with_editor(editor: &SyntaxEditor, node: &SyntaxNode) -> Option<()> {
- let make = editor.make();
- let l = node
- .children_with_tokens()
- .filter_map(|it| it.into_token())
- .find(|it| it.kind() == T!['{'])?;
- let r = node
- .children_with_tokens()
- .filter_map(|it| it.into_token())
- .find(|it| it.kind() == T!['}'])?;
-
- let indent = IndentLevel::from_node(node);
-
- match l.next_sibling_or_token() {
- Some(ws)
- if ws.kind() == SyntaxKind::WHITESPACE
- && ws.next_sibling_or_token()?.into_token()? == r =>
- {
- editor.replace(ws, make.whitespace(&format!("\n{indent}")));
- }
- Some(ws) if ws.kind() == T!['}'] => {
- editor
- .insert(syntax_editor::Position::after(l), make.whitespace(&format!("\n{indent}")));
- }
- _ => (),
- }
- Some(())
-}
-
pub trait Indent: AstNode + Clone + Sized {
fn indent_level(&self) -> IndentLevel {
IndentLevel::from_node(self.syntax())