aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_assists/src/assist_ctx.rs
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2020-05-05 20:36:53 +0100
committerGitHub <[email protected]>2020-05-05 20:36:53 +0100
commitd38741f681c173a96e991dc3c213d4c85dc5a8af (patch)
tree4a34a03a160441b981aa5acfb8928f5ffe20fbfb /crates/ra_assists/src/assist_ctx.rs
parenta4778ddb7a00f552a8e653bbf56ae9fd69cfe1d3 (diff)
parent3908fad1fe02efedc810d7bd8f765b1434684cef (diff)
Merge #4327
4327: Refactor assists r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
Diffstat (limited to 'crates/ra_assists/src/assist_ctx.rs')
-rw-r--r--crates/ra_assists/src/assist_ctx.rs14
1 files changed, 7 insertions, 7 deletions
diff --git a/crates/ra_assists/src/assist_ctx.rs b/crates/ra_assists/src/assist_ctx.rs
index da2880037..82f61bc8f 100644
--- a/crates/ra_assists/src/assist_ctx.rs
+++ b/crates/ra_assists/src/assist_ctx.rs
@@ -38,8 +38,7 @@ impl AssistInfo {
38 38
39 pub(crate) fn into_resolved(self) -> Option<ResolvedAssist> { 39 pub(crate) fn into_resolved(self) -> Option<ResolvedAssist> {
40 let label = self.label; 40 let label = self.label;
41 let group_label = self.group_label; 41 self.action.map(|action| ResolvedAssist { label, action })
42 self.action.map(|action| ResolvedAssist { label, group_label, action })
43 } 42 }
44} 43}
45 44
@@ -100,7 +99,7 @@ impl<'a> AssistCtx<'a> {
100 label: impl Into<String>, 99 label: impl Into<String>,
101 f: impl FnOnce(&mut ActionBuilder), 100 f: impl FnOnce(&mut ActionBuilder),
102 ) -> Option<Assist> { 101 ) -> Option<Assist> {
103 let label = AssistLabel::new(label.into(), id); 102 let label = AssistLabel::new(id, label.into(), None);
104 103
105 let mut info = AssistInfo::new(label); 104 let mut info = AssistInfo::new(label);
106 if self.should_compute_edit { 105 if self.should_compute_edit {
@@ -116,7 +115,8 @@ impl<'a> AssistCtx<'a> {
116 } 115 }
117 116
118 pub(crate) fn add_assist_group(self, group_name: impl Into<String>) -> AssistGroup<'a> { 117 pub(crate) fn add_assist_group(self, group_name: impl Into<String>) -> AssistGroup<'a> {
119 AssistGroup { ctx: self, group_name: group_name.into(), assists: Vec::new() } 118 let group = GroupLabel(group_name.into());
119 AssistGroup { ctx: self, group, assists: Vec::new() }
120 } 120 }
121 121
122 pub(crate) fn token_at_offset(&self) -> TokenAtOffset<SyntaxToken> { 122 pub(crate) fn token_at_offset(&self) -> TokenAtOffset<SyntaxToken> {
@@ -146,7 +146,7 @@ impl<'a> AssistCtx<'a> {
146 146
147pub(crate) struct AssistGroup<'a> { 147pub(crate) struct AssistGroup<'a> {
148 ctx: AssistCtx<'a>, 148 ctx: AssistCtx<'a>,
149 group_name: String, 149 group: GroupLabel,
150 assists: Vec<AssistInfo>, 150 assists: Vec<AssistInfo>,
151} 151}
152 152
@@ -157,9 +157,9 @@ impl<'a> AssistGroup<'a> {
157 label: impl Into<String>, 157 label: impl Into<String>,
158 f: impl FnOnce(&mut ActionBuilder), 158 f: impl FnOnce(&mut ActionBuilder),
159 ) { 159 ) {
160 let label = AssistLabel::new(label.into(), id); 160 let label = AssistLabel::new(id, label.into(), Some(self.group.clone()));
161 161
162 let mut info = AssistInfo::new(label).with_group(GroupLabel(self.group_name.clone())); 162 let mut info = AssistInfo::new(label).with_group(self.group.clone());
163 if self.ctx.should_compute_edit { 163 if self.ctx.should_compute_edit {
164 let action = { 164 let action = {
165 let mut edit = ActionBuilder::new(&self.ctx); 165 let mut edit = ActionBuilder::new(&self.ctx);