@@ -96,24 +96,29 @@ suite('ParameterHintsModel', () => {
9696
9797 provideSignatureHelp ( _model : ITextModel , _position : Position , _token : CancellationToken , context : modes . SignatureHelpContext ) : modes . SignatureHelpResult | Promise < modes . SignatureHelpResult > {
9898 ++ invokeCount ;
99- if ( invokeCount === 1 ) {
100- assert . strictEqual ( context . triggerKind , modes . SignatureHelpTriggerKind . TriggerCharacter ) ;
101- assert . strictEqual ( context . triggerCharacter , triggerChar ) ;
102- assert . strictEqual ( context . isRetrigger , false ) ;
103- assert . strictEqual ( context . activeSignatureHelp , undefined ) ;
104-
105- // Retrigger
106- setTimeout ( ( ) => editor . trigger ( 'keyboard' , Handler . Type , { text : triggerChar } ) , 50 ) ;
107- } else {
108- assert . strictEqual ( invokeCount , 2 ) ;
109- assert . strictEqual ( context . triggerKind , modes . SignatureHelpTriggerKind . TriggerCharacter ) ;
110- assert . strictEqual ( context . isRetrigger , true ) ;
111- assert . strictEqual ( context . triggerCharacter , triggerChar ) ;
112- assert . strictEqual ( context . activeSignatureHelp , emptySigHelp ) ;
113-
114- done ( ) ;
99+ try {
100+ if ( invokeCount === 1 ) {
101+ assert . strictEqual ( context . triggerKind , modes . SignatureHelpTriggerKind . TriggerCharacter ) ;
102+ assert . strictEqual ( context . triggerCharacter , triggerChar ) ;
103+ assert . strictEqual ( context . isRetrigger , false ) ;
104+ assert . strictEqual ( context . activeSignatureHelp , undefined ) ;
105+
106+ // Retrigger
107+ setTimeout ( ( ) => editor . trigger ( 'keyboard' , Handler . Type , { text : triggerChar } ) , 50 ) ;
108+ } else {
109+ assert . strictEqual ( invokeCount , 2 ) ;
110+ assert . strictEqual ( context . triggerKind , modes . SignatureHelpTriggerKind . TriggerCharacter ) ;
111+ assert . strictEqual ( context . isRetrigger , true ) ;
112+ assert . strictEqual ( context . triggerCharacter , triggerChar ) ;
113+ assert . strictEqual ( context . activeSignatureHelp , emptySigHelp ) ;
114+
115+ done ( ) ;
116+ }
117+ return emptySigHelpResult ;
118+ } catch ( err ) {
119+ console . error ( err ) ;
120+ throw err ;
115121 }
116- return emptySigHelpResult ;
117122 }
118123 } ) ) ;
119124
@@ -133,25 +138,30 @@ suite('ParameterHintsModel', () => {
133138 signatureHelpRetriggerCharacters = [ ] ;
134139
135140 provideSignatureHelp ( _model : ITextModel , _position : Position , _token : CancellationToken , context : modes . SignatureHelpContext ) : modes . SignatureHelpResult | Promise < modes . SignatureHelpResult > {
136- ++ invokeCount ;
137- if ( invokeCount === 1 ) {
138- assert . strictEqual ( context . triggerKind , modes . SignatureHelpTriggerKind . TriggerCharacter ) ;
139- assert . strictEqual ( context . triggerCharacter , triggerChar ) ;
140- assert . strictEqual ( context . isRetrigger , false ) ;
141- assert . strictEqual ( context . activeSignatureHelp , undefined ) ;
142-
143- // Cancel and retrigger
144- hintModel . cancel ( ) ;
145- editor . trigger ( 'keyboard' , Handler . Type , { text : triggerChar } ) ;
146- } else {
147- assert . strictEqual ( invokeCount , 2 ) ;
148- assert . strictEqual ( context . triggerKind , modes . SignatureHelpTriggerKind . TriggerCharacter ) ;
149- assert . strictEqual ( context . triggerCharacter , triggerChar ) ;
150- assert . strictEqual ( context . isRetrigger , true ) ;
151- assert . strictEqual ( context . activeSignatureHelp , undefined ) ;
152- done ( ) ;
141+ try {
142+ ++ invokeCount ;
143+ if ( invokeCount === 1 ) {
144+ assert . strictEqual ( context . triggerKind , modes . SignatureHelpTriggerKind . TriggerCharacter ) ;
145+ assert . strictEqual ( context . triggerCharacter , triggerChar ) ;
146+ assert . strictEqual ( context . isRetrigger , false ) ;
147+ assert . strictEqual ( context . activeSignatureHelp , undefined ) ;
148+
149+ // Cancel and retrigger
150+ hintModel . cancel ( ) ;
151+ editor . trigger ( 'keyboard' , Handler . Type , { text : triggerChar } ) ;
152+ } else {
153+ assert . strictEqual ( invokeCount , 2 ) ;
154+ assert . strictEqual ( context . triggerKind , modes . SignatureHelpTriggerKind . TriggerCharacter ) ;
155+ assert . strictEqual ( context . triggerCharacter , triggerChar ) ;
156+ assert . strictEqual ( context . isRetrigger , true ) ;
157+ assert . strictEqual ( context . activeSignatureHelp , undefined ) ;
158+ done ( ) ;
159+ }
160+ return emptySigHelpResult ;
161+ } catch ( err ) {
162+ console . error ( err ) ;
163+ throw err ;
153164 }
154- return emptySigHelpResult ;
155165 }
156166 } ) ) ;
157167
@@ -168,19 +178,24 @@ suite('ParameterHintsModel', () => {
168178 signatureHelpRetriggerCharacters = [ ] ;
169179
170180 provideSignatureHelp ( _model : ITextModel , _position : Position , _token : CancellationToken , context : modes . SignatureHelpContext ) {
171- ++ invokeCount ;
172-
173- assert . strictEqual ( context . triggerKind , modes . SignatureHelpTriggerKind . TriggerCharacter ) ;
174- assert . strictEqual ( context . isRetrigger , false ) ;
175- assert . strictEqual ( context . triggerCharacter , 'c' ) ;
181+ try {
182+ ++ invokeCount ;
176183
177- // Give some time to allow for later triggers
178- setTimeout ( ( ) => {
179- assert . strictEqual ( invokeCount , 1 ) ;
184+ assert . strictEqual ( context . triggerKind , modes . SignatureHelpTriggerKind . TriggerCharacter ) ;
185+ assert . strictEqual ( context . isRetrigger , false ) ;
186+ assert . strictEqual ( context . triggerCharacter , 'c' ) ;
180187
181- done ( ) ;
182- } , 50 ) ;
183- return undefined ;
188+ // Give some time to allow for later triggers
189+ setTimeout ( ( ) => {
190+ assert . strictEqual ( invokeCount , 1 ) ;
191+
192+ done ( ) ;
193+ } , 50 ) ;
194+ return undefined ;
195+ } catch ( err ) {
196+ console . error ( err ) ;
197+ throw err ;
198+ }
184199 }
185200 } ) ) ;
186201
@@ -199,23 +214,28 @@ suite('ParameterHintsModel', () => {
199214 signatureHelpRetriggerCharacters = [ ] ;
200215
201216 provideSignatureHelp ( _model : ITextModel , _position : Position , _token : CancellationToken , context : modes . SignatureHelpContext ) : modes . SignatureHelpResult | Promise < modes . SignatureHelpResult > {
202- ++ invokeCount ;
203- if ( invokeCount === 1 ) {
204- assert . strictEqual ( context . triggerKind , modes . SignatureHelpTriggerKind . TriggerCharacter ) ;
205- assert . strictEqual ( context . triggerCharacter , 'a' ) ;
206-
207- // retrigger after delay for widget to show up
208- setTimeout ( ( ) => editor . trigger ( 'keyboard' , Handler . Type , { text : 'b' } ) , 50 ) ;
209- } else if ( invokeCount === 2 ) {
210- assert . strictEqual ( context . triggerKind , modes . SignatureHelpTriggerKind . TriggerCharacter ) ;
211- assert . ok ( context . isRetrigger ) ;
212- assert . strictEqual ( context . triggerCharacter , 'b' ) ;
213- done ( ) ;
214- } else {
215- assert . fail ( 'Unexpected invoke' ) ;
217+ try {
218+ ++ invokeCount ;
219+ if ( invokeCount === 1 ) {
220+ assert . strictEqual ( context . triggerKind , modes . SignatureHelpTriggerKind . TriggerCharacter ) ;
221+ assert . strictEqual ( context . triggerCharacter , 'a' ) ;
222+
223+ // retrigger after delay for widget to show up
224+ setTimeout ( ( ) => editor . trigger ( 'keyboard' , Handler . Type , { text : 'b' } ) , 50 ) ;
225+ } else if ( invokeCount === 2 ) {
226+ assert . strictEqual ( context . triggerKind , modes . SignatureHelpTriggerKind . TriggerCharacter ) ;
227+ assert . ok ( context . isRetrigger ) ;
228+ assert . strictEqual ( context . triggerCharacter , 'b' ) ;
229+ done ( ) ;
230+ } else {
231+ assert . fail ( 'Unexpected invoke' ) ;
232+ }
233+
234+ return emptySigHelpResult ;
235+ } catch ( err ) {
236+ console . error ( err ) ;
237+ throw err ;
216238 }
217-
218- return emptySigHelpResult ;
219239 }
220240 } ) ) ;
221241
@@ -234,29 +254,34 @@ suite('ParameterHintsModel', () => {
234254
235255
236256 provideSignatureHelp ( _model : ITextModel , _position : Position , token : CancellationToken ) : modes . SignatureHelpResult | Promise < modes . SignatureHelpResult > {
237- const count = invokeCount ++ ;
238- token . onCancellationRequested ( ( ) => { didRequestCancellationOf = count ; } ) ;
239-
240- // retrigger on first request
241- if ( count === 0 ) {
242- hintsModel . trigger ( { triggerKind : modes . SignatureHelpTriggerKind . Invoke } , 0 ) ;
257+ try {
258+ const count = invokeCount ++ ;
259+ token . onCancellationRequested ( ( ) => { didRequestCancellationOf = count ; } ) ;
260+
261+ // retrigger on first request
262+ if ( count === 0 ) {
263+ hintsModel . trigger ( { triggerKind : modes . SignatureHelpTriggerKind . Invoke } , 0 ) ;
264+ }
265+
266+ return new Promise < modes . SignatureHelpResult > ( resolve => {
267+ setTimeout ( ( ) => {
268+ resolve ( {
269+ value : {
270+ signatures : [ {
271+ label : '' + count ,
272+ parameters : [ ]
273+ } ] ,
274+ activeParameter : 0 ,
275+ activeSignature : 0
276+ } ,
277+ dispose : ( ) => { }
278+ } ) ;
279+ } , 100 ) ;
280+ } ) ;
281+ } catch ( err ) {
282+ console . error ( err ) ;
283+ throw err ;
243284 }
244-
245- return new Promise < modes . SignatureHelpResult > ( resolve => {
246- setTimeout ( ( ) => {
247- resolve ( {
248- value : {
249- signatures : [ {
250- label : '' + count ,
251- parameters : [ ]
252- } ] ,
253- activeParameter : 0 ,
254- activeSignature : 0
255- } ,
256- dispose : ( ) => { }
257- } ) ;
258- } , 100 ) ;
259- } ) ;
260285 }
261286 } ;
262287
@@ -290,23 +315,28 @@ suite('ParameterHintsModel', () => {
290315 signatureHelpRetriggerCharacters = [ retriggerChar ] ;
291316
292317 provideSignatureHelp ( _model : ITextModel , _position : Position , _token : CancellationToken , context : modes . SignatureHelpContext ) : modes . SignatureHelpResult | Promise < modes . SignatureHelpResult > {
293- ++ invokeCount ;
294- if ( invokeCount === 1 ) {
295- assert . strictEqual ( context . triggerKind , modes . SignatureHelpTriggerKind . TriggerCharacter ) ;
296- assert . strictEqual ( context . triggerCharacter , triggerChar ) ;
297-
298- // retrigger after delay for widget to show up
299- setTimeout ( ( ) => editor . trigger ( 'keyboard' , Handler . Type , { text : retriggerChar } ) , 50 ) ;
300- } else if ( invokeCount === 2 ) {
301- assert . strictEqual ( context . triggerKind , modes . SignatureHelpTriggerKind . TriggerCharacter ) ;
302- assert . ok ( context . isRetrigger ) ;
303- assert . strictEqual ( context . triggerCharacter , retriggerChar ) ;
304- done ( ) ;
305- } else {
306- assert . fail ( 'Unexpected invoke' ) ;
318+ try {
319+ ++ invokeCount ;
320+ if ( invokeCount === 1 ) {
321+ assert . strictEqual ( context . triggerKind , modes . SignatureHelpTriggerKind . TriggerCharacter ) ;
322+ assert . strictEqual ( context . triggerCharacter , triggerChar ) ;
323+
324+ // retrigger after delay for widget to show up
325+ setTimeout ( ( ) => editor . trigger ( 'keyboard' , Handler . Type , { text : retriggerChar } ) , 50 ) ;
326+ } else if ( invokeCount === 2 ) {
327+ assert . strictEqual ( context . triggerKind , modes . SignatureHelpTriggerKind . TriggerCharacter ) ;
328+ assert . ok ( context . isRetrigger ) ;
329+ assert . strictEqual ( context . triggerCharacter , retriggerChar ) ;
330+ done ( ) ;
331+ } else {
332+ assert . fail ( 'Unexpected invoke' ) ;
333+ }
334+
335+ return emptySigHelpResult ;
336+ } catch ( err ) {
337+ console . error ( err ) ;
338+ throw err ;
307339 }
308-
309- return emptySigHelpResult ;
310340 }
311341 } ) ) ;
312342
@@ -332,26 +362,31 @@ suite('ParameterHintsModel', () => {
332362 signatureHelpRetriggerCharacters = [ ] ;
333363
334364 async provideSignatureHelp ( _model : ITextModel , _position : Position , _token : CancellationToken , context : modes . SignatureHelpContext ) : Promise < modes . SignatureHelpResult | undefined > {
335- if ( ! context . isRetrigger ) {
336- // retrigger after delay for widget to show up
337- setTimeout ( ( ) => editor . trigger ( 'keyboard' , Handler . Type , { text : triggerChar } ) , 50 ) ;
365+ try {
366+ if ( ! context . isRetrigger ) {
367+ // retrigger after delay for widget to show up
368+ setTimeout ( ( ) => editor . trigger ( 'keyboard' , Handler . Type , { text : triggerChar } ) , 50 ) ;
338369
339- return {
340- value : {
341- activeParameter : 0 ,
342- activeSignature : 0 ,
343- signatures : [ {
344- label : firstProviderId ,
345- parameters : [
346- { label : paramterLabel }
347- ]
348- } ]
349- } ,
350- dispose : ( ) => { }
351- } ;
352- }
370+ return {
371+ value : {
372+ activeParameter : 0 ,
373+ activeSignature : 0 ,
374+ signatures : [ {
375+ label : firstProviderId ,
376+ parameters : [
377+ { label : paramterLabel }
378+ ]
379+ } ]
380+ } ,
381+ dispose : ( ) => { }
382+ } ;
383+ }
353384
354- return undefined ;
385+ return undefined ;
386+ } catch ( err ) {
387+ console . error ( err ) ;
388+ throw err ;
389+ }
355390 }
356391 } ) ) ;
357392
0 commit comments