@@ -32,6 +32,7 @@ import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace
32
32
import { LanguageFeaturesService } from 'vs/editor/common/services/languageFeaturesService' ;
33
33
import { ILanguageFeaturesService } from 'vs/editor/common/services/languageFeatures' ;
34
34
import { IEnvironmentService } from 'vs/platform/environment/common/environment' ;
35
+ import { DeleteLinesAction } from 'vs/editor/contrib/linesOperations/browser/linesOperations' ;
35
36
36
37
suite ( 'SuggestController' , function ( ) {
37
38
@@ -579,4 +580,38 @@ suite('SuggestController', function () {
579
580
controller . acceptSelectedSuggestion ( false , false ) ;
580
581
assert . strictEqual ( editor . getValue ( ) , 'for' ) ;
581
582
} ) ;
583
+
584
+ test . skip ( 'Suggest widget gets orphaned in editor #187779' , async function ( ) {
585
+
586
+ disposables . add ( languageFeaturesService . completionProvider . register ( { scheme : 'test-ctrl' } , {
587
+ _debugDisplayName : 'test' ,
588
+ provideCompletionItems ( doc , pos ) {
589
+
590
+ const word = doc . getLineContent ( pos . lineNumber ) ;
591
+ const range = new Range ( pos . lineNumber , 1 , pos . lineNumber , pos . column ) ;
592
+
593
+ return {
594
+ suggestions : [ {
595
+ kind : CompletionItemKind . Text ,
596
+ label : word ,
597
+ insertText : word ,
598
+ range
599
+ } ]
600
+ } ;
601
+ }
602
+ } ) ) ;
603
+
604
+ editor . setValue ( `console.log(example.)\nconsole.log(EXAMPLE.not)` ) ;
605
+ editor . setSelection ( new Selection ( 1 , 21 , 1 , 21 ) ) ;
606
+
607
+ const p1 = Event . toPromise ( controller . model . onDidSuggest ) ;
608
+ controller . triggerSuggest ( ) ;
609
+
610
+ await p1 ;
611
+
612
+ const p2 = Event . toPromise ( controller . model . onDidCancel ) ;
613
+ new DeleteLinesAction ( ) . run ( null ! , editor ) ;
614
+
615
+ await p2 ;
616
+ } ) ;
582
617
} ) ;
0 commit comments