From: Lukas Wirth Date: Thu, 25 Nov 2021 15:34:32 +0000 (+0100) Subject: fix: Prioritize tuple fields in highlight_related X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=4bf75c5d6e3311c9e09e02556a5080ac4e4a6b61;p=rust.git fix: Prioritize tuple fields in highlight_related --- diff --git a/crates/ide/src/highlight_related.rs b/crates/ide/src/highlight_related.rs index 357b0d2455c..aac23be777f 100644 --- a/crates/ide/src/highlight_related.rs +++ b/crates/ide/src/highlight_related.rs @@ -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(