]> git.lizzy.rs Git - rust.git/commitdiff
Do not format fenced code blocks in comment
authorSeiichi Uchida <seuchida@gmail.com>
Sat, 2 Dec 2017 14:01:50 +0000 (23:01 +0900)
committerSeiichi Uchida <seuchida@gmail.com>
Sat, 2 Dec 2017 14:01:50 +0000 (23:01 +0900)
src/comment.rs

index 2e3dadd20660b9d1e68d893fafd719cfead730e2..9b9056c4170b20e112524757653ddb496ad94544 100644 (file)
@@ -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) => {