Fix test_keyword_highlighting test

This commit is contained in:
Lukas Wirth 2025-03-01 17:49:51 +01:00
parent 8f319240b4
commit 716e9fdb8d
7 changed files with 107 additions and 38 deletions

View File

@ -54,21 +54,21 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
<span class="brace">}</span>
<span class="keyword">macro_rules</span><span class="macro_bang">!</span> <span class="macro declaration public">void</span> <span class="brace">{</span>
<span class="parenthesis">(</span><span class="punctuation">$</span><span class="parenthesis">(</span><span class="punctuation">$</span>tt<span class="colon">:</span>tt<span class="parenthesis">)</span><span class="punctuation">*</span><span class="parenthesis">)</span> <span class="operator">=</span><span class="operator">&gt;</span> <span class="brace">{</span><span class="brace">}</span>
<span class="parenthesis">(</span><span class="punctuation">$</span><span class="parenthesis">(</span><span class="punctuation">$</span>tt<span class="colon">:</span>tt<span class="parenthesis">)</span><span class="punctuation">*</span><span class="parenthesis">)</span> <span class="operator">=</span><span class="operator">&gt;</span> <span class="brace">{</span>discard<span class="punctuation">!</span><span class="parenthesis">(</span><span class="punctuation">$</span><span class="parenthesis">(</span><span class="punctuation">$</span>tt<span class="colon">:</span>tt<span class="parenthesis">)</span><span class="punctuation">*</span><span class="parenthesis">)</span><span class="brace">}</span>
<span class="brace">}</span>
<span class="keyword">struct</span> <span class="struct declaration">__</span> <span class="keyword">where</span> <span class="self_type_keyword">Self</span><span class="colon">:</span><span class="semicolon">;</span>
<span class="keyword">fn</span> <span class="function declaration">__</span><span class="parenthesis">(</span><span class="punctuation">_</span><span class="colon">:</span> <span class="unresolved_reference">Self</span><span class="parenthesis">)</span> <span class="brace">{</span><span class="brace">}</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword">Self</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword macro">Self</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// edition dependent</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span>try async await gen<span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="none macro">try</span> <span class="none macro">async</span> <span class="none macro">await</span> <span class="none macro">gen</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// edition and context dependent</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span>dyn<span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="none macro">dyn</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// builtin custom syntax</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span>builtin offset_of format_args asm<span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="none macro">builtin</span> <span class="none macro">offset_of</span> <span class="none macro">format_args</span> <span class="none macro">asm</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// contextual</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span>macro_rules<span class="comma">,</span> union<span class="comma">,</span> default<span class="comma">,</span> raw<span class="comma">,</span> auto<span class="comma">,</span> yeet<span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="none macro">macro_rules</span><span class="comma macro">,</span> <span class="none macro">union</span><span class="comma macro">,</span> <span class="none macro">default</span><span class="comma macro">,</span> <span class="none macro">raw</span><span class="comma macro">,</span> <span class="none macro">auto</span><span class="comma macro">,</span> <span class="none macro">yeet</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// reserved</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword">abstract</span> <span class="keyword">become</span> <span class="keyword">box</span> <span class="keyword">do</span> <span class="keyword">final</span> <span class="keyword">macro</span> <span class="keyword">override</span> <span class="keyword">priv</span> <span class="keyword">typeof</span> <span class="keyword">unsized</span> <span class="keyword">virtual</span> <span class="keyword control">yield</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword macro">abstract</span> <span class="keyword macro">become</span> <span class="keyword macro">box</span> <span class="keyword macro">do</span> <span class="keyword macro">final</span> <span class="keyword macro">macro</span> <span class="keyword macro">override</span> <span class="keyword macro">priv</span> <span class="keyword macro">typeof</span> <span class="keyword macro">unsized</span> <span class="keyword macro">virtual</span> <span class="keyword control macro">yield</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span>'static 'self 'unsafe<span class="parenthesis">)</span></code></pre>

View File

