File tree Expand file tree Collapse file tree 3 files changed +33
-11
lines changed
integration/vscode/ada/src Expand file tree Collapse file tree 3 files changed +33
-11
lines changed Original file line number Diff line number Diff line change @@ -411,12 +411,15 @@ export class ExtensionState {
411
411
arguments : [ queryArgs ] ,
412
412
} ;
413
413
414
- const queryPromise = this . adaClient . sendRequest (
415
- ExecuteCommandRequest . type ,
416
- params ,
417
- ) as Promise < string | string [ ] > ;
418
-
419
- this . projectAttributeCache . set ( mapKey , queryPromise ) ;
414
+ const queryPromise = this . adaClient
415
+ . sendRequest ( ExecuteCommandRequest . type , params )
416
+ . then ( ( value ) => {
417
+ /**
418
+ * Only cache the promise if it was fulfilled.
419
+ */
420
+ this . projectAttributeCache . set ( mapKey , queryPromise ) ;
421
+ return value as string | string [ ] ;
422
+ } ) ;
420
423
421
424
return queryPromise ;
422
425
} else {
Original file line number Diff line number Diff line change @@ -171,7 +171,15 @@ export async function getHarnessDir() {
171
171
/**
172
172
* default to gnattest/harness if Harness_Dir is unspecified
173
173
*/
174
- ( ) => path . join ( 'gnattest' , 'harness' ) ,
174
+ ( err ) => {
175
+ if ( err instanceof Error && err . message == 'The queried attribute is not known' ) {
176
+ return path . join ( 'gnattest' , 'harness' ) ;
177
+ } else {
178
+ // Reject the promise with the same error.
179
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
180
+ return Promise . reject ( err ) ;
181
+ }
182
+ } ,
175
183
)
176
184
. then ( async ( value ) => path . join ( await adaExtState . getObjectDir ( ) , value as string ) ) ;
177
185
}
@@ -878,7 +886,7 @@ async function buildTestDriverAndReportErrors(
878
886
879
887
buildTasks . push ( instTask , buildTask ) ;
880
888
} else {
881
- const task = await findTaskByName ( `${ TASK_BUILD_TEST_DRIVER } ` ) ;
889
+ const task = await findTaskByName ( `${ TASK_TYPE_ADA } : ${ TASK_BUILD_TEST_DRIVER } ` ) ;
882
890
buildTasks . push ( task ) ;
883
891
}
884
892
Original file line number Diff line number Diff line change @@ -404,8 +404,14 @@ export class SimpleTaskProvider implements vscode.TaskProvider {
404
404
}
405
405
406
406
const result : vscode . Task [ ] = [ ] ;
407
- const targetPrefix = await adaExtState . getTargetPrefix ( ) ;
408
- const isNativeProject = await adaExtState . isNativeProject ( ) ;
407
+ const targetPrefix = await adaExtState . getTargetPrefix ( ) . catch ( ( err ) => {
408
+ logger . error ( 'Error in task provider:\n' + err ) ;
409
+ return '' ;
410
+ } ) ;
411
+ const isNativeProject = await adaExtState . isNativeProject ( ) . catch ( ( err ) => {
412
+ logger . error ( 'Error in task provider:\n' + err ) ;
413
+ return true ;
414
+ } ) ;
409
415
410
416
/**
411
417
* Start with the list of predefined tasks.
@@ -417,7 +423,12 @@ export class SimpleTaskProvider implements vscode.TaskProvider {
417
423
* Add tasks based on the Mains of the project.
418
424
*/
419
425
taskDeclsToOffer . push (
420
- ...( await getAdaMains ( ) ) . flatMap ( ( main ) => {
426
+ ...(
427
+ await getAdaMains ( ) . catch ( ( err ) => {
428
+ logger . error ( 'Error in task provider:\n' + err ) ;
429
+ return [ ] ;
430
+ } )
431
+ ) . flatMap ( ( main ) => {
421
432
if ( token ?. isCancellationRequested ) {
422
433
throw new vscode . CancellationError ( ) ;
423
434
}
You can’t perform that action at this time.
0 commit comments