This commit is contained in:
Aleksey Kladov 2020-08-13 11:44:39 +02:00
parent f0a9128761
commit 80c241b39a
2 changed files with 25 additions and 28 deletions

View File

@ -4,9 +4,7 @@ use std::iter::successors;
use syntax::{
ast::{self, AstToken},
SmolStr, SyntaxKind,
SyntaxKind::*,
SyntaxNode, SyntaxToken, T,
SmolStr, SyntaxNode, SyntaxToken,
};
/// If the node is on the beginning of the line, calculate indent.
@ -28,26 +26,3 @@ pub fn leading_indent(node: &SyntaxNode) -> Option<SmolStr> {
fn prev_tokens(token: SyntaxToken) -> impl Iterator<Item = SyntaxToken> {
successors(token.prev_token(), |token| token.prev_token())
}
pub fn compute_ws(left: SyntaxKind, right: SyntaxKind) -> &'static str {
match left {
T!['('] | T!['['] => return "",
T!['{'] => {
if let USE_TREE = right {
return "";
}
}
_ => (),
}
match right {
T![')'] | T![']'] => return "",
T!['}'] => {
if let USE_TREE = left {
return "";
}
}
T![.] => return "",
_ => (),
}
" "
}

View File

@ -1,11 +1,10 @@
use itertools::Itertools;
use ra_assists::utils::extract_trivial_expression;
use ra_fmt::compute_ws;
use syntax::{
algo::{find_covering_element, non_trivia_sibling},
ast::{self, AstNode, AstToken},
Direction, NodeOrToken, SourceFile,
SyntaxKind::{self, WHITESPACE},
SyntaxKind::{self, USE_TREE, WHITESPACE},
SyntaxNode, SyntaxToken, TextRange, TextSize, T,
};
use text_edit::{TextEdit, TextEditBuilder};
@ -169,6 +168,29 @@ fn is_trailing_comma(left: SyntaxKind, right: SyntaxKind) -> bool {
matches!((left, right), (T![,], T![')']) | (T![,], T![']']))
}
fn compute_ws(left: SyntaxKind, right: SyntaxKind) -> &'static str {
match left {
T!['('] | T!['['] => return "",
T!['{'] => {
if let USE_TREE = right {
return "";
}
}
_ => (),
}
match right {
T![')'] | T![']'] => return "",
T!['}'] => {
if let USE_TREE = left {
return "";
}
}
T![.] => return "",
_ => (),
}
" "
}
#[cfg(test)]
mod tests {
use syntax::SourceFile;