about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-03-27 23:10:51 +0000
committerbors <bors@rust-lang.org>2023-03-27 23:10:51 +0000
commita869ca3c29c19c7467864fc44a28877610433afe (patch)
tree11372ace2b22be510a639201a18e7f5427f050ae
parent284c1741d6536be6e7d4d4d252c424b90d6f1e45 (diff)
parentbe17eab08b16d5c65a82b16ead288f0051769bc3 (diff)
downloadrust-a869ca3c29c19c7467864fc44a28877610433afe.tar.gz
rust-a869ca3c29c19c7467864fc44a28877610433afe.zip
Auto merge of #14422 - garlicbreadcleric:rustdoc-hashes-escaping, r=HKalbasi
fix(rustdoc): don't escape double hashes outside of Rust code blocks

Fixes #14376
-rw-r--r--crates/rust-analyzer/src/markdown.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/crates/rust-analyzer/src/markdown.rs b/crates/rust-analyzer/src/markdown.rs
index 912ed1e7642..58426c66a85 100644
--- a/crates/rust-analyzer/src/markdown.rs
+++ b/crates/rust-analyzer/src/markdown.rs
@@ -28,7 +28,7 @@ pub(crate) fn format_docs(src: &str) -> String {
 
         if in_code_block {
             let trimmed = line.trim_start();
-            if trimmed.starts_with("##") {
+            if is_rust && trimmed.starts_with("##") {
                 line = &trimmed[1..];
             }
         }
@@ -154,4 +154,12 @@ let s = "foo
 
         assert_eq!(format_docs(comment), "```rust\nlet s = \"foo\n# bar # baz\";\n```");
     }
+
+    #[test]
+    fn test_format_docs_handles_double_hashes_non_rust() {
+        let comment = r#"```markdown
+## A second-level heading
+```"#;
+        assert_eq!(format_docs(comment), "```markdown\n## A second-level heading\n```");
+    }
 }