Simplified change newline handling
This commit is contained in:
parent
1991955c52
commit
d4495038a3
8 changed files with 6 additions and 81 deletions
|
|
@ -99,7 +99,6 @@ pub struct InlineChange<'s, T: DiffableStr + ?Sized> {
|
||||||
old_index: Option<usize>,
|
old_index: Option<usize>,
|
||||||
new_index: Option<usize>,
|
new_index: Option<usize>,
|
||||||
values: Vec<(bool, &'s T)>,
|
values: Vec<(bool, &'s T)>,
|
||||||
missing_newline: bool,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'s, T: DiffableStr + ?Sized> InlineChange<'s, T> {
|
impl<'s, T: DiffableStr + ?Sized> InlineChange<'s, T> {
|
||||||
|
|
@ -143,7 +142,7 @@ impl<'s, T: DiffableStr + ?Sized> InlineChange<'s, T> {
|
||||||
/// Returns `true` if this change needs to be followed up by a
|
/// Returns `true` if this change needs to be followed up by a
|
||||||
/// missing newline.
|
/// missing newline.
|
||||||
pub fn missing_newline(&self) -> bool {
|
pub fn missing_newline(&self) -> bool {
|
||||||
self.missing_newline
|
!self.values.last().map_or(true, |x| x.1.ends_with_newline())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -154,7 +153,6 @@ impl<'s, T: DiffableStr + ?Sized> From<Change<'s, T>> for InlineChange<'s, T> {
|
||||||
old_index: change.old_index(),
|
old_index: change.old_index(),
|
||||||
new_index: change.new_index(),
|
new_index: change.new_index(),
|
||||||
values: vec![(false, change.value())],
|
values: vec![(false, change.value())],
|
||||||
missing_newline: change.missing_newline(),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -169,7 +167,7 @@ impl<'s, T: DiffableStr + ?Sized> fmt::Display for InlineChange<'s, T> {
|
||||||
};
|
};
|
||||||
write!(f, "{}{}{}", marker, value, marker)?;
|
write!(f, "{}{}{}", marker, value, marker)?;
|
||||||
}
|
}
|
||||||
if self.missing_newline {
|
if self.missing_newline() {
|
||||||
writeln!(f)?;
|
writeln!(f)?;
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -183,7 +181,6 @@ pub(crate) fn iter_inline_changes<'diff, T>(
|
||||||
where
|
where
|
||||||
T: DiffableStr + ?Sized,
|
T: DiffableStr + ?Sized,
|
||||||
{
|
{
|
||||||
let newline_terminated = diff.newline_terminated;
|
|
||||||
let (tag, old_range, new_range) = op.as_tag_tuple();
|
let (tag, old_range, new_range) = op.as_tag_tuple();
|
||||||
|
|
||||||
if let DiffTag::Equal | DiffTag::Insert | DiffTag::Delete = tag {
|
if let DiffTag::Equal | DiffTag::Insert | DiffTag::Delete = tag {
|
||||||
|
|
@ -264,40 +261,20 @@ where
|
||||||
old_index: Some(old_index),
|
old_index: Some(old_index),
|
||||||
new_index: None,
|
new_index: None,
|
||||||
values,
|
values,
|
||||||
missing_newline: false,
|
|
||||||
});
|
});
|
||||||
old_index += 1;
|
old_index += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if newline_terminated
|
|
||||||
&& !old_slices.is_empty()
|
|
||||||
&& !old_slices[old_slices.len() - 1].ends_with_newline()
|
|
||||||
{
|
|
||||||
if let Some(last) = rv.last_mut() {
|
|
||||||
last.missing_newline = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for values in new_values {
|
for values in new_values {
|
||||||
rv.push(InlineChange {
|
rv.push(InlineChange {
|
||||||
tag: ChangeTag::Insert,
|
tag: ChangeTag::Insert,
|
||||||
old_index: None,
|
old_index: None,
|
||||||
new_index: Some(new_index),
|
new_index: Some(new_index),
|
||||||
values,
|
values,
|
||||||
missing_newline: false,
|
|
||||||
});
|
});
|
||||||
new_index += 1;
|
new_index += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if newline_terminated
|
|
||||||
&& !new_slices.is_empty()
|
|
||||||
&& !new_slices[new_slices.len() - 1].ends_with_newline()
|
|
||||||
{
|
|
||||||
if let Some(last) = rv.last_mut() {
|
|
||||||
last.missing_newline = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Box::new(rv.into_iter()) as Box<dyn Iterator<Item = _>>
|
Box::new(rv.into_iter()) as Box<dyn Iterator<Item = _>>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -374,7 +374,6 @@ impl<'old, 'new, 'bufs, T: DiffableStr + ?Sized + 'old + 'new> TextDiff<'old, 'n
|
||||||
/// up the value from the appropriate slice and also handle correct index
|
/// up the value from the appropriate slice and also handle correct index
|
||||||
/// handling.
|
/// handling.
|
||||||
pub fn iter_changes(&self, op: &DiffOp) -> impl Iterator<Item = Change<'_, T>> {
|
pub fn iter_changes(&self, op: &DiffOp) -> impl Iterator<Item = Change<'_, T>> {
|
||||||
let newline_terminated = self.newline_terminated;
|
|
||||||
let (tag, old_range, new_range) = op.as_tag_tuple();
|
let (tag, old_range, new_range) = op.as_tag_tuple();
|
||||||
let mut old_index = old_range.start;
|
let mut old_index = old_range.start;
|
||||||
let mut new_index = new_range.start;
|
let mut new_index = new_range.start;
|
||||||
|
|
@ -392,9 +391,6 @@ impl<'old, 'new, 'bufs, T: DiffableStr + ?Sized + 'old + 'new> TextDiff<'old, 'n
|
||||||
old_index: Some(old_index - 1),
|
old_index: Some(old_index - 1),
|
||||||
new_index: Some(new_index - 1),
|
new_index: Some(new_index - 1),
|
||||||
value: first,
|
value: first,
|
||||||
missing_newline: newline_terminated
|
|
||||||
&& rest.is_empty()
|
|
||||||
&& !first.ends_with_newline(),
|
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
|
|
@ -409,9 +405,6 @@ impl<'old, 'new, 'bufs, T: DiffableStr + ?Sized + 'old + 'new> TextDiff<'old, 'n
|
||||||
old_index: Some(old_index - 1),
|
old_index: Some(old_index - 1),
|
||||||
new_index: None,
|
new_index: None,
|
||||||
value: first,
|
value: first,
|
||||||
missing_newline: newline_terminated
|
|
||||||
&& rest.is_empty()
|
|
||||||
&& !first.ends_with_newline(),
|
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
|
|
@ -426,9 +419,6 @@ impl<'old, 'new, 'bufs, T: DiffableStr + ?Sized + 'old + 'new> TextDiff<'old, 'n
|
||||||
old_index: None,
|
old_index: None,
|
||||||
new_index: Some(new_index - 1),
|
new_index: Some(new_index - 1),
|
||||||
value: first,
|
value: first,
|
||||||
missing_newline: newline_terminated
|
|
||||||
&& rest.is_empty()
|
|
||||||
&& !first.ends_with_newline(),
|
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
|
|
@ -443,9 +433,6 @@ impl<'old, 'new, 'bufs, T: DiffableStr + ?Sized + 'old + 'new> TextDiff<'old, 'n
|
||||||
old_index: Some(old_index - 1),
|
old_index: Some(old_index - 1),
|
||||||
new_index: None,
|
new_index: None,
|
||||||
value: first,
|
value: first,
|
||||||
missing_newline: newline_terminated
|
|
||||||
&& rest.is_empty()
|
|
||||||
&& !first.ends_with_newline(),
|
|
||||||
})
|
})
|
||||||
} else if let Some((&first, rest)) = new_slices.split_first() {
|
} else if let Some((&first, rest)) = new_slices.split_first() {
|
||||||
new_slices = rest;
|
new_slices = rest;
|
||||||
|
|
@ -455,9 +442,6 @@ impl<'old, 'new, 'bufs, T: DiffableStr + ?Sized + 'old + 'new> TextDiff<'old, 'n
|
||||||
old_index: None,
|
old_index: None,
|
||||||
new_index: Some(new_index - 1),
|
new_index: Some(new_index - 1),
|
||||||
value: first,
|
value: first,
|
||||||
missing_newline: newline_terminated
|
|
||||||
&& rest.is_empty()
|
|
||||||
&& !first.ends_with_newline(),
|
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ expression: "&changes"
|
||||||
0,
|
0,
|
||||||
),
|
),
|
||||||
value: "Hello",
|
value: "Hello",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -23,7 +22,6 @@ expression: "&changes"
|
||||||
1,
|
1,
|
||||||
),
|
),
|
||||||
value: " ",
|
value: " ",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -34,7 +32,6 @@ expression: "&changes"
|
||||||
2,
|
2,
|
||||||
),
|
),
|
||||||
value: "World",
|
value: "World",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -45,7 +42,6 @@ expression: "&changes"
|
||||||
3,
|
3,
|
||||||
),
|
),
|
||||||
value: "\n",
|
value: "\n",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -56,7 +52,6 @@ expression: "&changes"
|
||||||
4,
|
4,
|
||||||
),
|
),
|
||||||
value: "some",
|
value: "some",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Insert,
|
tag: Insert,
|
||||||
|
|
@ -65,7 +60,6 @@ expression: "&changes"
|
||||||
5,
|
5,
|
||||||
),
|
),
|
||||||
value: " ",
|
value: " ",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Insert,
|
tag: Insert,
|
||||||
|
|
@ -74,7 +68,6 @@ expression: "&changes"
|
||||||
6,
|
6,
|
||||||
),
|
),
|
||||||
value: "amazing",
|
value: "amazing",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -85,7 +78,6 @@ expression: "&changes"
|
||||||
7,
|
7,
|
||||||
),
|
),
|
||||||
value: " ",
|
value: " ",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -96,7 +88,6 @@ expression: "&changes"
|
||||||
8,
|
8,
|
||||||
),
|
),
|
||||||
value: "stuff",
|
value: "stuff",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -107,7 +98,6 @@ expression: "&changes"
|
||||||
9,
|
9,
|
||||||
),
|
),
|
||||||
value: " ",
|
value: " ",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -118,7 +108,6 @@ expression: "&changes"
|
||||||
10,
|
10,
|
||||||
),
|
),
|
||||||
value: "here",
|
value: "here",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -129,7 +118,6 @@ expression: "&changes"
|
||||||
11,
|
11,
|
||||||
),
|
),
|
||||||
value: "\n",
|
value: "\n",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -140,7 +128,6 @@ expression: "&changes"
|
||||||
12,
|
12,
|
||||||
),
|
),
|
||||||
value: "some",
|
value: "some",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -151,7 +138,6 @@ expression: "&changes"
|
||||||
13,
|
13,
|
||||||
),
|
),
|
||||||
value: " ",
|
value: " ",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -162,7 +148,6 @@ expression: "&changes"
|
||||||
14,
|
14,
|
||||||
),
|
),
|
||||||
value: "more",
|
value: "more",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -173,7 +158,6 @@ expression: "&changes"
|
||||||
15,
|
15,
|
||||||
),
|
),
|
||||||
value: " ",
|
value: " ",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -184,7 +168,6 @@ expression: "&changes"
|
||||||
16,
|
16,
|
||||||
),
|
),
|
||||||
value: "stuff",
|
value: "stuff",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -195,7 +178,6 @@ expression: "&changes"
|
||||||
17,
|
17,
|
||||||
),
|
),
|
||||||
value: " ",
|
value: " ",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -206,7 +188,6 @@ expression: "&changes"
|
||||||
18,
|
18,
|
||||||
),
|
),
|
||||||
value: "here",
|
value: "here",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -217,6 +198,5 @@ expression: "&changes"
|
||||||
19,
|
19,
|
||||||
),
|
),
|
||||||
value: "\n",
|
value: "\n",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ expression: "&changes"
|
||||||
"Stuff\n",
|
"Stuff\n",
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
InlineChange {
|
InlineChange {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -31,7 +30,6 @@ expression: "&changes"
|
||||||
"Hello World\n",
|
"Hello World\n",
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
InlineChange {
|
InlineChange {
|
||||||
tag: Delete,
|
tag: Delete,
|
||||||
|
|
@ -49,7 +47,6 @@ expression: "&changes"
|
||||||
"stuff here\n",
|
"stuff here\n",
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
InlineChange {
|
InlineChange {
|
||||||
tag: Insert,
|
tag: Insert,
|
||||||
|
|
@ -71,7 +68,6 @@ expression: "&changes"
|
||||||
"stuff here\n",
|
"stuff here\n",
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
InlineChange {
|
InlineChange {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -87,7 +83,6 @@ expression: "&changes"
|
||||||
"some more stuff here\n",
|
"some more stuff here\n",
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
InlineChange {
|
InlineChange {
|
||||||
tag: Delete,
|
tag: Delete,
|
||||||
|
|
@ -101,7 +96,6 @@ expression: "&changes"
|
||||||
"\n",
|
"\n",
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
InlineChange {
|
InlineChange {
|
||||||
tag: Delete,
|
tag: Delete,
|
||||||
|
|
@ -115,7 +109,6 @@ expression: "&changes"
|
||||||
"Aha stuff here\n",
|
"Aha stuff here\n",
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
InlineChange {
|
InlineChange {
|
||||||
tag: Delete,
|
tag: Delete,
|
||||||
|
|
@ -129,6 +122,5 @@ expression: "&changes"
|
||||||
"and more stuff",
|
"and more stuff",
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
missing_newline: true,
|
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ expression: "&changes"
|
||||||
0,
|
0,
|
||||||
),
|
),
|
||||||
value: "Hello World\n",
|
value: "Hello World\n",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Delete,
|
tag: Delete,
|
||||||
|
|
@ -21,7 +20,6 @@ expression: "&changes"
|
||||||
),
|
),
|
||||||
new_index: None,
|
new_index: None,
|
||||||
value: "some stuff here\n",
|
value: "some stuff here\n",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Insert,
|
tag: Insert,
|
||||||
|
|
@ -30,7 +28,6 @@ expression: "&changes"
|
||||||
1,
|
1,
|
||||||
),
|
),
|
||||||
value: "some amazing stuff here\n",
|
value: "some amazing stuff here\n",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Equal,
|
tag: Equal,
|
||||||
|
|
@ -41,6 +38,5 @@ expression: "&changes"
|
||||||
2,
|
2,
|
||||||
),
|
),
|
||||||
value: "some more stuff here\n",
|
value: "some more stuff here\n",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ expression: "&changes"
|
||||||
0,
|
0,
|
||||||
),
|
),
|
||||||
value: "a\n",
|
value: "a\n",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Delete,
|
tag: Delete,
|
||||||
|
|
@ -21,7 +20,6 @@ expression: "&changes"
|
||||||
),
|
),
|
||||||
new_index: None,
|
new_index: None,
|
||||||
value: "b",
|
value: "b",
|
||||||
missing_newline: true,
|
|
||||||
},
|
},
|
||||||
Change {
|
Change {
|
||||||
tag: Insert,
|
tag: Insert,
|
||||||
|
|
@ -30,6 +28,5 @@ expression: "&changes"
|
||||||
1,
|
1,
|
||||||
),
|
),
|
||||||
value: "c\n",
|
value: "c\n",
|
||||||
missing_newline: false,
|
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -258,7 +258,7 @@ impl<'diff, 'old, 'new, 'bufs, T: DiffableStr + ?Sized>
|
||||||
if !self.diff.newline_terminated() {
|
if !self.diff.newline_terminated() {
|
||||||
writeln!(w)?;
|
writeln!(w)?;
|
||||||
}
|
}
|
||||||
if change.missing_newline() {
|
if self.diff.newline_terminated() && change.missing_newline() {
|
||||||
writeln!(w, "{}", MissingNewlineHint(self.missing_newline_hint))?;
|
writeln!(w, "{}", MissingNewlineHint(self.missing_newline_hint))?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -278,7 +278,7 @@ impl<'diff, 'old, 'new, 'bufs, T: DiffableStr + ?Sized> fmt::Display
|
||||||
if !self.diff.newline_terminated() {
|
if !self.diff.newline_terminated() {
|
||||||
writeln!(f)?;
|
writeln!(f)?;
|
||||||
}
|
}
|
||||||
if change.missing_newline() {
|
if self.diff.newline_terminated() && change.missing_newline() {
|
||||||
writeln!(f, "{}", MissingNewlineHint(self.missing_newline_hint))?;
|
writeln!(f, "{}", MissingNewlineHint(self.missing_newline_hint))?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,6 @@ pub struct Change<'s, T: ?Sized> {
|
||||||
pub(crate) old_index: Option<usize>,
|
pub(crate) old_index: Option<usize>,
|
||||||
pub(crate) new_index: Option<usize>,
|
pub(crate) new_index: Option<usize>,
|
||||||
pub(crate) value: &'s T,
|
pub(crate) value: &'s T,
|
||||||
pub(crate) missing_newline: bool,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'s, T: ?Sized> Change<'s, T> {
|
impl<'s, T: ?Sized> Change<'s, T> {
|
||||||
|
|
@ -261,7 +260,7 @@ mod text_additions {
|
||||||
/// The [`std::fmt::Display`] implementation of [`Change`] will automatically
|
/// The [`std::fmt::Display`] implementation of [`Change`] will automatically
|
||||||
/// insert a newline after the value if this is true.
|
/// insert a newline after the value if this is true.
|
||||||
pub fn missing_newline(&self) -> bool {
|
pub fn missing_newline(&self) -> bool {
|
||||||
self.missing_newline
|
!T::ends_with_newline(self.value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -271,7 +270,7 @@ mod text_additions {
|
||||||
f,
|
f,
|
||||||
"{}{}",
|
"{}{}",
|
||||||
self.to_string_lossy(),
|
self.to_string_lossy(),
|
||||||
if self.missing_newline { "\n" } else { "" }
|
if self.missing_newline() { "\n" } else { "" }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue