mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-30 05:45:12 +00:00
Assign IDs to assists
This commit is contained in:
parent
f6f160391d
commit
ef442b8682
16 changed files with 102 additions and 43 deletions
|
@ -2,20 +2,30 @@ use ra_db::{FileRange, FilePosition};
|
|||
|
||||
use crate::{SourceFileEdit, SourceChange, db::RootDatabase};
|
||||
|
||||
pub(crate) fn assists(db: &RootDatabase, frange: FileRange) -> Vec<SourceChange> {
|
||||
pub use ra_assists::AssistId;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Assist {
|
||||
pub id: AssistId,
|
||||
pub change: SourceChange,
|
||||
}
|
||||
|
||||
pub(crate) fn assists(db: &RootDatabase, frange: FileRange) -> Vec<Assist> {
|
||||
ra_assists::assists(db, frange)
|
||||
.into_iter()
|
||||
.map(|(label, action)| {
|
||||
let file_id = frange.file_id;
|
||||
let file_edit = SourceFileEdit { file_id, edit: action.edit };
|
||||
SourceChange {
|
||||
let id = label.id;
|
||||
let change = SourceChange {
|
||||
label: label.label,
|
||||
source_file_edits: vec![file_edit],
|
||||
file_system_edits: vec![],
|
||||
cursor_position: action
|
||||
.cursor_position
|
||||
.map(|offset| FilePosition { offset, file_id }),
|
||||
}
|
||||
};
|
||||
Assist { id, change }
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue