@@ -71,10 +71,18 @@ export class GDBTargetConfigurationProvider implements vscode.DebugConfiguration
7171 logger . debug ( `\t${ resolvedGDBConfig . target ?. server } ${ resolvedGDBConfig . target ?. serverParameters ?. join ( ' ' ) } ` ) ;
7272 }
7373
74+ private hasResolverFunction ( resolverType : ResolverType , provider : vscode . DebugConfigurationProvider ) : boolean {
75+ switch ( resolverType ) {
76+ case 'resolveDebugConfiguration' :
77+ return ! ! provider . resolveDebugConfiguration ;
78+ case 'resolveDebugConfigurationWithSubstitutedVariables' :
79+ return ! ! provider . resolveDebugConfigurationWithSubstitutedVariables ;
80+ }
81+ }
82+
7483 private isRelevantSubprovider ( resolverType : ResolverType , serverType : string , subProvider : GDBTargetConfigurationSubProvider ) : boolean {
7584 const serverTypeMatch = subProvider . serverRegExp . test ( serverType ) ;
76- const hasResolverFunction = ! ! subProvider . provider [ resolverType ] ;
77- return serverTypeMatch && hasResolverFunction ;
85+ return serverTypeMatch && this . hasResolverFunction ( resolverType , subProvider . provider ) ;
7886 }
7987
8088 private getRelevantSubproviders ( resolverType : ResolverType , serverType ?: string ) : GDBTargetConfigurationSubProvider [ ] {
@@ -96,7 +104,7 @@ export class GDBTargetConfigurationProvider implements vscode.DebugConfiguration
96104 subproviders . forEach ( ( subprovider , index ) => logger . warn ( `#${ index } : '${ subprovider . serverRegExp } '` ) ) ;
97105 }
98106 const relevantProvider = subproviders [ 0 ] ;
99- if ( ! relevantProvider . provider [ resolverType ] ) {
107+ if ( ! this . hasResolverFunction ( resolverType , relevantProvider . provider ) ) {
100108 logger . debug ( `${ resolverType } : Subprovider '${ relevantProvider . serverRegExp } ' does not implement '${ resolverType } '.` ) ;
101109 return undefined ;
102110 }
@@ -118,7 +126,9 @@ export class GDBTargetConfigurationProvider implements vscode.DebugConfiguration
118126 return debugConfiguration ;
119127 }
120128 logger . debug ( `${ resolverType } : Resolve config with subprovider '${ subprovider . serverRegExp } '` ) ;
121- const resolvedConfig = await subprovider . provider [ resolverType ] ! ( folder , debugConfiguration , token ) ;
129+ const resolvedConfig = resolverType === 'resolveDebugConfiguration'
130+ ? await subprovider . provider . resolveDebugConfiguration ! ( folder , debugConfiguration , token )
131+ : await subprovider . provider . resolveDebugConfigurationWithSubstitutedVariables ! ( folder , debugConfiguration , token ) ;
122132 if ( ! resolvedConfig ) {
123133 logger . error ( `${ resolverType } : Resolving config failed with subprovider '${ subprovider . serverRegExp } '` ) ;
124134 return undefined ;
0 commit comments