Skip to content

Commit 187d55a

Browse files
bors[bot]Veykril
andauthored
9221: fix: Highlight tuple field accesses correctly r=Veykril a=Veykril Fixes rust-lang#9220 bors r+ Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 parents 863e23f + e09723f commit 187d55a

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

crates/ide/src/syntax_highlighting/highlight.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,9 @@ pub(super) fn element(
131131
}
132132
STRING | BYTE_STRING => HlTag::StringLiteral.into(),
133133
ATTR => HlTag::Attribute.into(),
134+
INT_NUMBER if element.ancestors().nth(1).map_or(false, |it| it.kind() == FIELD_EXPR) => {
135+
SymbolKind::Field.into()
136+
}
134137
INT_NUMBER | FLOAT_NUMBER => HlTag::NumericLiteral.into(),
135138
BYTE => HlTag::ByteLiteral.into(),
136139
CHAR => HlTag::CharLiteral.into(),

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,8 +215,8 @@
215215
<span class="keyword">let</span> <span class="variable callable declaration">a</span> <span class="operator">=</span> <span class="punctuation">|</span><span class="value_param declaration">x</span><span class="punctuation">|</span> <span class="value_param">x</span><span class="semicolon">;</span>
216216
<span class="keyword">let</span> <span class="variable callable declaration">bar</span> <span class="operator">=</span> <span class="struct">Foo</span><span class="operator">::</span><span class="function associated">baz</span><span class="semicolon">;</span>
217217

218-
<span class="keyword">let</span> <span class="variable declaration">baz</span> <span class="operator">=</span> <span class="numeric_literal">-</span><span class="numeric_literal">42</span><span class="semicolon">;</span>
219-
<span class="keyword">let</span> <span class="variable declaration">baz</span> <span class="operator">=</span> <span class="operator">-</span><span class="variable">baz</span><span class="semicolon">;</span>
218+
<span class="keyword">let</span> <span class="variable declaration">baz</span> <span class="operator">=</span> <span class="parenthesis">(</span><span class="numeric_literal">-</span><span class="numeric_literal">42</span><span class="comma">,</span><span class="parenthesis">)</span><span class="semicolon">;</span>
219+
<span class="keyword">let</span> <span class="variable declaration">baz</span> <span class="operator">=</span> <span class="operator">-</span><span class="variable">baz</span><span class="operator">.</span><span class="field">0</span><span class="semicolon">;</span>
220220

221221
<span class="keyword">let</span> <span class="punctuation">_</span> <span class="operator">=</span> <span class="logical">!</span><span class="bool_literal">true</span><span class="semicolon">;</span>
222222

crates/ide/src/syntax_highlighting/tests.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,8 +189,8 @@ fn main() {
189189
let a = |x| x;
190190
let bar = Foo::baz;
191191
192-
let baz = -42;
193-
let baz = -baz;
192+
let baz = (-42,);
193+
let baz = -baz.0;
194194
195195
let _ = !true;
196196

0 commit comments

Comments
 (0)