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.rs9
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)
}