Skip to content

Commit 23abd97

Browse files
Revert "Resolve completion items"
This reverts commit ecae5a8.
1 parent 9ec2404 commit 23abd97

File tree

3 files changed

+11
-42
lines changed

3 files changed

+11
-42
lines changed

src/tools/rust-analyzer/crates/rust-analyzer/src/handlers/request.rs

+9-40
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ use std::{
1010
use anyhow::Context;
1111

1212
use ide::{
13-
AnnotationConfig, AssistKind, AssistResolveStrategy, Cancellable, CompletionFieldsToResolve,
14-
FilePosition, FileRange, HoverAction, HoverGotoTypeData, InlayFieldsToResolve, Query,
15-
RangeInfo, ReferenceCategory, Runnable, RunnableKind, SingleResolve, SourceChange, TextEdit,
13+
AnnotationConfig, AssistKind, AssistResolveStrategy, Cancellable, FilePosition, FileRange,
14+
HoverAction, HoverGotoTypeData, InlayFieldsToResolve, Query, RangeInfo, ReferenceCategory,
15+
Runnable, RunnableKind, SingleResolve, SourceChange, TextEdit,
1616
};
1717
use ide_db::SymbolKind;
1818
use itertools::Itertools;
@@ -1056,43 +1056,12 @@ pub(crate) fn handle_completion_resolve(
10561056
};
10571057
let source_root = snap.analysis.source_root_id(file_id)?;
10581058

1059-
let mut forced_resolve_completions_config = snap.config.completion(Some(source_root));
1060-
forced_resolve_completions_config.fields_to_resolve = CompletionFieldsToResolve::empty();
1061-
1062-
let position = FilePosition { file_id, offset };
1063-
let Some(unresolved_completions) = snap.analysis.completions(
1064-
&&forced_resolve_completions_config,
1065-
position,
1066-
resolve_data.trigger_character,
1067-
)?
1068-
else {
1069-
return Ok(original_completion);
1070-
};
1071-
let resolved_completions = to_proto::completion_items(
1072-
&snap.config,
1073-
&forced_resolve_completions_config.fields_to_resolve,
1074-
&line_index,
1075-
snap.file_version(position.file_id),
1076-
resolve_data.position,
1077-
resolve_data.trigger_character,
1078-
unresolved_completions,
1079-
);
1080-
let Some(mut resolved_completion) = resolved_completions.into_iter().find(|completion| {
1081-
completion.label == original_completion.label
1082-
&& completion.kind == original_completion.kind
1083-
&& completion.deprecated == original_completion.deprecated
1084-
&& completion.preselect == original_completion.preselect
1085-
&& completion.sort_text == original_completion.sort_text
1086-
}) else {
1087-
return Ok(original_completion);
1088-
};
1089-
10901059
if !resolve_data.imports.is_empty() {
10911060
let additional_edits = snap
10921061
.analysis
10931062
.resolve_completion_edits(
1094-
&forced_resolve_completions_config,
1095-
position,
1063+
&snap.config.completion(Some(source_root)),
1064+
FilePosition { file_id, offset },
10961065
resolve_data
10971066
.imports
10981067
.into_iter()
@@ -1102,7 +1071,7 @@ pub(crate) fn handle_completion_resolve(
11021071
.flat_map(|edit| edit.into_iter().map(|indel| to_proto::text_edit(&line_index, indel)))
11031072
.collect::<Vec<_>>();
11041073

1105-
if !all_edits_are_disjoint(&resolved_completion, &additional_edits) {
1074+
if !all_edits_are_disjoint(&original_completion, &additional_edits) {
11061075
return Err(LspError::new(
11071076
ErrorCode::InternalError as i32,
11081077
"Import edit overlaps with the original completion edits, this is not LSP-compliant"
@@ -1111,15 +1080,15 @@ pub(crate) fn handle_completion_resolve(
11111080
.into());
11121081
}
11131082

1114-
if let Some(original_additional_edits) = resolved_completion.additional_text_edits.as_mut()
1083+
if let Some(original_additional_edits) = original_completion.additional_text_edits.as_mut()
11151084
{
11161085
original_additional_edits.extend(additional_edits)
11171086
} else {
1118-
resolved_completion.additional_text_edits = Some(additional_edits);
1087+
original_completion.additional_text_edits = Some(additional_edits);
11191088
}
11201089
}
11211090

1122-
Ok(resolved_completion)
1091+
Ok(original_completion)
11231092
}
11241093

11251094
pub(crate) fn handle_folding_range(

src/tools/rust-analyzer/crates/rust-analyzer/src/lsp/ext.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -825,7 +825,7 @@ pub struct CompletionResolveData {
825825
pub position: lsp_types::TextDocumentPositionParams,
826826
pub imports: Vec<CompletionImport>,
827827
pub version: Option<i32>,
828-
pub trigger_character: Option<char>,
828+
pub completion_trigger_character: Option<char>,
829829
}
830830

831831
#[derive(Debug, Serialize, Deserialize)]

src/tools/rust-analyzer/crates/rust-analyzer/src/lsp/to_proto.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ fn completion_item(
396396
position: tdpp.clone(),
397397
imports,
398398
version,
399-
trigger_character: completion_trigger_character,
399+
completion_trigger_character,
400400
};
401401
lsp_item.data = Some(to_value(data).unwrap());
402402
}

0 commit comments

Comments
 (0)