Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/completions/format_string.rs')
-rw-r--r--crates/ide-completion/src/completions/format_string.rs17
1 files changed, 11 insertions, 6 deletions
diff --git a/crates/ide-completion/src/completions/format_string.rs b/crates/ide-completion/src/completions/format_string.rs
index f0c994f6b6..132599906a 100644
--- a/crates/ide-completion/src/completions/format_string.rs
+++ b/crates/ide-completion/src/completions/format_string.rs
@@ -2,16 +2,21 @@
use ide_db::syntax_helpers::format_string::is_format_string;
use itertools::Itertools;
-use syntax::{ast, AstToken, TextRange, TextSize};
+use syntax::{AstToken, TextRange, TextSize};
-use crate::{context::CompletionContext, CompletionItem, CompletionItemKind, Completions};
+use crate::{
+ context::{CompletionContext, IdentContext},
+ CompletionItem, CompletionItemKind, Completions,
+};
/// Complete identifiers in format strings.
pub(crate) fn format_string(acc: &mut Completions, ctx: &CompletionContext) {
- let string = match ast::String::cast(ctx.token.clone())
- .zip(ast::String::cast(ctx.original_token.clone()))
- {
- Some((expanded, original)) if is_format_string(&expanded) => original,
+ let string = match &ctx.ident_ctx {
+ IdentContext::String { expanded: Some(expanded), original }
+ if is_format_string(&expanded) =>
+ {
+ original
+ }
_ => return,
};
let cursor = ctx.position.offset;