@@ -401,32 +401,30 @@ interface SuggestController extends IEditorContribution {
401
401
}
402
402
403
403
404
- const _once = new WeakMap < ICodeEditor , IDisposable > ( ) ;
404
+ let _onlyOnceProvider : languages . CompletionItemProvider | undefined ;
405
+ let _onlyOnceSuggestions : languages . CompletionItem [ ] = [ ] ;
405
406
406
407
export function showSimpleSuggestions ( accessor : ServicesAccessor , editor : ICodeEditor , suggestions : languages . CompletionItem [ ] ) {
407
408
408
409
const { completionProvider } = accessor . get ( ILanguageFeaturesService ) ;
409
410
410
- const _provider = new class implements languages . CompletionItemProvider {
411
-
412
- onlyOnceSuggestions : languages . CompletionItem [ ] = [ ] ;
413
-
414
- provideCompletionItems ( ) : languages . CompletionList {
415
- let suggestions = this . onlyOnceSuggestions . slice ( 0 ) ;
416
- let result = { suggestions } ;
417
- this . onlyOnceSuggestions . length = 0 ;
418
- dispo . dispose ( ) ;
419
- return result ;
420
- }
421
- } ;
422
-
423
- const dispo = completionProvider . register ( '*' , _provider ) ;
424
- _once . get ( editor ) ?. dispose ( ) ;
425
- _once . set ( editor , dispo ) ;
411
+ if ( ! _onlyOnceProvider ) {
412
+ _onlyOnceProvider = new class implements languages . CompletionItemProvider {
413
+ provideCompletionItems ( ) : languages . CompletionList {
414
+ let suggestions = _onlyOnceSuggestions . slice ( 0 ) ;
415
+ let result = { suggestions } ;
416
+ _onlyOnceSuggestions . length = 0 ;
417
+ return result ;
418
+ }
419
+ } ;
420
+ completionProvider . register ( '*' , _onlyOnceProvider ) ;
421
+ }
426
422
427
423
setTimeout ( ( ) => {
428
- _provider . onlyOnceSuggestions . push ( ...suggestions ) ;
429
- editor . getContribution < SuggestController > ( 'editor.contrib.suggestController' ) ?. triggerSuggest ( new Set < languages . CompletionItemProvider > ( ) . add ( _provider ) ) ;
424
+ _onlyOnceSuggestions . push ( ...suggestions ) ;
425
+ editor . getContribution < SuggestController > ( 'editor.contrib.suggestController' ) ?. triggerSuggest (
426
+ new Set < languages . CompletionItemProvider > ( ) . add ( _onlyOnceProvider ! )
427
+ ) ;
430
428
} , 0 ) ;
431
429
}
432
430
0 commit comments