From c49526aa18f13ff0fdd5f9b2cddc946692720792 Mon Sep 17 00:00:00 2001 From: Seiichi Uchida Date: Sat, 2 Dec 2017 23:01:35 +0900 Subject: [PATCH 1/2] Add a test for #2197 --- tests/target/issue-2197.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 tests/target/issue-2197.rs diff --git a/tests/target/issue-2197.rs b/tests/target/issue-2197.rs new file mode 100644 index 00000000000..d26ca1a80e5 --- /dev/null +++ b/tests/target/issue-2197.rs @@ -0,0 +1,12 @@ +// rustfmt-max_width: 79 +// rustfmt-wrap_comments: true +// rustfmt-error_on_line_overflow: false + +/// ```rust +/// unsafe fn sum_sse2(x: i32x4) -> i32 { +/// let x = vendor::_mm_add_epi32(x, vendor::_mm_srli_si128(x.into(), 8).into()); +/// let x = vendor::_mm_add_epi32(x, vendor::_mm_srli_si128(x.into(), 4).into()); +/// vendor::_mm_cvtsi128_si32(x) +/// } +/// ``` +fn foo() {} From b9126fac82280f5a1ba9365957dce5bb8268ee15 Mon Sep 17 00:00:00 2001 From: Seiichi Uchida Date: Sat, 2 Dec 2017 23:01:50 +0900 Subject: [PATCH 2/2] Do not format fenced code blocks in comment --- src/comment.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/comment.rs b/src/comment.rs index 2e3dadd2066..9b9056c4170 100644 --- a/src/comment.rs +++ b/src/comment.rs @@ -319,6 +319,7 @@ fn rewrite_comment_inner( let mut result = opener.to_owned(); let mut is_prev_line_multi_line = false; + let mut inside_code_block = false; let comment_line_separator = format!("\n{}{}", indent_str, line_start); for line in lines { if result == opener { @@ -331,6 +332,14 @@ fn rewrite_comment_inner( result.push_str(&comment_line_separator); } + if line.starts_with("```") { + inside_code_block = !inside_code_block; + } + if inside_code_block { + result.push_str(line); + continue; + } + if config.wrap_comments() && line.len() > fmt.shape.width && !has_url(line) { match rewrite_string(line, &fmt, Some(max_chars)) { Some(ref s) => {