@ -54,21 +54,21 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
<span class="brace">}</span>
<span class="keyword">macro_rules</span><span class="macro_bang">!</span> <span class="macro declaration public">void</span> <span class="brace">{</span>
<span class="parenthesis">(</span><span class="punctuation">$</span><span class="parenthesis">(</span><span class="punctuation">$</span>tt<span class="colon">:</span>tt<span class="parenthesis">)</span><span class="punctuation">*</span><span class="parenthesis">)</span> <span class="operator">=</span><span class="operator">&gt;</span> <span class="brace">{</span><span class="brace">}</span>
<span class="parenthesis">(</span><span class="punctuation">$</span><span class="parenthesis">(</span><span class="punctuation">$</span>tt<span class="colon">:</span>tt<span class="parenthesis">)</span><span class="punctuation">*</span><span class="parenthesis">)</span> <span class="operator">=</span><span class="operator">&gt;</span> <span class="brace">{</span>discard<span class="punctuation">!</span><span class="parenthesis">(</span><span class="punctuation">$</span><span class="parenthesis">(</span><span class="punctuation">$</span>tt<span class="colon">:</span>tt<span class="parenthesis">)</span><span class="punctuation">*</span><span class="parenthesis">)</span><span class="brace">}</span>
<span class="brace">}</span>
<span class="keyword">struct</span> <span class="struct declaration">__</span> <span class="keyword">where</span> <span class="self_type_keyword">Self</span><span class="colon">:</span><span class="semicolon">;</span>
<span class="keyword">fn</span> <span class="function declaration">__</span><span class="parenthesis">(</span><span class="punctuation">_</span><span class="colon">:</span> <span class="unresolved_reference">Self</span><span class="parenthesis">)</span> <span class="brace">{</span><span class="brace">}</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword">Self</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword macro">Self</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// edition dependent</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword">try</span> <span class="keyword async">async</span> <span class="keyword async control">await</span> gen<span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword macro">try</span> <span class="keyword async macro">async</span> <span class="keyword async control macro">await</span> <span class="none macro">gen</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// edition and context dependent</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword">dyn</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword macro">dyn</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// builtin custom syntax</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span>builtin offset_of format_args asm<span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="none macro">builtin</span> <span class="none macro">offset_of</span> <span class="none macro">format_args</span> <span class="none macro">asm</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// contextual</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span>macro_rules<span class="comma">,</span> union<span class="comma">,</span> default<span class="comma">,</span> raw<span class="comma">,</span> auto<span class="comma">,</span> yeet<span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="none macro">macro_rules</span><span class="comma macro">,</span> <span class="none macro">union</span><span class="comma macro">,</span> <span class="none macro">default</span><span class="comma macro">,</span> <span class="none macro">raw</span><span class="comma macro">,</span> <span class="none macro">auto</span><span class="comma macro">,</span> <span class="none macro">yeet</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// reserved</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword">abstract</span> <span class="keyword">become</span> <span class="keyword">box</span> <span class="keyword">do</span> <span class="keyword">final</span> <span class="keyword">macro</span> <span class="keyword">override</span> <span class="keyword">priv</span> <span class="keyword">typeof</span> <span class="keyword">unsized</span> <span class="keyword">virtual</span> <span class="keyword control">yield</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword macro">abstract</span> <span class="keyword macro">become</span> <span class="keyword macro">box</span> <span class="keyword macro">do</span> <span class="keyword macro">final</span> <span class="keyword macro">macro</span> <span class="keyword macro">override</span> <span class="keyword macro">priv</span> <span class="keyword macro">typeof</span> <span class="keyword macro">unsized</span> <span class="keyword macro">virtual</span> <span class="keyword control macro">yield</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span>'static 'self 'unsafe<span class="parenthesis">)</span></code></pre>

View File

