Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_completion/src/context.rs')
| -rw-r--r-- | crates/ide_completion/src/context.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/crates/ide_completion/src/context.rs b/crates/ide_completion/src/context.rs index 3ba02d78b5..a98e10a226 100644 --- a/crates/ide_completion/src/context.rs +++ b/crates/ide_completion/src/context.rs @@ -50,6 +50,7 @@ pub(super) enum PathKind { Type, Attr { kind: AttrKind, annotated_item_kind: Option<SyntaxKind> }, Derive, + // This should be removed in favor of `has_macro_bang` in PathCompletionContext Mac, Pat, Vis { has_in_token: bool }, @@ -196,6 +197,14 @@ impl<'a> CompletionContext<'a> { } } + pub(crate) fn name_ref(&self) -> Option<&ast::NameRef> { + self.name_syntax.as_ref().and_then(ast::NameLike::as_name_ref) + } + + pub(crate) fn lifetime(&self) -> Option<&ast::Lifetime> { + self.name_syntax.as_ref().and_then(ast::NameLike::as_lifetime) + } + pub(crate) fn previous_token_is(&self, kind: SyntaxKind) -> bool { self.previous_token.as_ref().map_or(false, |tok| tok.kind() == kind) } |