Skip to content

Commit 29158e4

Browse files
committed
fix a formatting bug with multiline strings ending in brackets
1 parent 4243b87 commit 29158e4

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

parser/src/ast.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,7 @@ impl fmt::Debug for Word {
435435
Word::Number(s, ..) => write!(f, "{s:?}"),
436436
Word::Char(char) => write!(f, "{char:?}"),
437437
Word::String(string) => write!(f, "{string:?}"),
438-
Word::MultilineString(string) => write!(f, "{string:?}"),
438+
Word::MultilineString(string) => write!(f, "$ {string:?}"),
439439
Word::FormatString(parts) => {
440440
write!(f, "$\"")?;
441441
for part in parts {

src/format.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -683,7 +683,15 @@ impl Formatter<'_> {
683683
}
684684
for (j, word) in line.iter().enumerate() {
685685
self.format_word(word, depth);
686-
if word_is_multiline(&word.value) && j < words.len() - 1 {
686+
if word_is_multiline(&word.value)
687+
&& j < words.len() - 1
688+
&& !line.first().is_some_and(|first| {
689+
matches!(
690+
first.value,
691+
Word::MultilineString(_) | Word::MultilineFormatString(_)
692+
)
693+
})
694+
{
687695
for (end, empty) in [(')', "()"), (']', "[]"), ('}', "{}")] {
688696
if self.output.ends_with(end) && !self.output.ends_with(empty) {
689697
self.output.pop();

0 commit comments

Comments
 (0)