Try to solve issue3456. (#3556)

This commit is contained in:
Rui 2019-10-19 17:19:47 +08:00 committed by Seiichi Uchida
parent 3a073f177c
commit 69c7dbcd50
4 changed files with 33 additions and 22 deletions

View file

@ -1187,27 +1187,9 @@ fn rewrite_string_lit(context: &RewriteContext<'_>, span: Span, shape: Shape) ->
.lines()
.dropping_back(1)
.all(|line| line.ends_with('\\'))
&& context.config.version() == Version::Two
{
let new_indent = shape.visual_indent(1).indent;
let indented_string_lit = String::from(
string_lit
.lines()
.map(|line| {
format!(
"{}{}",
new_indent.to_string(context.config),
line.trim_start()
)
})
.collect::<Vec<_>>()
.join("\n")
.trim_start(),
);
return if context.config.version() == Version::Two {
Some(indented_string_lit)
} else {
wrap_str(indented_string_lit, context.config.max_width(), shape)
};
return Some(string_lit.to_owned());
} else {
return wrap_str(string_lit.to_owned(), context.config.max_width(), shape);
}

View file

@ -618,9 +618,8 @@ pub(crate) fn trim_left_preserve_layout(
/// Based on the given line, determine if the next line can be indented or not.
/// This allows to preserve the indentation of multi-line literals.
pub(crate) fn indent_next_line(kind: FullCodeCharKind, line: &str, config: &Config) -> bool {
pub(crate) fn indent_next_line(kind: FullCodeCharKind, _line: &str, config: &Config) -> bool {
!(kind.is_string() || (config.version() == Version::Two && kind.is_commented_string()))
|| line.ends_with('\\')
}
pub(crate) fn is_empty_line(s: &str) -> bool {