@@ -106,4 +106,47 @@ suite('Suggest', function () {
106106 assert . ok ( items [ 0 ] . provider === foo ) ;
107107 } ) ;
108108 } ) ;
109+
110+ test ( 'Ctrl+space completions stopped working with the latest Insiders, #97650' , async function ( ) {
111+
112+
113+ const foo = new class implements CompletionItemProvider {
114+
115+ triggerCharacters = [ ] ;
116+
117+ provideCompletionItems ( ) {
118+ return {
119+ suggestions : [ {
120+ label : 'one' ,
121+ kind : CompletionItemKind . Class ,
122+ insertText : 'one' ,
123+ range : {
124+ insert : new Range ( 0 , 0 , 0 , 0 ) ,
125+ replace : new Range ( 0 , 0 , 0 , 10 )
126+ }
127+ } , {
128+ label : 'two' ,
129+ kind : CompletionItemKind . Class ,
130+ insertText : 'two' ,
131+ range : {
132+ insert : new Range ( 0 , 0 , 0 , 0 ) ,
133+ replace : new Range ( 0 , 1 , 0 , 10 )
134+ }
135+ } ]
136+ } ;
137+ }
138+ } ;
139+
140+ const registration = CompletionProviderRegistry . register ( { pattern : 'bar/path' , scheme : 'foo' } , foo ) ;
141+ const items = await provideSuggestionItems ( model , new Position ( 0 , 0 ) , new CompletionOptions ( undefined , undefined , new Set < CompletionItemProvider > ( ) . add ( foo ) ) ) ;
142+ registration . dispose ( ) ;
143+
144+ assert . equal ( items . length , 2 ) ;
145+ const [ a , b ] = items ;
146+
147+ assert . equal ( a . completion . label , 'one' ) ;
148+ assert . equal ( a . isInvalid , false ) ;
149+ assert . equal ( b . completion . label , 'two' ) ;
150+ assert . equal ( b . isInvalid , true ) ;
151+ } ) ;
109152} ) ;
0 commit comments