diff options
Diffstat (limited to 'crates/ra_ide/src')
-rw-r--r-- | crates/ra_ide/src/assists.rs | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/crates/ra_ide/src/assists.rs b/crates/ra_ide/src/assists.rs index 2b5d11681..389339a03 100644 --- a/crates/ra_ide/src/assists.rs +++ b/crates/ra_ide/src/assists.rs | |||
@@ -1,6 +1,6 @@ | |||
1 | //! FIXME: write short doc here | 1 | //! FIXME: write short doc here |
2 | 2 | ||
3 | use ra_assists::{resolved_assists, AssistAction, AssistLabel}; | 3 | use ra_assists::{resolved_assists, AssistAction}; |
4 | use ra_db::{FilePosition, FileRange}; | 4 | use ra_db::{FilePosition, FileRange}; |
5 | use ra_ide_db::RootDatabase; | 5 | use ra_ide_db::RootDatabase; |
6 | 6 | ||
@@ -21,27 +21,22 @@ pub(crate) fn assists(db: &RootDatabase, frange: FileRange) -> Vec<Assist> { | |||
21 | .into_iter() | 21 | .into_iter() |
22 | .map(|assist| { | 22 | .map(|assist| { |
23 | let file_id = frange.file_id; | 23 | let file_id = frange.file_id; |
24 | let assist_label = &assist.label; | ||
25 | Assist { | 24 | Assist { |
26 | id: assist_label.id, | 25 | id: assist.label.id, |
27 | label: assist_label.label.clone(), | 26 | label: assist.label.label.clone(), |
28 | group_label: assist.group_label.map(|it| it.0), | 27 | group_label: assist.label.group.map(|it| it.0), |
29 | source_change: action_to_edit(assist.action, file_id, assist_label), | 28 | source_change: action_to_edit(assist.action, file_id, assist.label.label.clone()), |
30 | } | 29 | } |
31 | }) | 30 | }) |
32 | .collect() | 31 | .collect() |
33 | } | 32 | } |
34 | 33 | ||
35 | fn action_to_edit( | 34 | fn action_to_edit(action: AssistAction, file_id: FileId, label: String) -> SourceChange { |
36 | action: AssistAction, | ||
37 | file_id: FileId, | ||
38 | assist_label: &AssistLabel, | ||
39 | ) -> SourceChange { | ||
40 | let file_id = match action.file { | 35 | let file_id = match action.file { |
41 | ra_assists::AssistFile::TargetFile(it) => it, | 36 | ra_assists::AssistFile::TargetFile(it) => it, |
42 | _ => file_id, | 37 | _ => file_id, |
43 | }; | 38 | }; |
44 | let file_edit = SourceFileEdit { file_id, edit: action.edit }; | 39 | let file_edit = SourceFileEdit { file_id, edit: action.edit }; |
45 | SourceChange::source_file_edit(assist_label.label.clone(), file_edit) | 40 | SourceChange::source_file_edit(label, file_edit) |
46 | .with_cursor_opt(action.cursor_position.map(|offset| FilePosition { offset, file_id })) | 41 | .with_cursor_opt(action.cursor_position.map(|offset| FilePosition { offset, file_id })) |
47 | } | 42 | } |