]> git.lizzy.rs Git - rust.git/commitdiff
fix: Prioritize tuple fields in highlight_related
authorLukas Wirth <lukastw97@gmail.com>
Thu, 25 Nov 2021 15:34:32 +0000 (16:34 +0100)
committerLukas Wirth <lukastw97@gmail.com>
Thu, 25 Nov 2021 15:34:40 +0000 (16:34 +0100)
crates/ide/src/highlight_related.rs

index 357b0d2455cd02598557e62c51a4416d6eaf340c..aac23be777ffc83d0806f8d7dc0b2427074b2895 100644 (file)
@@ -10,7 +10,7 @@
 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)
@@ -346,6 +345,22 @@ fn check_with_config(ra_fixture: &str, config: HighlightRelatedConfig) {
         assert_eq!(expected, actual);
     }
 
+    #[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(