From 812d50d787977180873956621aaed85494ea54f9 Mon Sep 17 00:00:00 2001 From: xub5210-droid Date: Fri, 12 Jun 2026 00:03:53 +0800 Subject: [PATCH] fix(filter): preserve inline comment markers --- src/core/filter.rs | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/core/filter.rs b/src/core/filter.rs index 90f89ade65..720c8ee8f5 100644 --- a/src/core/filter.rs +++ b/src/core/filter.rs @@ -173,7 +173,7 @@ impl FilterStrategy for MinimalFilter { // Handle block comments if let (Some(start), Some(end)) = (patterns.block_start, patterns.block_end) { if !in_docstring - && trimmed.contains(start) + && trimmed.starts_with(start) && !trimmed.starts_with(patterns.doc_block_start.unwrap_or("###")) { in_block_comment = true; @@ -470,6 +470,25 @@ fn main() { assert!(result.contains("fn main()")); } + #[test] + fn test_minimal_filter_preserves_comment_markers_in_code() { + let code = r#" +const API: &str = "http://example.com/v1"; // endpoint +let pattern = "/* not a comment */"; +let value = 1; /* trailing comment */ +/* single-line block comment */ +fn main() {} +"#; + let filter = MinimalFilter; + let result = filter.filter(code, &Language::Rust); + + assert!(result.contains("http://example.com/v1")); + assert!(result.contains("\"/* not a comment */\"")); + assert!(result.contains("let value = 1;")); + assert!(!result.contains("single-line block comment")); + assert!(result.contains("fn main()")); + } + // --- truncation accuracy --- #[test]