@@ -10,9 +10,9 @@ use std::{
10
10
use anyhow:: Context ;
11
11
12
12
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 ,
16
16
} ;
17
17
use ide_db:: SymbolKind ;
18
18
use itertools:: Itertools ;
@@ -1019,11 +1019,9 @@ pub(crate) fn handle_completion(
1019
1019
1020
1020
let items = to_proto:: completion_items (
1021
1021
& snap. config ,
1022
- & completion_config. fields_to_resolve ,
1023
1022
& line_index,
1024
1023
snap. file_version ( position. file_id ) ,
1025
1024
text_document_position,
1026
- completion_trigger_character,
1027
1025
items,
1028
1026
) ;
1029
1027
@@ -1056,68 +1054,36 @@ pub(crate) fn handle_completion_resolve(
1056
1054
} ;
1057
1055
let source_root = snap. analysis . source_root_id ( file_id) ?;
1058
1056
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 ( resolved_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 mut 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
- resolved_completions,
1079
- ) ;
1080
-
1081
- let mut resolved_completion =
1082
- if resolved_completions. get ( resolve_data. completion_item_index ) . is_some ( ) {
1083
- resolved_completions. swap_remove ( resolve_data. completion_item_index )
1084
- } else {
1085
- return Ok ( original_completion) ;
1086
- } ;
1057
+ let additional_edits = snap
1058
+ . analysis
1059
+ . resolve_completion_edits (
1060
+ & snap. config . completion ( Some ( source_root) ) ,
1061
+ FilePosition { file_id, offset } ,
1062
+ resolve_data
1063
+ . imports
1064
+ . into_iter ( )
1065
+ . map ( |import| ( import. full_import_path , import. imported_name ) ) ,
1066
+ ) ?
1067
+ . into_iter ( )
1068
+ . flat_map ( |edit| edit. into_iter ( ) . map ( |indel| to_proto:: text_edit ( & line_index, indel) ) )
1069
+ . collect :: < Vec < _ > > ( ) ;
1087
1070
1088
- if !resolve_data. imports . is_empty ( ) {
1089
- let additional_edits = snap
1090
- . analysis
1091
- . resolve_completion_edits (
1092
- & forced_resolve_completions_config,
1093
- position,
1094
- resolve_data
1095
- . imports
1096
- . into_iter ( )
1097
- . map ( |import| ( import. full_import_path , import. imported_name ) ) ,
1098
- ) ?
1099
- . into_iter ( )
1100
- . flat_map ( |edit| edit. into_iter ( ) . map ( |indel| to_proto:: text_edit ( & line_index, indel) ) )
1101
- . collect :: < Vec < _ > > ( ) ;
1102
-
1103
- if !all_edits_are_disjoint ( & resolved_completion, & additional_edits) {
1104
- return Err ( LspError :: new (
1105
- ErrorCode :: InternalError as i32 ,
1106
- "Import edit overlaps with the original completion edits, this is not LSP-compliant"
1107
- . into ( ) ,
1108
- )
1109
- . into ( ) ) ;
1110
- }
1071
+ if !all_edits_are_disjoint ( & original_completion, & additional_edits) {
1072
+ return Err ( LspError :: new (
1073
+ ErrorCode :: InternalError as i32 ,
1074
+ "Import edit overlaps with the original completion edits, this is not LSP-compliant"
1075
+ . into ( ) ,
1076
+ )
1077
+ . into ( ) ) ;
1078
+ }
1111
1079
1112
- if let Some ( original_additional_edits) = resolved_completion. additional_text_edits . as_mut ( )
1113
- {
1114
- original_additional_edits. extend ( additional_edits)
1115
- } else {
1116
- resolved_completion. additional_text_edits = Some ( additional_edits) ;
1117
- }
1080
+ if let Some ( original_additional_edits) = original_completion. additional_text_edits . as_mut ( ) {
1081
+ original_additional_edits. extend ( additional_edits)
1082
+ } else {
1083
+ original_completion. additional_text_edits = Some ( additional_edits) ;
1118
1084
}
1119
1085
1120
- Ok ( resolved_completion )
1086
+ Ok ( original_completion )
1121
1087
}
1122
1088
1123
1089
pub ( crate ) fn handle_folding_range (
0 commit comments