diff options
| author | Stanislav <enomado@users.noreply.github.com> | 2022-09-07 03:23:21 +0300 |
|---|---|---|
| committer | Stanislav <enomado@users.noreply.github.com> | 2022-09-07 03:24:55 +0300 |
| commit | 92d54f9b304092f20645d8ef0d54d7b724810428 (patch) | |
| tree | 127f664a3d0733523aa309c8c6bb0355b2d1107d | |
| parent | bd0eeb3f041cc57dad3ac40ed6cfcc08f1055638 (diff) | |
| download | rust-92d54f9b304092f20645d8ef0d54d7b724810428.tar.gz rust-92d54f9b304092f20645d8ef0d54d7b724810428.zip | |
typo and draft
| -rw-r--r-- | crates/ide/src/references.rs | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/crates/ide/src/references.rs b/crates/ide/src/references.rs index d4c431f75f7..e495bfee556 100644 --- a/crates/ide/src/references.rs +++ b/crates/ide/src/references.rs @@ -115,12 +115,32 @@ pub(crate) fn find_all_refs( } fn retain_import_usages(usages: &mut UsageSearchResult, sema: &Semantics<'_, RootDatabase>) { - for (file_id, refs) in &mut usages.references { + // todo use this https://github.com/rust-lang/rust-analyzer/blob/master/crates/rust-analyzer/src/config.rs#L432 + + for (_file_id, refs) in &mut usages.references { refs.retain(|it| { - match if.name.as_name_ref() { - Some(name_ref) => name_ref.syntax().ancestors().any(|it| !matches(it.kind(), USE)), + match it.name.as_name_ref() { + Some(name_ref) => name_ref.syntax().ancestors().any(|it_ref| { + dbg!(&it_ref); + !matches!(it_ref.kind(), USE) + }), None => true, } + + // this works: + // let file_sema = sema.parse(file_id.clone()).syntax().clone(); + + // let maybe_node = file_sema.child_or_token_at_range(it.range.clone()); + + // if let Some(node) = maybe_node { + // let res = match node { + // syntax::NodeOrToken::Node(x) => !matches!(x.kind(), USE), + // syntax::NodeOrToken::Token(_) => true, + // }; + // res + // } else { + // true + // } }); } } |
