Syntax highlighting for documentation comments on macro definitions

This commit is contained in:
Leander Tentrup 2020-06-20 00:02:42 +02:00
parent 491eda61e3
commit df5b37cb61
3 changed files with 19 additions and 2 deletions

View file

@ -84,4 +84,13 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
<span class="keyword">pub</span> <span class="keyword">fn</span> <span class="function declaration">foo</span>(&<span class="self_keyword">self</span>) -&gt; <span class="builtin_type">bool</span> {
<span class="bool_literal">true</span>
}
}
<span class="comment documentation">/// ```</span>
<span class="comment documentation">/// </span><span class="macro">noop!</span>(<span class="numeric_literal">1</span>);
<span class="comment documentation">/// ```</span>
<span class="macro">macro_rules!</span> <span class="macro declaration">noop</span> {
($expr:expr) =&gt; {
$expr
}
}</code></pre>

View file

@ -121,7 +121,6 @@ pub(crate) fn highlight(
assert!(current_macro_call == Some(mc));
current_macro_call = None;
format_string = None;
continue;
}
_ => (),
}
@ -150,7 +149,7 @@ pub(crate) fn highlight(
let range = element.text_range();
let element_to_highlight = if current_macro_call.is_some() {
let element_to_highlight = if current_macro_call.is_some() && element.kind() != COMMENT {
// Inside a macro -- expand it first
let token = match element.clone().into_token() {
Some(it) if it.parent().kind() == TOKEN_TREE => it,

View file

@ -344,6 +344,15 @@ impl Foo {
true
}
}
/// ```
/// noop!(1);
/// ```
macro_rules! noop {
($expr:expr) => {
$expr
}
}
"#
.trim(),
"crates/ra_ide/src/snapshots/highlight_doctest.html",