From b98c16a034620913f3dbc67bd3f48ad2686face7 Mon Sep 17 00:00:00 2001 From: Jeremy Kolb Date: Sun, 28 Jun 2020 18:36:05 -0400 Subject: Categorize assists --- crates/ra_assists/src/lib.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'crates/ra_assists/src/lib.rs') diff --git a/crates/ra_assists/src/lib.rs b/crates/ra_assists/src/lib.rs index 1745f44a5..dd26e192f 100644 --- a/crates/ra_assists/src/lib.rs +++ b/crates/ra_assists/src/lib.rs @@ -37,6 +37,7 @@ pub struct GroupLabel(pub String); #[derive(Debug, Clone)] pub struct Assist { pub id: AssistId, + pub kind: AssistKind, /// Short description of the assist, as shown in the UI. pub label: String, pub group: Option, @@ -51,6 +52,18 @@ pub struct ResolvedAssist { pub source_change: SourceChange, } +#[derive(Debug, Copy, Clone)] +pub enum AssistKind { + None, + QuickFix, + Refactor, + RefactorExtract, + RefactorInline, + RefactorRewrite, + Source, + OrganizeImports, +} + impl Assist { /// Return all the assists applicable at the given position. /// @@ -86,13 +99,14 @@ impl Assist { pub(crate) fn new( id: AssistId, + kind: AssistKind, label: String, group: Option, target: TextRange, ) -> Assist { // FIXME: make fields private, so that this invariant can't be broken assert!(label.starts_with(|c: char| c.is_uppercase())); - Assist { id, label, group, target } + Assist { id, kind, label, group, target } } } -- cgit v1.2.3