more enterprisey assists API

This commit is contained in:
Aleksey Kladov
2019-01-03 18:59:17 +03:00
parent aea2183799
commit a4635a199b
11 changed files with 287 additions and 210 deletions

View File

@@ -333,19 +333,9 @@ impl db::RootDatabase {
pub(crate) fn assists(&self, frange: FileRange) -> Vec<SourceChange> {
let file = self.source_file(frange.file_id);
let offset = frange.range.start();
let actions = vec![
assists::flip_comma(&file, offset).map(|f| f()),
assists::add_derive(&file, offset).map(|f| f()),
assists::add_impl(&file, offset).map(|f| f()),
assists::change_visibility(&file, offset).map(|f| f()),
assists::introduce_variable(&file, frange.range).map(|f| f()),
];
actions
assists::assists(&file, frange.range)
.into_iter()
.filter_map(|local_edit| {
Some(SourceChange::from_local_edit(frange.file_id, local_edit?))
})
.map(|local_edit| SourceChange::from_local_edit(frange.file_id, local_edit))
.collect()
}
@@ -440,7 +430,7 @@ impl db::RootDatabase {
.map(|(file_id, text_range)| SourceFileEdit {
file_id: *file_id,
edit: {
let mut builder = ra_text_edit::TextEditBuilder::new();
let mut builder = ra_text_edit::TextEditBuilder::default();
builder.replace(*text_range, new_name.into());
builder.finish()
},