Skip to content

Commit 55f3b4d

Browse files
committed
style: fix clippy collapsible_if and formatting for Rust 1.93
Collapse nested if/if-let into chained conditions using let-chains. Remove needless borrows in mouse handler. Run cargo fmt.
1 parent e8fbe03 commit 55f3b4d

File tree

10 files changed

+334
-260
lines changed

10 files changed

+334
-260
lines changed

src/app.rs

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -199,10 +199,10 @@ impl App {
199199

200200
/// How many display lines does the entry at `parsed_lines[idx]` produce?
201201
fn display_line_count(&self, idx: usize) -> usize {
202-
if self.json_pretty {
203-
if let Some(ref pj) = self.parsed_lines[idx].pretty_json {
204-
return pj.lines().count() + 1; // header + JSON body lines
205-
}
202+
if self.json_pretty
203+
&& let Some(ref pj) = self.parsed_lines[idx].pretty_json
204+
{
205+
return pj.lines().count() + 1; // header + JSON body lines
206206
}
207207
1
208208
}
@@ -620,10 +620,10 @@ impl App {
620620
}
621621

622622
pub fn menu_down(&mut self) {
623-
if let Some(ref mut menu) = self.context_menu {
624-
if menu.selected + 1 < menu.items.len() {
625-
menu.selected += 1;
626-
}
623+
if let Some(ref mut menu) = self.context_menu
624+
&& menu.selected + 1 < menu.items.len()
625+
{
626+
menu.selected += 1;
627627
}
628628
}
629629

@@ -844,22 +844,22 @@ impl App {
844844
}
845845
};
846846

847-
if let Some(sparkline) = &self.sparkline_data {
848-
if let Some(range) = bucket_range_to_time_range(sparkline, start_bucket, end_bucket) {
849-
self.time_range = Some(range);
850-
self.recompute_filter();
851-
}
847+
if let Some(sparkline) = &self.sparkline_data
848+
&& let Some(range) = bucket_range_to_time_range(sparkline, start_bucket, end_bucket)
849+
{
850+
self.time_range = Some(range);
851+
self.recompute_filter();
852852
}
853853
self.exit_time_mode();
854854
}
855855

856856
pub fn time_preset(&mut self, minutes: i64) {
857-
if let Some(index) = &self.time_index {
858-
if let Some(max_ts) = index.max_ts {
859-
let start = max_ts - chrono::Duration::minutes(minutes);
860-
self.time_range = Some(TimeRange { start, end: max_ts });
861-
self.recompute_filter();
862-
}
857+
if let Some(index) = &self.time_index
858+
&& let Some(max_ts) = index.max_ts
859+
{
860+
let start = max_ts - chrono::Duration::minutes(minutes);
861+
self.time_range = Some(TimeRange { start, end: max_ts });
862+
self.recompute_filter();
863863
}
864864
self.exit_time_mode();
865865
}
@@ -886,10 +886,10 @@ impl App {
886886
}
887887

888888
pub fn time_mouse_drag(&mut self, bucket: usize) {
889-
if let Some(state) = &mut self.time_mode {
890-
if state.dragging {
891-
state.cursor_bucket = bucket;
892-
}
889+
if let Some(state) = &mut self.time_mode
890+
&& state.dragging
891+
{
892+
state.cursor_bucket = bucket;
893893
}
894894
}
895895

src/filter.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ pub fn filter_lines(
2222
.iter()
2323
.enumerate()
2424
.filter(|(_, line)| {
25-
if let Some(min) = min_level {
26-
if let Some(level) = line.level {
27-
return level >= min;
28-
}
25+
if let Some(min) = min_level
26+
&& let Some(level) = line.level
27+
{
28+
return level >= min;
2929
}
3030
true
3131
})

src/highlighter.rs

Lines changed: 70 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,7 @@ static KEYWORD_RE: LazyLock<Regex> =
5555
LazyLock::new(|| Regex::new(r"(?i)\b(?:true|false|null|nil|none|undefined|NaN)\b").unwrap());
5656

5757
// 12. Version numbers (dotted: 2.4.1, 10.15.7 — exactly 3 segments)
58-
static VERSION_RE: LazyLock<Regex> =
59-
LazyLock::new(|| Regex::new(r"\bv?\d+\.\d+\.\d+\b").unwrap());
58+
static VERSION_RE: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"\bv?\d+\.\d+\.\d+\b").unwrap());
6059

6160
// 13. Numbers (2+ digits, or decimal, or with unit suffix — skip tiny standalone digits)
6261
static NUMBER_RE: LazyLock<Regex> = LazyLock::new(|| {
@@ -225,17 +224,17 @@ fn collect_all_regions(text: &str) -> Vec<MatchRegion> {
225224

226225
// 4. IPv4 addresses (validate octets)
227226
for caps in IPV4_RE.captures_iter(text) {
228-
if let Some(m) = caps.get(0) {
229-
if is_valid_ipv4(&caps) {
230-
let region = MatchRegion {
231-
start: m.start(),
232-
end: m.end(),
233-
style: ip_style(),
234-
kind: TokenKind::Ip,
235-
};
236-
if !overlaps(&regions, &region) {
237-
regions.push(region);
238-
}
227+
if let Some(m) = caps.get(0)
228+
&& is_valid_ipv4(&caps)
229+
{
230+
let region = MatchRegion {
231+
start: m.start(),
232+
end: m.end(),
233+
style: ip_style(),
234+
kind: TokenKind::Ip,
235+
};
236+
if !overlaps(&regions, &region) {
237+
regions.push(region);
239238
}
240239
}
241240
}
@@ -479,34 +478,34 @@ fn timestamp_style() -> Style {
479478
fn highlight_plain_line(parsed: &ParsedLine) -> Line<'_> {
480479
let style = level_style(parsed.level);
481480

482-
if let Some(ref ts) = parsed.timestamp {
483-
if let Some(pos) = parsed.raw.find(ts.as_str()) {
484-
let ts_end = pos + ts.len();
485-
let (ts_part, rest) = parsed.raw.split_at(ts_end);
486-
let mut spans = vec![Span::styled(ts_part.to_string(), timestamp_style())];
487-
488-
// Extract level keyword as a bold badge if present
489-
if parsed.level.is_some() {
490-
if let Some(level_match) = HIGHLIGHT_LEVEL_RE.find(rest) {
491-
let before_level = &rest[..level_match.start()];
492-
let level_text = level_match.as_str();
493-
let after_level = &rest[level_match.end()..];
494-
495-
if !before_level.is_empty() {
496-
spans.push(Span::styled(before_level.to_string(), style));
497-
}
498-
spans.push(Span::styled(
499-
level_text.to_string(),
500-
style.add_modifier(Modifier::BOLD),
501-
));
502-
spans.extend(tokenize_with_patterns(after_level, style));
503-
return Line::from(spans);
504-
}
481+
if let Some(ref ts) = parsed.timestamp
482+
&& let Some(pos) = parsed.raw.find(ts.as_str())
483+
{
484+
let ts_end = pos + ts.len();
485+
let (ts_part, rest) = parsed.raw.split_at(ts_end);
486+
let mut spans = vec![Span::styled(ts_part.to_string(), timestamp_style())];
487+
488+
// Extract level keyword as a bold badge if present
489+
if parsed.level.is_some()
490+
&& let Some(level_match) = HIGHLIGHT_LEVEL_RE.find(rest)
491+
{
492+
let before_level = &rest[..level_match.start()];
493+
let level_text = level_match.as_str();
494+
let after_level = &rest[level_match.end()..];
495+
496+
if !before_level.is_empty() {
497+
spans.push(Span::styled(before_level.to_string(), style));
505498
}
506-
507-
spans.extend(tokenize_with_patterns(rest, style));
499+
spans.push(Span::styled(
500+
level_text.to_string(),
501+
style.add_modifier(Modifier::BOLD),
502+
));
503+
spans.extend(tokenize_with_patterns(after_level, style));
508504
return Line::from(spans);
509505
}
506+
507+
spans.extend(tokenize_with_patterns(rest, style));
508+
return Line::from(spans);
510509
}
511510
Line::from(tokenize_with_patterns(&parsed.raw, style))
512511
}
@@ -558,14 +557,14 @@ fn highlight_json_line(parsed: &ParsedLine) -> Line<'_> {
558557
fn highlight_syslog_line(parsed: &ParsedLine) -> Line<'_> {
559558
let style = level_style(parsed.level);
560559

561-
if let Some(ref ts) = parsed.timestamp {
562-
if let Some(pos) = parsed.raw.find(ts.as_str()) {
563-
let ts_end = pos + ts.len();
564-
let (ts_part, rest) = parsed.raw.split_at(ts_end);
565-
let mut spans = vec![Span::styled(ts_part.to_string(), timestamp_style())];
566-
spans.extend(tokenize_with_patterns(rest, style));
567-
return Line::from(spans);
568-
}
560+
if let Some(ref ts) = parsed.timestamp
561+
&& let Some(pos) = parsed.raw.find(ts.as_str())
562+
{
563+
let ts_end = pos + ts.len();
564+
let (ts_part, rest) = parsed.raw.split_at(ts_end);
565+
let mut spans = vec![Span::styled(ts_part.to_string(), timestamp_style())];
566+
spans.extend(tokenize_with_patterns(rest, style));
567+
return Line::from(spans);
569568
}
570569
Line::from(tokenize_with_patterns(&parsed.raw, style))
571570
}
@@ -672,32 +671,33 @@ pub fn apply_search_highlight(line: Line<'_>, pattern: &str) -> Line<'static> {
672671
/// In pretty mode for JSON, returns the expanded multi-line JSON.
673672
/// For everything else (or when pretty=false), returns a single line.
674673
pub fn highlight_line_expanded(parsed: &ParsedLine, pretty: bool) -> Vec<Line<'_>> {
675-
if pretty && parsed.format == LogFormat::Json {
676-
if let Some(ref pretty_json) = parsed.pretty_json {
677-
let style = level_style(parsed.level);
678-
let level_str = match parsed.level {
679-
Some(LogLevel::Fatal) => "FTL",
680-
Some(LogLevel::Error) => "ERR",
681-
Some(LogLevel::Warn) => "WRN",
682-
Some(LogLevel::Info) => "INF",
683-
Some(LogLevel::Debug) => "DBG",
684-
Some(LogLevel::Trace) => "TRC",
685-
None => "???",
686-
};
674+
if pretty
675+
&& parsed.format == LogFormat::Json
676+
&& let Some(ref pretty_json) = parsed.pretty_json
677+
{
678+
let style = level_style(parsed.level);
679+
let level_str = match parsed.level {
680+
Some(LogLevel::Fatal) => "FTL",
681+
Some(LogLevel::Error) => "ERR",
682+
Some(LogLevel::Warn) => "WRN",
683+
Some(LogLevel::Info) => "INF",
684+
Some(LogLevel::Debug) => "DBG",
685+
Some(LogLevel::Trace) => "TRC",
686+
None => "???",
687+
};
687688

688-
let mut lines = Vec::new();
689-
// First line: level badge + separator
690-
lines.push(Line::from(vec![
691-
Span::styled("--- ".to_string(), style.add_modifier(Modifier::BOLD)),
692-
Span::styled(format!("[{}]", level_str), level_badge_style(parsed.level)),
693-
Span::styled(" ".to_string(), Style::default()),
694-
]));
695-
// Pretty-printed JSON lines
696-
for json_line in pretty_json.lines() {
697-
lines.push(Line::from(Span::styled(format!(" {}", json_line), style)));
698-
}
699-
return lines;
689+
let mut lines = Vec::new();
690+
// First line: level badge + separator
691+
lines.push(Line::from(vec![
692+
Span::styled("--- ".to_string(), style.add_modifier(Modifier::BOLD)),
693+
Span::styled(format!("[{}]", level_str), level_badge_style(parsed.level)),
694+
Span::styled(" ".to_string(), Style::default()),
695+
]));
696+
// Pretty-printed JSON lines
697+
for json_line in pretty_json.lines() {
698+
lines.push(Line::from(Span::styled(format!(" {}", json_line), style)));
700699
}
700+
return lines;
701701
}
702702
vec![highlight_line(parsed)]
703703
}

0 commit comments

Comments
 (0)