Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 43a1dc0

Browse files
committed
refactor: Extract calculation to get_lineno_width method
1 parent 1cc6e95 commit 43a1dc0

File tree

1 file changed

+22
-17
lines changed

1 file changed

+22
-17
lines changed

‎src/renderer/display_list.rs

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -72,23 +72,7 @@ impl<'a> fmt::Debug for DisplayList<'a> {
7272

7373
impl<'a> Display for DisplayList<'a> {
7474
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
75-
let max_lineno = self.body.iter().fold(None, |max, set| {
76-
set.display_lines.iter().fold(max, |max, line| match line {
77-
DisplayLine::Source { lineno, .. } => match (max, lineno) {
78-
(Some(max), Some(lineno)) => Some(cmp::max(max, *lineno)),
79-
(Some(max), None) => Some(max),
80-
(None, Some(lineno)) => Some(*lineno),
81-
(None, None) => None,
82-
},
83-
_ => max,
84-
})
85-
});
86-
let lineno_width = match max_lineno {
87-
None => 0,
88-
Some(0) => 1,
89-
Some(_max) if self.anonymized_line_numbers => ANONYMIZED_LINE_NUM.len(),
90-
Some(max) => (max as f64).log10().floor() as usize + 1,
91-
};
75+
let lineno_width = self.get_lineno_width();
9276

9377
let multiline_depth = self.body.iter().fold(0, |max, set| {
9478
set.display_lines.iter().fold(max, |max2, line| match line {
@@ -152,6 +136,27 @@ impl<'a> DisplayList<'a> {
152136
}
153137
Ok(())
154138
}
139+
140+
fn get_lineno_width(&self) -> usize {
141+
let max_lineno = self.body.iter().fold(None, |max, set| {
142+
set.display_lines.iter().fold(max, |max, line| match line {
143+
DisplayLine::Source { lineno, .. } => match (max, lineno) {
144+
(Some(max), Some(lineno)) => Some(cmp::max(max, *lineno)),
145+
(Some(max), None) => Some(max),
146+
(None, Some(lineno)) => Some(*lineno),
147+
(None, None) => None,
148+
},
149+
_ => max,
150+
})
151+
});
152+
let lineno_width = match max_lineno {
153+
None => 0,
154+
Some(0) => 1,
155+
Some(_max) if self.anonymized_line_numbers => ANONYMIZED_LINE_NUM.len(),
156+
Some(max) => (max as f64).log10().floor() as usize + 1,
157+
};
158+
lineno_width
159+
}
155160
}
156161

157162
#[derive(Debug, PartialEq)]

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /