@@ -356,6 +356,72 @@ suite("LanguageClientManager Suite", () => {
356
356
expect ( languageClientMock . start ) . to . have . been . calledOnce ;
357
357
} ) ;
358
358
359
+ test ( "adds VS Code iconography to CodeLenses" , async ( ) => {
360
+ const codelensesFromSourceKitLSP = async ( ) : Promise < vscode . CodeLens [ ] > => {
361
+ return [
362
+ {
363
+ range : new vscode . Range ( 0 , 0 , 0 , 0 ) ,
364
+ command : {
365
+ title : "Run" ,
366
+ command : "swift.run" ,
367
+ } ,
368
+ isResolved : true ,
369
+ } ,
370
+ {
371
+ range : new vscode . Range ( 0 , 0 , 0 , 0 ) ,
372
+ command : {
373
+ title : "Debug" ,
374
+ command : "swift.debug" ,
375
+ } ,
376
+ isResolved : true ,
377
+ } ,
378
+ {
379
+ range : new vscode . Range ( 0 , 0 , 0 , 0 ) ,
380
+ command : {
381
+ title : "Run" ,
382
+ command : "some.other.command" ,
383
+ } ,
384
+ isResolved : true ,
385
+ } ,
386
+ ] ;
387
+ } ;
388
+
389
+ new LanguageClientManager ( instance ( mockedWorkspace ) , languageClientFactoryMock ) ;
390
+ await waitForReturnedPromises ( languageClientMock . start ) ;
391
+
392
+ expect ( languageClientFactoryMock . createLanguageClient ) . to . have . been . calledOnce ;
393
+ const middleware = languageClientFactoryMock . createLanguageClient . args [ 0 ] [ 3 ] . middleware ! ;
394
+ expect ( middleware ) . to . have . property ( "provideCodeLenses" ) ;
395
+ await expect (
396
+ middleware . provideCodeLenses ! ( { } as any , { } as any , codelensesFromSourceKitLSP )
397
+ ) . to . eventually . deep . equal ( [
398
+ {
399
+ range : new vscode . Range ( 0 , 0 , 0 , 0 ) ,
400
+ command : {
401
+ title : "$(play) Run" ,
402
+ command : "swift.run" ,
403
+ } ,
404
+ isResolved : true ,
405
+ } ,
406
+ {
407
+ range : new vscode . Range ( 0 , 0 , 0 , 0 ) ,
408
+ command : {
409
+ title : "$(debug) Debug" ,
410
+ command : "swift.debug" ,
411
+ } ,
412
+ isResolved : true ,
413
+ } ,
414
+ {
415
+ range : new vscode . Range ( 0 , 0 , 0 , 0 ) ,
416
+ command : {
417
+ title : "Run" ,
418
+ command : "some.other.command" ,
419
+ } ,
420
+ isResolved : true ,
421
+ } ,
422
+ ] ) ;
423
+ } ) ;
424
+
359
425
suite ( "SourceKit-LSP version doesn't support workspace folders" , ( ) => {
360
426
let folder1 : MockedObject < FolderContext > ;
361
427
let folder2 : MockedObject < FolderContext > ;
0 commit comments