@ -54,21 +54,21 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
<span class="brace">}</span>
<span class="keyword">macro_rules</span><span class="macro_bang">!</span> <span class="macro declaration public">void</span> <span class="brace">{</span>
<span class="parenthesis">(</span><span class="punctuation">$</span><span class="parenthesis">(</span><span class="punctuation">$</span>tt<span class="colon">:</span>tt<span class="parenthesis">)</span><span class="punctuation">*</span><span class="parenthesis">)</span> <span class="operator">=</span><span class="operator">&gt;</span> <span class="brace">{</span><span class="brace">}</span>
<span class="parenthesis">(</span><span class="punctuation">$</span><span class="parenthesis">(</span><span class="punctuation">$</span>tt<span class="colon">:</span>tt<span class="parenthesis">)</span><span class="punctuation">*</span><span class="parenthesis">)</span> <span class="operator">=</span><span class="operator">&gt;</span> <span class="brace">{</span>discard<span class="punctuation">!</span><span class="parenthesis">(</span><span class="punctuation">$</span><span class="parenthesis">(</span><span class="punctuation">$</span>tt<span class="colon">:</span>tt<span class="parenthesis">)</span><span class="punctuation">*</span><span class="parenthesis">)</span><span class="brace">}</span>
<span class="brace">}</span>
<span class="keyword">struct</span> <span class="struct declaration">__</span> <span class="keyword">where</span> <span class="self_type_keyword">Self</span><span class="colon">:</span><span class="semicolon">;</span>
<span class="keyword">fn</span> <span class="function declaration">__</span><span class="parenthesis">(</span><span class="punctuation">_</span><span class="colon">:</span> <span class="unresolved_reference">Self</span><span class="parenthesis">)</span> <span class="brace">{</span><span class="brace">}</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword">Self</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword macro">Self</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// edition dependent</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword">try</span> <span class="keyword async">async</span> <span class="keyword async control">await</span> gen<span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword macro">try</span> <span class="keyword async macro">async</span> <span class="keyword async control macro">await</span> <span class="none macro">gen</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// edition and context dependent</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword">dyn</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword macro">dyn</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// builtin custom syntax</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span>builtin offset_of format_args asm<span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="none macro">builtin</span> <span class="none macro">offset_of</span> <span class="none macro">format_args</span> <span class="none macro">asm</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// contextual</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span>macro_rules<span class="comma">,</span> union<span class="comma">,</span> default<span class="comma">,</span> raw<span class="comma">,</span> auto<span class="comma">,</span> yeet<span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="none macro">macro_rules</span><span class="comma macro">,</span> <span class="none macro">union</span><span class="comma macro">,</span> <span class="none macro">default</span><span class="comma macro">,</span> <span class="none macro">raw</span><span class="comma macro">,</span> <span class="none macro">auto</span><span class="comma macro">,</span> <span class="none macro">yeet</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// reserved</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword">abstract</span> <span class="keyword">become</span> <span class="keyword">box</span> <span class="keyword">do</span> <span class="keyword">final</span> <span class="keyword">macro</span> <span class="keyword">override</span> <span class="keyword">priv</span> <span class="keyword">typeof</span> <span class="keyword">unsized</span> <span class="keyword">virtual</span> <span class="keyword control">yield</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword macro">abstract</span> <span class="keyword macro">become</span> <span class="keyword macro">box</span> <span class="keyword macro">do</span> <span class="keyword macro">final</span> <span class="keyword macro">macro</span> <span class="keyword macro">override</span> <span class="keyword macro">priv</span> <span class="keyword macro">typeof</span> <span class="keyword macro">unsized</span> <span class="keyword macro">virtual</span> <span class="keyword control macro">yield</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span>'static 'self 'unsafe<span class="parenthesis">)</span></code></pre>

View File

@ -54,21 +54,21 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
<span class="brace">}</span>
<span class="keyword">macro_rules</span><span class="macro_bang">!</span> <span class="macro declaration public">void</span> <span class="brace">{</span>
<span class="parenthesis">(</span><span class="punctuation">$</span><span class="parenthesis">(</span><span class="punctuation">$</span>tt<span class="colon">:</span>tt<span class="parenthesis">)</span><span class="punctuation">*</span><span class="parenthesis">)</span> <span class="operator">=</span><span class="operator">&gt;</span> <span class="brace">{</span><span class="brace">}</span>
<span class="parenthesis">(</span><span class="punctuation">$</span><span class="parenthesis">(</span><span class="punctuation">$</span>tt<span class="colon">:</span>tt<span class="parenthesis">)</span><span class="punctuation">*</span><span class="parenthesis">)</span> <span class="operator">=</span><span class="operator">&gt;</span> <span class="brace">{</span>discard<span class="punctuation">!</span><span class="parenthesis">(</span><span class="punctuation">$</span><span class="parenthesis">(</span><span class="punctuation">$</span>tt<span class="colon">:</span>tt<span class="parenthesis">)</span><span class="punctuation">*</span><span class="parenthesis">)</span><span class="brace">}</span>
<span class="brace">}</span>
<span class="keyword">struct</span> <span class="struct declaration">__</span> <span class="keyword">where</span> <span class="self_type_keyword">Self</span><span class="colon">:</span><span class="semicolon">;</span>
<span class="keyword">fn</span> <span class="function declaration">__</span><span class="parenthesis">(</span><span class="punctuation">_</span><span class="colon">:</span> <span class="unresolved_reference">Self</span><span class="parenthesis">)</span> <span class="brace">{</span><span class="brace">}</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword">Self</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword macro">Self</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// edition dependent</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword">try</span> <span class="keyword async">async</span> <span class="keyword async control">await</span> <span class="keyword">gen</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword macro">try</span> <span class="keyword async macro">async</span> <span class="keyword async control macro">await</span> <span class="keyword macro">gen</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// edition and context dependent</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword">dyn</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword macro">dyn</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// builtin custom syntax</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span>builtin offset_of format_args asm<span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="none macro">builtin</span> <span class="none macro">offset_of</span> <span class="none macro">format_args</span> <span class="none macro">asm</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// contextual</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span>macro_rules<span class="comma">,</span> union<span class="comma">,</span> default<span class="comma">,</span> raw<span class="comma">,</span> auto<span class="comma">,</span> yeet<span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="none macro">macro_rules</span><span class="comma macro">,</span> <span class="none macro">union</span><span class="comma macro">,</span> <span class="none macro">default</span><span class="comma macro">,</span> <span class="none macro">raw</span><span class="comma macro">,</span> <span class="none macro">auto</span><span class="comma macro">,</span> <span class="none macro">yeet</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="comment">// reserved</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword">abstract</span> <span class="keyword">become</span> <span class="keyword">box</span> <span class="keyword">do</span> <span class="keyword">final</span> <span class="keyword">macro</span> <span class="keyword">override</span> <span class="keyword">priv</span> <span class="keyword">typeof</span> <span class="keyword">unsized</span> <span class="keyword">virtual</span> <span class="keyword control">yield</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword macro">abstract</span> <span class="keyword macro">become</span> <span class="keyword macro">box</span> <span class="keyword macro">do</span> <span class="keyword macro">final</span> <span class="keyword macro">macro</span> <span class="keyword macro">override</span> <span class="keyword macro">priv</span> <span class="keyword macro">typeof</span> <span class="keyword macro">unsized</span> <span class="keyword macro">virtual</span> <span class="keyword control macro">yield</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="macro public">void</span><span class="macro_bang">!</span><span class="parenthesis">(</span>'static 'self 'unsafe<span class="parenthesis">)</span></code></pre>

View File

