Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_assists/src/assist_context.rs')
| -rw-r--r-- | crates/ide_assists/src/assist_context.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/crates/ide_assists/src/assist_context.rs b/crates/ide_assists/src/assist_context.rs index fd46aa2479..ec85faaf46 100644 --- a/crates/ide_assists/src/assist_context.rs +++ b/crates/ide_assists/src/assist_context.rs @@ -193,9 +193,11 @@ impl Assists { return None; } + let mut trigger_signature_help = false; let source_change = if self.resolve.should_resolve(&id) { let mut builder = AssistBuilder::new(self.file); f(&mut builder); + trigger_signature_help = builder.trigger_signature_help; Some(builder.finish()) } else { None @@ -203,7 +205,7 @@ impl Assists { let label = Label::new(label); let group = group.cloned(); - self.buf.push(Assist { id, label, group, target, source_change }); + self.buf.push(Assist { id, label, group, target, source_change, trigger_signature_help }); Some(()) } @@ -219,6 +221,7 @@ pub(crate) struct AssistBuilder { edit: TextEditBuilder, file_id: FileId, source_change: SourceChange, + trigger_signature_help: bool, /// Maps the original, immutable `SyntaxNode` to a `clone_for_update` twin. mutated_tree: Option<TreeMutator>, @@ -252,6 +255,7 @@ impl AssistBuilder { edit: TextEdit::builder(), file_id, source_change: SourceChange::default(), + trigger_signature_help: false, mutated_tree: None, } } @@ -332,6 +336,9 @@ impl AssistBuilder { let file_system_edit = FileSystemEdit::MoveFile { src, dst }; self.source_change.push_file_system_edit(file_system_edit); } + pub(crate) fn trigger_signature_help(&mut self) { + self.trigger_signature_help = true; + } fn finish(mut self) -> SourceChange { self.commit(); |