Skip to content

Commit 2cff701

Browse files
authored
Merge pull request #19292 from Veykril/push-zonnrrlosqmv
Fix syntax highlightingg punct filtering ignoring mods
2 parents 363297d + 8641805 commit 2cff701

File tree

3 files changed

+4
-6
lines changed

3 files changed

+4
-6
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -593,7 +593,7 @@ fn filter_by_config(highlight: &mut Highlight, config: HighlightConfig) -> bool
593593
*tag = HlTag::Punctuation(HlPunct::Other);
594594
}
595595
}
596-
HlTag::Punctuation(_) if !config.punctuation => return false,
596+
HlTag::Punctuation(_) if !config.punctuation && highlight.mods.is_empty() => return false,
597597
tag @ HlTag::Punctuation(_) if !config.specialize_punctuation => {
598598
*tag = HlTag::Punctuation(HlPunct::Other);
599599
}

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,9 @@
101101
<span class="keyword">let</span> <span class="union">Union</span> <span class="brace">{</span> <span class="field">field</span><span class="colon">:</span> <span class="punctuation">_</span> <span class="brace">}</span><span class="semicolon">;</span>
102102
<span class="comment">// but not these</span>
103103
<span class="keyword">let</span> <span class="union">Union</span> <span class="brace">{</span> <span class="field unsafe">field</span> <span class="brace">}</span><span class="semicolon">;</span>
104-
<span class="keyword">let</span> <span class="union">Union</span> <span class="brace">{</span> <span class="field unsafe">field</span><span class="colon">:</span> <span class="bool_literal">true</span> <span class="brace">}</span><span class="semicolon">;</span>
105104
<span class="keyword">let</span> <span class="union">Union</span> <span class="brace">{</span> <span class="field unsafe">field</span><span class="colon">:</span> <span class="variable declaration">field</span> <span class="brace">}</span><span class="semicolon">;</span>
106105
<span class="keyword">let</span> <span class="union">Union</span> <span class="brace">{</span> <span class="field unsafe">field</span><span class="colon">:</span> <span class="keyword">ref</span> <span class="variable declaration reference">field</span> <span class="brace">}</span><span class="semicolon">;</span>
107-
<span class="keyword">let</span> <span class="union">Union</span> <span class="brace">{</span> <span class="field unsafe">field</span><span class="colon">:</span> <span class="parenthesis">(</span><span class="keyword">ref</span> <span class="variable declaration reference">field</span> <span class="punctuation">|</span> <span class="numeric_literal">0</span><span class="parenthesis">)</span> <span class="brace">}</span><span class="semicolon">;</span>
106+
<span class="keyword">let</span> <span class="union">Union</span> <span class="brace">{</span> <span class="field unsafe">field</span><span class="colon">:</span> <span class="parenthesis">(</span><span class="punctuation">_</span> <span class="punctuation">|</span> <span class="keyword">ref</span> <span class="variable declaration reference">field</span><span class="parenthesis">)</span> <span class="brace">}</span><span class="semicolon">;</span>
108107

109108
<span class="comment">// unsafe deref</span>
110109
<span class="operator unsafe">*</span><span class="operator">&</span><span class="keyword">raw</span> <span class="keyword const">const</span><span class="operator">*</span><span class="operator">&</span><span class="operator unsafe">*</span><span class="variable">x</span><span class="semicolon">;</span>

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -651,10 +651,9 @@ fn main() {
651651
let Union { field: _ };
652652
// but not these
653653
let Union { field };
654-
let Union { field: true };
655654
let Union { field: field };
656655
let Union { field: ref field };
657-
let Union { field: (ref field | 0) };
656+
let Union { field: (_ | ref field) };
658657
659658
// unsafe deref
660659
*&raw const*&*x;
@@ -672,7 +671,7 @@ fn main() {
672671
673672
core::arch::asm!(
674673
"push {base}",
675-
base$0 = const 0
674+
base = const 0
676675
);
677676
}
678677
}

0 commit comments

Comments
 (0)