Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/highlight_related.rs')
-rw-r--r--crates/ide/src/highlight_related.rs21
1 files changed, 18 insertions, 3 deletions
diff --git a/crates/ide/src/highlight_related.rs b/crates/ide/src/highlight_related.rs
index 357b0d2455..aac23be777 100644
--- a/crates/ide/src/highlight_related.rs
+++ b/crates/ide/src/highlight_related.rs
@@ -10,7 +10,7 @@ use rustc_hash::FxHashSet;
use syntax::{
ast::{self, HasLoopBody},
match_ast, AstNode,
- SyntaxKind::IDENT,
+ SyntaxKind::{IDENT, INT_NUMBER},
SyntaxNode, SyntaxToken, TextRange, T,
};
@@ -54,10 +54,9 @@ pub(crate) fn highlight_related(
T![?] => 4, // prefer `?` when the cursor is sandwiched like in `await$0?`
T![->] => 3,
kind if kind.is_keyword() => 2,
- IDENT => 1,
+ IDENT | INT_NUMBER => 1,
_ => 0,
})?;
-
match token.kind() {
T![?] if config.exit_points && token.parent().and_then(ast::TryExpr::cast).is_some() => {
highlight_exit_points(sema, token)
@@ -347,6 +346,22 @@ mod tests {
}
#[test]
+ fn test_hl_tuple_fields() {
+ check(
+ r#"
+struct Tuple(u32, u32);
+
+fn foo(t: Tuple) {
+ t.0$0;
+ // ^ read
+ t.0;
+ // ^ read
+}
+"#,
+ );
+ }
+
+ #[test]
fn test_hl_module() {
check(
r#"