Skip to content

Commit 604b879

Browse files
authored
Merge pull request #19326 from Veykril/push-vovuxzkzrowp
Add missing name-ref parents to syntactic highlighting
2 parents 8463238 + 1dd859f commit 604b879

File tree

3 files changed

+11
-10
lines changed

3 files changed

+11
-10
lines changed

src/tools/rust-analyzer/crates/ide/src/syntax_highlighting/highlight.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -824,6 +824,7 @@ fn highlight_name_ref_by_syntax(
824824
h.into()
825825
}
826826
}
827+
RECORD_EXPR_FIELD | RECORD_PAT_FIELD => HlTag::Symbol(SymbolKind::Field).into(),
827828
PATH_SEGMENT => {
828829
let name_based_fallback = || {
829830
if name.text().chars().next().unwrap_or_default().is_uppercase() {
@@ -862,6 +863,8 @@ fn highlight_name_ref_by_syntax(
862863
.into(),
863864
}
864865
}
866+
ASSOC_TYPE_ARG => SymbolKind::TypeAlias.into(),
867+
USE_BOUND_GENERIC_ARG => SymbolKind::TypeParam.into(),
865868
_ => default.into(),
866869
}
867870
}

src/tools/rust-analyzer/crates/ide/src/syntax_highlighting/test_data/highlight_doctest.html

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,13 @@
4545
<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>
4646
<span class="comment documentation">//! ```</span>
4747

48+
<span class="comment documentation">//! Syntactic name ref highlighting testing</span>
4849
<span class="comment documentation">//! ```rust</span>
4950
<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>
50-
<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>
51+
<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">other</span><span class="none injected"> </span><span class="keyword injected">as</span><span class="none injected"> </span><span class="module crate_root declaration injected">otter</span><span class="semicolon injected">;</span>
5152
<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>
52-
<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>
53-
<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>
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="module crate_root injected">test</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">Krate</span><span class="semicolon injected">;</span>
53+
<span class="comment documentation">//!</span><span class="comment documentation"> </span><span class="keyword injected">trait</span><span class="none injected"> </span><span class="trait declaration injected">T</span><span class="none injected"> </span><span class="brace injected">{</span><span class="none injected"> </span><span class="keyword injected">type</span><span class="none injected"> </span><span class="type_alias associated declaration injected static trait">Assoc</span><span class="semicolon injected">;</span><span class="none injected"> </span><span class="brace injected">}</span>
54+
<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">f</span><span class="angle injected">&lt;</span><span class="type_param declaration injected">Arg</span><span class="angle injected">&gt;</span><span class="parenthesis injected">(</span><span class="parenthesis injected">)</span><span class="none injected"> </span><span class="operator injected">-&gt;</span><span class="none injected"> </span><span class="keyword injected">use</span><span class="angle injected">&lt;</span><span class="struct injected">Arg</span><span class="angle injected">&gt;</span><span class="none injected"> </span><span class="keyword injected">where</span><span class="none injected"> </span><span class="parenthesis injected">(</span><span class="parenthesis injected">)</span><span class="colon injected">:</span><span class="none injected"> </span><span class="trait injected">T</span><span class="comparison injected">&lt;</span><span class="struct injected">Assoc</span><span class="none injected"> </span><span class="operator injected">=</span><span class="none injected"> </span><span class="parenthesis injected">(</span><span class="parenthesis injected">)</span><span class="comparison injected">&gt;</span><span class="none injected"> </span><span class="brace injected">{</span><span class="brace injected">}</span>
5655
<span class="comment documentation">//! ```</span>
5756
<span class="keyword">mod</span> <span class="module declaration">outline_module</span><span class="semicolon">;</span>
5857

src/tools/rust-analyzer/crates/ide/src/syntax_highlighting/tests.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -739,14 +739,13 @@ fn test_highlight_doc_comment() {
739739
//! fn test() {}
740740
//! ```
741741
742+
//! Syntactic name ref highlighting testing
742743
//! ```rust
743744
//! extern crate self;
744-
//! extern crate std;
745+
//! extern crate other as otter;
745746
//! extern crate core;
746-
//! extern crate alloc;
747-
//! extern crate proc_macro;
748-
//! extern crate test;
749-
//! extern crate Krate;
747+
//! trait T { type Assoc; }
748+
//! fn f<Arg>() -> use<Arg> where (): T<Assoc = ()> {}
750749
//! ```
751750
mod outline_module;
752751

0 commit comments

Comments
 (0)