@@ -11,9 +11,9 @@ use std::{
11
11
use anyhow:: Context ;
12
12
13
13
use ide:: {
14
- AnnotationConfig , AssistKind , AssistResolveStrategy , Cancellable , CompletionFieldsToResolve ,
15
- FilePosition , FileRange , HoverAction , HoverGotoTypeData , InlayFieldsToResolve , Query ,
16
- RangeInfo , ReferenceCategory , Runnable , RunnableKind , SingleResolve , SourceChange , TextEdit ,
14
+ AnnotationConfig , AssistKind , AssistResolveStrategy , Cancellable , FilePosition , FileRange ,
15
+ HoverAction , HoverGotoTypeData , InlayFieldsToResolve , Query , RangeInfo , ReferenceCategory ,
16
+ Runnable , RunnableKind , SingleResolve , SourceChange , TextEdit ,
17
17
} ;
18
18
use ide_db:: { FxHashMap , SymbolKind } ;
19
19
use itertools:: Itertools ;
@@ -1086,11 +1086,9 @@ pub(crate) fn handle_completion(
1086
1086
1087
1087
let items = to_proto:: completion_items (
1088
1088
& snap. config ,
1089
- & completion_config. fields_to_resolve ,
1090
1089
& line_index,
1091
1090
snap. file_version ( position. file_id ) ,
1092
1091
text_document_position,
1093
- completion_trigger_character,
1094
1092
items,
1095
1093
) ;
1096
1094
@@ -1123,68 +1121,36 @@ pub(crate) fn handle_completion_resolve(
1123
1121
} ;
1124
1122
let source_root = snap. analysis . source_root_id ( file_id) ?;
1125
1123
1126
- let mut forced_resolve_completions_config = snap. config . completion ( Some ( source_root) ) ;
1127
- forced_resolve_completions_config. fields_to_resolve = CompletionFieldsToResolve :: empty ( ) ;
1128
-
1129
- let position = FilePosition { file_id, offset } ;
1130
- let Some ( resolved_completions) = snap. analysis . completions (
1131
- & forced_resolve_completions_config,
1132
- position,
1133
- resolve_data. trigger_character ,
1134
- ) ?
1135
- else {
1136
- return Ok ( original_completion) ;
1137
- } ;
1138
- let mut resolved_completions = to_proto:: completion_items (
1139
- & snap. config ,
1140
- & forced_resolve_completions_config. fields_to_resolve ,
1141
- & line_index,
1142
- snap. file_version ( position. file_id ) ,
1143
- resolve_data. position ,
1144
- resolve_data. trigger_character ,
1145
- resolved_completions,
1146
- ) ;
1147
-
1148
- let mut resolved_completion =
1149
- if resolved_completions. get ( resolve_data. completion_item_index ) . is_some ( ) {
1150
- resolved_completions. swap_remove ( resolve_data. completion_item_index )
1151
- } else {
1152
- return Ok ( original_completion) ;
1153
- } ;
1124
+ let additional_edits = snap
1125
+ . analysis
1126
+ . resolve_completion_edits (
1127
+ & snap. config . completion ( Some ( source_root) ) ,
1128
+ FilePosition { file_id, offset } ,
1129
+ resolve_data
1130
+ . imports
1131
+ . into_iter ( )
1132
+ . map ( |import| ( import. full_import_path , import. imported_name ) ) ,
1133
+ ) ?
1134
+ . into_iter ( )
1135
+ . flat_map ( |edit| edit. into_iter ( ) . map ( |indel| to_proto:: text_edit ( & line_index, indel) ) )
1136
+ . collect :: < Vec < _ > > ( ) ;
1154
1137
1155
- if !resolve_data. imports . is_empty ( ) {
1156
- let additional_edits = snap
1157
- . analysis
1158
- . resolve_completion_edits (
1159
- & forced_resolve_completions_config,
1160
- position,
1161
- resolve_data
1162
- . imports
1163
- . into_iter ( )
1164
- . map ( |import| ( import. full_import_path , import. imported_name ) ) ,
1165
- ) ?
1166
- . into_iter ( )
1167
- . flat_map ( |edit| edit. into_iter ( ) . map ( |indel| to_proto:: text_edit ( & line_index, indel) ) )
1168
- . collect :: < Vec < _ > > ( ) ;
1169
-
1170
- if !all_edits_are_disjoint ( & resolved_completion, & additional_edits) {
1171
- return Err ( LspError :: new (
1172
- ErrorCode :: InternalError as i32 ,
1173
- "Import edit overlaps with the original completion edits, this is not LSP-compliant"
1174
- . into ( ) ,
1175
- )
1176
- . into ( ) ) ;
1177
- }
1138
+ if !all_edits_are_disjoint ( & original_completion, & additional_edits) {
1139
+ return Err ( LspError :: new (
1140
+ ErrorCode :: InternalError as i32 ,
1141
+ "Import edit overlaps with the original completion edits, this is not LSP-compliant"
1142
+ . into ( ) ,
1143
+ )
1144
+ . into ( ) ) ;
1145
+ }
1178
1146
1179
- if let Some ( original_additional_edits) = resolved_completion. additional_text_edits . as_mut ( )
1180
- {
1181
- original_additional_edits. extend ( additional_edits)
1182
- } else {
1183
- resolved_completion. additional_text_edits = Some ( additional_edits) ;
1184
- }
1147
+ if let Some ( original_additional_edits) = original_completion. additional_text_edits . as_mut ( ) {
1148
+ original_additional_edits. extend ( additional_edits)
1149
+ } else {
1150
+ original_completion. additional_text_edits = Some ( additional_edits) ;
1185
1151
}
1186
1152
1187
- Ok ( resolved_completion )
1153
+ Ok ( original_completion )
1188
1154
}
1189
1155
1190
1156
pub ( crate ) fn handle_folding_range (
0 commit comments