Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions crates/ide/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -490,25 +490,25 @@ impl Analysis {
.unwrap_or_default())
}

/// Computes assists (aka code actions aka intentions) for the given
/// position. Computes enough info to show the lightbulb list in the editor,
/// but doesn't compute actual edits, to improve performance.
///
/// When the user clicks on the assist, call `resolve_assists` to get the
/// edit.
pub fn assists(&self, config: &AssistConfig, frange: FileRange) -> Cancelable<Vec<Assist>> {
self.with_db(|db| Assist::unresolved(db, config, frange))
}

/// Computes resolved assists with source changes for the given position.
pub fn resolved_assists(
pub fn resolve_assists(
&self,
config: &AssistConfig,
frange: FileRange,
) -> Cancelable<Vec<ResolvedAssist>> {
self.with_db(|db| assists::Assist::resolved(db, config, frange))
}

/// Computes unresolved assists (aka code actions aka intentions) for the given
/// position.
pub fn unresolved_assists(
&self,
config: &AssistConfig,
frange: FileRange,
) -> Cancelable<Vec<Assist>> {
self.with_db(|db| Assist::unresolved(db, config, frange))
}

/// Computes the set of diagnostics for the given file.
pub fn diagnostics(
&self,
Expand Down
6 changes: 3 additions & 3 deletions crates/rust-analyzer/src/handlers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -946,12 +946,12 @@ pub(crate) fn handle_code_action(

if snap.config.client_caps.code_action_resolve {
for (index, assist) in
snap.analysis.unresolved_assists(&assists_config, frange)?.into_iter().enumerate()
snap.analysis.assists(&assists_config, frange)?.into_iter().enumerate()
{
res.push(to_proto::unresolved_code_action(&snap, params.clone(), assist, index)?);
}
} else {
for assist in snap.analysis.resolved_assists(&assists_config, frange)?.into_iter() {
for assist in snap.analysis.resolve_assists(&assists_config, frange)?.into_iter() {
res.push(to_proto::resolved_code_action(&snap, assist)?);
}
}
Expand Down Expand Up @@ -1014,7 +1014,7 @@ pub(crate) fn handle_code_action_resolve(
.only
.map(|it| it.into_iter().filter_map(from_proto::assist_kind).collect());

let assists = snap.analysis.resolved_assists(&snap.config.assist, frange)?;
let assists = snap.analysis.resolve_assists(&snap.config.assist, frange)?;
let (id, index) = split_once(&params.id, ':').unwrap();
let index = index.parse::<usize>().unwrap();
let assist = &assists[index];
Expand Down