Skip to content

Commit 2b485d7

Browse files
authored
Merge pull request #19137 from asuto15/highlight-extern-crate
fix: highlight `extern crate` in doc comments
2 parents 5ec9d9f + c14140a commit 2b485d7

File tree

3 files changed

+19
-0
lines changed

3 files changed

+19
-0
lines changed

crates/ide/src/syntax_highlighting/highlight.rs

+1
Original file line numberDiff line numberDiff line change
@@ -703,6 +703,7 @@ fn highlight_name_ref_by_syntax(
703703
};
704704

705705
match parent.kind() {
706+
EXTERN_CRATE => HlTag::Symbol(SymbolKind::Module) | HlMod::CrateRoot,
706707
METHOD_CALL_EXPR => ast::MethodCallExpr::cast(parent)
707708
.and_then(|it| highlight_method_call(sema, krate, &it, edition))
708709
.unwrap_or_else(|| SymbolKind::Method.into()),

crates/ide/src/syntax_highlighting/test_data/highlight_doctest.html

+9
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,15 @@
5050
<span class="comment documentation">//!</span><span class="comment documentation"> </span><span class="keyword injected">fn</span><span class="none injected"> </span><span class="function declaration injected">test</span><span class="parenthesis injected">(</span><span class="parenthesis injected">)</span><span class="none injected"> </span><span class="brace injected">{</span><span class="brace injected">}</span>
5151
<span class="comment documentation">//! ```</span>
5252

53+
<span class="comment documentation">//! ```rust</span>
54+
<span class="comment documentation">//!</span><span class="comment documentation"> </span><span class="keyword injected">extern</span><span class="none injected"> </span><span class="keyword injected">crate</span><span class="none injected"> </span><span class="self_keyword crate_root injected">self</span><span class="semicolon injected">;</span>
55+
<span class="comment documentation">//!</span><span class="comment documentation"> </span><span class="keyword injected">extern</span><span class="none injected"> </span><span class="keyword injected">crate</span><span class="none injected"> </span><span class="module crate_root injected">std</span><span class="semicolon injected">;</span>
56+
<span class="comment documentation">//!</span><span class="comment documentation"> </span><span class="keyword injected">extern</span><span class="none injected"> </span><span class="keyword injected">crate</span><span class="none injected"> </span><span class="module crate_root injected">core</span><span class="semicolon injected">;</span>
57+
<span class="comment documentation">//!</span><span class="comment documentation"> </span><span class="keyword injected">extern</span><span class="none injected"> </span><span class="keyword injected">crate</span><span class="none injected"> </span><span class="module crate_root injected">alloc</span><span class="semicolon injected">;</span>
58+
<span class="comment documentation">//!</span><span class="comment documentation"> </span><span class="keyword injected">extern</span><span class="none injected"> </span><span class="keyword injected">crate</span><span class="none injected"> </span><span class="module crate_root injected">proc_macro</span><span class="semicolon injected">;</span>
59+
<span class="comment documentation">//!</span><span class="comment documentation"> </span><span class="keyword injected">extern</span><span class="none injected"> </span><span class="keyword injected">crate</span><span class="none injected"> </span><span class="module crate_root injected">test</span><span class="semicolon injected">;</span>
60+
<span class="comment documentation">//!</span><span class="comment documentation"> </span><span class="keyword injected">extern</span><span class="none injected"> </span><span class="keyword injected">crate</span><span class="none injected"> </span><span class="module crate_root injected">Krate</span><span class="semicolon injected">;</span>
61+
<span class="comment documentation">//! ```</span>
5362
<span class="keyword">mod</span> <span class="module declaration">outline_module</span><span class="semicolon">;</span>
5463

5564
<span class="comment documentation">/// ```</span>

crates/ide/src/syntax_highlighting/tests.rs

+9
Original file line numberDiff line numberDiff line change
@@ -722,6 +722,15 @@ fn test_highlight_doc_comment() {
722722
//! fn test() {}
723723
//! ```
724724
725+
//! ```rust
726+
//! extern crate self;
727+
//! extern crate std;
728+
//! extern crate core;
729+
//! extern crate alloc;
730+
//! extern crate proc_macro;
731+
//! extern crate test;
732+
//! extern crate Krate;
733+
//! ```
725734
mod outline_module;
726735
727736
/// ```

0 commit comments

Comments
 (0)