diff options
author | Aleksey Kladov <[email protected]> | 2020-05-06 15:39:11 +0100 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2020-05-06 15:39:11 +0100 |
commit | 020ca6695f4d58f651984c4fbe2227d891896bb3 (patch) | |
tree | 5189803adf9b8d89cb4823362e568748de039396 /crates/ra_assists/src/assist_ctx.rs | |
parent | 4d50709a96f92f3927b3ac59110d593b49c53008 (diff) |
Simplify
Diffstat (limited to 'crates/ra_assists/src/assist_ctx.rs')
-rw-r--r-- | crates/ra_assists/src/assist_ctx.rs | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/crates/ra_assists/src/assist_ctx.rs b/crates/ra_assists/src/assist_ctx.rs index af6756d17..871671de2 100644 --- a/crates/ra_assists/src/assist_ctx.rs +++ b/crates/ra_assists/src/assist_ctx.rs | |||
@@ -13,7 +13,7 @@ use ra_syntax::{ | |||
13 | }; | 13 | }; |
14 | use ra_text_edit::TextEditBuilder; | 14 | use ra_text_edit::TextEditBuilder; |
15 | 15 | ||
16 | use crate::{AssistFile, AssistId, AssistLabel, GroupLabel, ResolvedAssist}; | 16 | use crate::{AssistId, AssistLabel, GroupLabel, ResolvedAssist}; |
17 | 17 | ||
18 | #[derive(Clone, Debug)] | 18 | #[derive(Clone, Debug)] |
19 | pub(crate) struct Assist(pub(crate) Vec<AssistInfo>); | 19 | pub(crate) struct Assist(pub(crate) Vec<AssistInfo>); |
@@ -107,7 +107,7 @@ impl<'a> AssistCtx<'a> { | |||
107 | let source_change = { | 107 | let source_change = { |
108 | let mut edit = ActionBuilder::new(&self); | 108 | let mut edit = ActionBuilder::new(&self); |
109 | f(&mut edit); | 109 | f(&mut edit); |
110 | edit.build(change_label, self.frange.file_id) | 110 | edit.build(change_label) |
111 | }; | 111 | }; |
112 | info = info.resolved(source_change) | 112 | info = info.resolved(source_change) |
113 | }; | 113 | }; |
@@ -166,7 +166,7 @@ impl<'a> AssistGroup<'a> { | |||
166 | let source_change = { | 166 | let source_change = { |
167 | let mut edit = ActionBuilder::new(&self.ctx); | 167 | let mut edit = ActionBuilder::new(&self.ctx); |
168 | f(&mut edit); | 168 | f(&mut edit); |
169 | edit.build(change_label, self.ctx.frange.file_id) | 169 | edit.build(change_label) |
170 | }; | 170 | }; |
171 | info = info.resolved(source_change) | 171 | info = info.resolved(source_change) |
172 | }; | 172 | }; |
@@ -186,7 +186,7 @@ impl<'a> AssistGroup<'a> { | |||
186 | pub(crate) struct ActionBuilder<'a, 'b> { | 186 | pub(crate) struct ActionBuilder<'a, 'b> { |
187 | edit: TextEditBuilder, | 187 | edit: TextEditBuilder, |
188 | cursor_position: Option<TextSize>, | 188 | cursor_position: Option<TextSize>, |
189 | file: AssistFile, | 189 | file: FileId, |
190 | ctx: &'a AssistCtx<'b>, | 190 | ctx: &'a AssistCtx<'b>, |
191 | } | 191 | } |
192 | 192 | ||
@@ -195,7 +195,7 @@ impl<'a, 'b> ActionBuilder<'a, 'b> { | |||
195 | Self { | 195 | Self { |
196 | edit: TextEditBuilder::default(), | 196 | edit: TextEditBuilder::default(), |
197 | cursor_position: None, | 197 | cursor_position: None, |
198 | file: AssistFile::default(), | 198 | file: ctx.frange.file_id, |
199 | ctx, | 199 | ctx, |
200 | } | 200 | } |
201 | } | 201 | } |
@@ -254,20 +254,16 @@ impl<'a, 'b> ActionBuilder<'a, 'b> { | |||
254 | algo::diff(&node, &new).into_text_edit(&mut self.edit) | 254 | algo::diff(&node, &new).into_text_edit(&mut self.edit) |
255 | } | 255 | } |
256 | 256 | ||
257 | pub(crate) fn set_file(&mut self, assist_file: AssistFile) { | 257 | pub(crate) fn set_file(&mut self, assist_file: FileId) { |
258 | self.file = assist_file | 258 | self.file = assist_file; |
259 | } | 259 | } |
260 | 260 | ||
261 | fn build(self, change_label: String, current_file: FileId) -> SourceChange { | 261 | fn build(self, change_label: String) -> SourceChange { |
262 | let edit = self.edit.finish(); | 262 | let edit = self.edit.finish(); |
263 | if edit.is_empty() && self.cursor_position.is_none() { | 263 | if edit.is_empty() && self.cursor_position.is_none() { |
264 | panic!("Only call `add_assist` if the assist can be applied") | 264 | panic!("Only call `add_assist` if the assist can be applied") |
265 | } | 265 | } |
266 | let file = match self.file { | ||
267 | AssistFile::CurrentFile => current_file, | ||
268 | AssistFile::TargetFile(it) => it, | ||
269 | }; | ||
270 | SingleFileChange { label: change_label, edit, cursor_position: self.cursor_position } | 266 | SingleFileChange { label: change_label, edit, cursor_position: self.cursor_position } |
271 | .into_source_change(file) | 267 | .into_source_change(self.file) |
272 | } | 268 | } |
273 | } | 269 | } |