fix: Prioritize tuple fields in highlight_related

This commit is contained in:
Lukas Wirth 2021-11-25 16:34:32 +01:00
parent 4ca6233bd2
commit 4bf75c5d6e

View File

@ -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)
@ -346,6 +345,22 @@ mod tests {
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(