@ -0,0 +1,50 @@
<style>
body { margin: 0; }
pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padding: 0.4em; }
.lifetime { color: #DFAF8F; font-style: italic; }
.label { color: #DFAF8F; font-style: italic; }
.comment { color: #7F9F7F; }
.documentation { color: #629755; }
.intra_doc_link { font-style: italic; }
.injected { opacity: 0.65 ; }
.struct, .enum { color: #7CB8BB; }
.enum_variant { color: #BDE0F3; }
.string_literal { color: #CC9393; }
.field { color: #94BFF3; }
.function { color: #93E0E3; }
.function.unsafe { color: #BC8383; }
.trait.unsafe { color: #BC8383; }
.operator.unsafe { color: #BC8383; }
.mutable.unsafe { color: #BC8383; text-decoration: underline; }
.keyword.unsafe { color: #BC8383; font-weight: bold; }
.macro.unsafe { color: #BC8383; }
.parameter { color: #94BFF3; }
.text { color: #DCDCCC; }
.type { color: #7CB8BB; }
.builtin_type { color: #8CD0D3; }
.type_param { color: #DFAF8F; }
.attribute { color: #94BFF3; }
.numeric_literal { color: #BFEBBF; }
.bool_literal { color: #BFE6EB; }
.macro { color: #94BFF3; }
.proc_macro { color: #94BFF3; text-decoration: underline; }
.derive { color: #94BFF3; font-style: italic; }
.module { color: #AFD8AF; }
.value_param { color: #DCDCCC; }
.variable { color: #DCDCCC; }
.format_specifier { color: #CC696B; }
.mutable { text-decoration: underline; }
.escape_sequence { color: #94BFF3; }
.keyword { color: #F0DFAF; font-weight: bold; }
.control { font-style: italic; }
.reference { font-style: italic; font-weight: bold; }
.const { font-weight: bolder; }
.invalid_escape_sequence { color: #FC5555; text-decoration: wavy underline; }
.unresolved_reference { color: #FC5555; text-decoration: wavy underline; }
</style>
<pre><code><span class="module crate_root library">lib2015</span><span class="operator">::</span><span class="macro library">void_2015</span><span class="macro_bang">!</span><span class="parenthesis">(</span>try async await <span class="none macro">gen</span><span class="parenthesis">)</span><span class="semicolon">;</span>
<span class="module crate_root library">lib2024</span><span class="operator">::</span><span class="macro library">void_2024</span><span class="macro_bang">!</span><span class="parenthesis">(</span><span class="keyword macro">try</span> <span class="keyword async macro">async</span> <span class="keyword async control macro">await</span> <span class="none macro">gen</span><span class="parenthesis">)</span><span class="semicolon">;</span>
</code></pre>

View File

@ -386,7 +386,7 @@ mod __ {
}
macro_rules! void {
($($tt:tt)*) => {}
($($tt:tt)*) => {discard!($($tt:tt)*)}
}
struct __ where Self:;
@ -411,6 +411,31 @@ void!('static 'self 'unsafe)
}
}
#[test]
fn test_keyword_macro_edition_highlighting() {
check_highlighting(
r#"
//- /main.rs crate:main edition:2018 deps:lib2015,lib2024
lib2015::void_2015!(try async await gen);
lib2024::void_2024!(try async await gen);
//- /lib2015.rs crate:lib2015 edition:2015
#[macro_export]
macro_rules! void_2015 {
($($tt:tt)*) => {discard!($($tt:tt)*)}
}
//- /lib2024.rs crate:lib2024 edition:2024
#[macro_export]
macro_rules! void_2024 {
($($tt:tt)*) => {discard!($($tt:tt)*)}
}
"#,
expect_file![format!("./test_data/highlight_keywords_macros.html")],
false,
);
}
#[test]
fn test_string_highlighting() {
// The format string detection is based on macro-expansion,

View File

@ -218,16 +218,11 @@ impl FixtureWithProjectMeta {
);
}
if line.starts_with("//-") {
if let Some(line) = line.strip_prefix("//-") {
let meta = Self::parse_meta_line(line);
res.push(meta);
} else {
if line.starts_with("// ")
&& line.contains(':')
&& !line.contains("::")
&& !line.contains('.')
&& line.chars().all(|it| !it.is_uppercase())
{
if matches!(line.strip_prefix("// "), Some(l) if l.trim().starts_with('/')) {
panic!("looks like invalid metadata line: {line:?}");
}
@ -242,8 +237,7 @@ impl FixtureWithProjectMeta {
//- /lib.rs crate:foo deps:bar,baz cfg:foo=a,bar=b env:OUTDIR=path/to,OTHER=foo
fn parse_meta_line(meta: &str) -> Fixture {
assert!(meta.starts_with("//-"));
let meta = meta["//-".len()..].trim();
let meta = meta.trim();
let mut components = meta.split_ascii_whitespace();
let path = components.next().expect("fixture meta must start with a path").to_owned();