diff --git a/crates/ide/src/syntax_highlighting/inject.rs b/crates/ide/src/syntax_highlighting/inject.rs index 855c7fba82..6b10378701 100644 --- a/crates/ide/src/syntax_highlighting/inject.rs +++ b/crates/ide/src/syntax_highlighting/inject.rs @@ -85,6 +85,8 @@ const RUSTDOC_FENCE_TOKENS: &[&'static str] = &[ "ignore", "no_run", "compile_fail", + "allow_fail", + "test_harness", "edition2015", "edition2018", "edition2021", @@ -181,7 +183,7 @@ pub(super) fn doc_comment( is_codeblock = !is_codeblock; // Check whether code is rust by inspecting fence guards let guards = &line[idx + RUSTDOC_FENCE.len()..]; - let is_rust = guards.split(',').all(|sub| is_rustdoc_fence_token(sub.trim())); + let is_rust = guards.split(',').any(|sub| is_rustdoc_fence_token(sub.trim())); is_doctest = is_codeblock && is_rust; continue; } diff --git a/crates/rust-analyzer/src/markdown.rs b/crates/rust-analyzer/src/markdown.rs index a51ff89e4b..8932faaa87 100644 --- a/crates/rust-analyzer/src/markdown.rs +++ b/crates/rust-analyzer/src/markdown.rs @@ -8,6 +8,8 @@ const RUSTDOC_CODE_BLOCK_ATTRIBUTES_RUST_SPECIFIC: &[&str] = &[ "ignore", "no_run", "compile_fail", + "allow_fail", + "test_harness", "edition2015", "edition2018", "edition2021", @@ -28,7 +30,7 @@ pub(crate) fn format_docs(src: &str) -> String { if in_code_block { is_rust = - header.split(',').all(|sub| is_rust_specific_code_block_attribute(sub.trim())); + header.split(',').any(|sub| is_rust_specific_code_block_attribute(sub.trim())); if is_rust { line = "```rust";