Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-db/src/assists.rs')
-rw-r--r--crates/ide-db/src/assists.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/crates/ide-db/src/assists.rs b/crates/ide-db/src/assists.rs
index 1c40685ebb..7868f6148e 100644
--- a/crates/ide-db/src/assists.rs
+++ b/crates/ide-db/src/assists.rs
@@ -105,7 +105,7 @@ impl FromStr for AssistKind {
/// Unique identifier of the assist, should not be shown to the user
/// directly.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
-pub struct AssistId(pub &'static str, pub AssistKind);
+pub struct AssistId(pub &'static str, pub AssistKind, pub Option<usize>);
/// A way to control how many assist to resolve during the assist resolution.
/// When an assist is resolved, its edits are calculated that might be costly to always do by default.
@@ -128,6 +128,8 @@ pub struct SingleResolve {
pub assist_id: String,
// The kind of the assist.
pub assist_kind: AssistKind,
+ /// Subtype of the assist. When many assists have the same id, it differentiates among them.
+ pub assist_subtype: Option<usize>,
}
impl AssistResolveStrategy {
@@ -136,7 +138,9 @@ impl AssistResolveStrategy {
AssistResolveStrategy::None => false,
AssistResolveStrategy::All => true,
AssistResolveStrategy::Single(single_resolve) => {
- single_resolve.assist_id == id.0 && single_resolve.assist_kind == id.1
+ single_resolve.assist_id == id.0
+ && single_resolve.assist_kind == id.1
+ && single_resolve.assist_subtype == id.2
}
}
}