Don't trim substitution if it's only whitespace
This commit is contained in:
parent
370c816a71
commit
c2cff68d84
3 changed files with 33 additions and 23 deletions
|
@ -268,7 +268,10 @@ pub trait Emitter: Translate {
|
|||
SuggestionStyle::ShowAlways,
|
||||
].contains(&sugg.style)
|
||||
{
|
||||
let substitution = &sugg.substitutions[0].parts[0].snippet.trim();
|
||||
// Don't trim the substitution if it's only whitespace changes
|
||||
let substitution = &sugg.substitutions[0].parts[0].snippet;
|
||||
let substitution =
|
||||
if substitution.trim().is_empty() { substitution } else { substitution.trim() };
|
||||
let msg = if substitution.is_empty() || sugg.style.hide_inline() {
|
||||
// This substitution is only removal OR we explicitly don't want to show the
|
||||
// code inline (`hide_inline`). Therefore, we don't show the substitution.
|
||||
|
@ -1880,16 +1883,23 @@ impl EmitterWriter {
|
|||
let span_start_pos = sm.lookup_char_pos(part.span.lo()).col_display;
|
||||
let span_end_pos = sm.lookup_char_pos(part.span.hi()).col_display;
|
||||
|
||||
// If this addition is _only_ whitespace, then don't trim it,
|
||||
// or else we're just not rendering anything.
|
||||
let is_whitespace_addition = part.snippet.trim().is_empty();
|
||||
|
||||
// Do not underline the leading...
|
||||
let start = part.snippet.len().saturating_sub(part.snippet.trim_start().len());
|
||||
let start = if is_whitespace_addition {
|
||||
0
|
||||
} else {
|
||||
part.snippet.len().saturating_sub(part.snippet.trim_start().len())
|
||||
};
|
||||
// ...or trailing spaces. Account for substitutions containing unicode
|
||||
// characters.
|
||||
let sub_len: usize = part
|
||||
.snippet
|
||||
.trim()
|
||||
.chars()
|
||||
.map(|ch| unicode_width::UnicodeWidthChar::width(ch).unwrap_or(1))
|
||||
.sum();
|
||||
let sub_len: usize =
|
||||
if is_whitespace_addition { &part.snippet } else { part.snippet.trim() }
|
||||
.chars()
|
||||
.map(|ch| unicode_width::UnicodeWidthChar::width(ch).unwrap_or(1))
|
||||
.sum();
|
||||
|
||||
let offset: isize = offsets
|
||||
.iter()
|
||||
|
@ -2130,7 +2140,7 @@ impl EmitterWriter {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy)]
|
||||
#[derive(Clone, Copy, Debug)]
|
||||
enum DisplaySuggestion {
|
||||
Underline,
|
||||
Diff,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue