Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/extend_selection.rs')
-rw-r--r--crates/ide/src/extend_selection.rs19
1 files changed, 13 insertions, 6 deletions
diff --git a/crates/ide/src/extend_selection.rs b/crates/ide/src/extend_selection.rs
index 9b2ff070c7..1cdbf7840e 100644
--- a/crates/ide/src/extend_selection.rs
+++ b/crates/ide/src/extend_selection.rs
@@ -1,6 +1,6 @@
use std::iter::successors;
-use hir::Semantics;
+use hir::{DescendPreference, Semantics};
use ide_db::RootDatabase;
use syntax::{
algo::{self, skip_trivia_token},
@@ -140,10 +140,16 @@ fn extend_tokens_from_range(
// compute original mapped token range
let extended = {
- let fst_expanded =
- sema.descend_into_macros_single(first_token.clone(), original_range.start());
- let lst_expanded =
- sema.descend_into_macros_single(last_token.clone(), original_range.end());
+ let fst_expanded = sema.descend_into_macros_single(
+ DescendPreference::None,
+ first_token.clone(),
+ original_range.start(),
+ );
+ let lst_expanded = sema.descend_into_macros_single(
+ DescendPreference::None,
+ last_token.clone(),
+ original_range.end(),
+ );
let mut lca =
algo::least_common_ancestor(&fst_expanded.parent()?, &lst_expanded.parent()?)?;
lca = shallowest_node(&lca);
@@ -157,7 +163,8 @@ fn extend_tokens_from_range(
let validate = |offset: TextSize| {
let extended = &extended;
move |token: &SyntaxToken| -> bool {
- let expanded = sema.descend_into_macros_single(token.clone(), offset);
+ let expanded =
+ sema.descend_into_macros_single(DescendPreference::None, token.clone(), offset);
let parent = match expanded.parent() {
Some(it) => it,
None => return false,