From 8a959497b1fab35294d8ccfa5e51c80a3551a224 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Mon, 19 Apr 2021 11:41:45 +0200 Subject: Don't require all doc fences to be valid for identifying rust code --- crates/ide/src/syntax_highlighting/inject.rs | 4 +++- crates/rust-analyzer/src/markdown.rs | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'crates') diff --git a/crates/ide/src/syntax_highlighting/inject.rs b/crates/ide/src/syntax_highlighting/inject.rs index 855c7fba8..6b1037870 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 a51ff89e4..8932faaa8 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"; -- cgit v1.2.3