From 477b37d0c5b4b925275ab0ae526bfeeea4035bc9 Mon Sep 17 00:00:00 2001 From: b4prog Date: Mon, 29 Jun 2026 12:47:26 +0200 Subject: [PATCH] [fix] hide report metadata outside verbose mode --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/lib.rs | 6 ----- src/report/complexity_renderer.rs | 40 +++++++++++++++++-------------- src/report/duplicate_renderer.rs | 21 ++++++++++------ 5 files changed, 38 insertions(+), 33 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7fa0d9c..2c6913a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -150,7 +150,7 @@ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" [[package]] name = "codem8" -version = "0.7.4" +version = "0.7.5" dependencies = [ "clap", "ignore", diff --git a/Cargo.toml b/Cargo.toml index 01b8d32..fac67a6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "codem8" -version = "0.7.4" +version = "0.7.5" edition = "2021" rust-version = "1.85" license = "MIT" diff --git a/src/lib.rs b/src/lib.rs index 1c6d9fe..f202b0a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -576,9 +576,6 @@ mod tests { "const value = computeValue(input);\nif (value === undefined) {\nreturn defaultValue;\n}\n", ); let output = run_in(&project, &["--report-duplicate"]).expect("report succeeds"); - let mut expected_extensions = language::supported_file_extensions(); - expected_extensions.sort(); - let expected_extensions = expected_extensions.join(", "); assert_eq!( output, [ @@ -586,9 +583,6 @@ mod tests { "=====================\n", "\n", "Number of files analyzed: 2\n", - "Analyzed extensions: ", - &expected_extensions, - "\n", "Duplicate blocks found: 1\n", "\n", "#1\n", diff --git a/src/report/complexity_renderer.rs b/src/report/complexity_renderer.rs index 4960937..94a3b32 100644 --- a/src/report/complexity_renderer.rs +++ b/src/report/complexity_renderer.rs @@ -33,22 +33,8 @@ pub fn render_complexity_report(report: &ComplexityReport, verbose: bool) -> Str ); if verbose { render_analyzed_files(&mut output, report.analyzed_file_paths.as_deref()); + render_verbose_summary(&mut output, report); } - let _ = writeln!( - output, - "Analyzed extensions: {}", - sorted_extensions(&report.analyzed_extensions).join(", ") - ); - let _ = writeln!( - output, - "Max cognitive complexity: {}", - report.max_cognitive_complexity - ); - let _ = writeln!( - output, - "Max cyclomatic complexity: {}", - report.max_cyclomatic_complexity - ); let _ = writeln!( output, "Functions exceeding limits: {}", @@ -82,6 +68,24 @@ pub fn render_complexity_report(report: &ComplexityReport, verbose: bool) -> Str output } +fn render_verbose_summary(output: &mut String, report: &ComplexityReport) { + let _ = writeln!( + output, + "Analyzed extensions: {}", + sorted_extensions(&report.analyzed_extensions).join(", ") + ); + let _ = writeln!( + output, + "Max cognitive complexity: {}", + report.max_cognitive_complexity + ); + let _ = writeln!( + output, + "Max cyclomatic complexity: {}", + report.max_cyclomatic_complexity + ); +} + fn render_analyzed_files(output: &mut String, analyzed_file_paths: Option<&[AnalyzedFile]>) { if let Some(analyzed_file_paths) = analyzed_file_paths { output.push_str("Files analyzed:\n"); @@ -181,9 +185,6 @@ mod tests { =================\n\ \n\ Number of files analyzed: 0\n\ - Analyzed extensions: rs\n\ - Max cognitive complexity: 15\n\ - Max cyclomatic complexity: 10\n\ Functions exceeding limits: 0\n" ); } @@ -233,6 +234,9 @@ mod tests { }; let output = render_complexity_report(&report, true); assert!(output.contains("Files analyzed:\n- src/lib.rs\n")); + assert!(output.contains("Analyzed extensions: rs\n")); + assert!(output.contains("Max cognitive complexity: 15\n")); + assert!(output.contains("Max cyclomatic complexity: 10\n")); assert!(output.contains("- Discovery: 1.234 ms\n")); assert!(output.contains("- Complexity analysis: 12.345 ms\n")); } diff --git a/src/report/duplicate_renderer.rs b/src/report/duplicate_renderer.rs index 9f56a9d..ca2993a 100644 --- a/src/report/duplicate_renderer.rs +++ b/src/report/duplicate_renderer.rs @@ -45,11 +45,9 @@ fn render_report_summary(output: &mut String, report: &DuplicateReport, verbose: output.push_str("Files analyzed:\n"); render_analyzed_files(output, analyzed_file_paths); } - let _ = writeln!( - output, - "Analyzed extensions: {}", - sorted_extensions(&report.analyzed_extensions).join(", ") - ); + if verbose { + render_verbose_summary(output, report); + } let _ = writeln!( output, "Duplicate blocks found: {}", @@ -60,6 +58,14 @@ fn render_report_summary(output: &mut String, report: &DuplicateReport, verbose: } } +fn render_verbose_summary(output: &mut String, report: &DuplicateReport) { + let _ = writeln!( + output, + "Analyzed extensions: {}", + sorted_extensions(&report.analyzed_extensions).join(", ") + ); +} + fn render_analyzed_files(output: &mut String, analyzed_file_paths: &[AnalyzedFile]) { for file in analyzed_file_paths { let _ = writeln!(output, "- {}", format_analyzed_file(file)); @@ -190,7 +196,6 @@ mod tests { =====================\n\ \n\ Number of files analyzed: 0\n\ - Analyzed extensions: ts\n\ Duplicate blocks found: 0\n" ); } @@ -242,7 +247,9 @@ mod tests { duplicate_blocks: Vec::new(), }; let output = render_duplicate_report(&report, false); - assert!(output.contains("Analyzed extensions: js, rs, ts\n")); + assert!(!output.contains("Analyzed extensions:")); + let verbose_output = render_duplicate_report(&report, true); + assert!(verbose_output.contains("Analyzed extensions: js, rs, ts\n")); } #[test]