@@ -83,6 +83,7 @@ export class RawDebugSession implements IDisposable {
83
83
debugAdapter : IDebugAdapter ,
84
84
public readonly dbgr : IDebugger ,
85
85
private readonly sessionId : string ,
86
+ private readonly name : string ,
86
87
@IExtensionHostDebugService private readonly extensionHostDebugService : IExtensionHostDebugService ,
87
88
@IOpenerService private readonly openerService : IOpenerService ,
88
89
@INotificationService private readonly notificationService : INotificationService ,
@@ -168,7 +169,7 @@ export class RawDebugSession implements IDisposable {
168
169
this . _onDidEvent . fire ( event ) ;
169
170
} ) ;
170
171
171
- this . debugAdapter . onRequest ( request => this . dispatchRequest ( request , dbgr ) ) ;
172
+ this . debugAdapter . onRequest ( request => this . dispatchRequest ( request ) ) ;
172
173
}
173
174
174
175
get onDidExitAdapter ( ) : Event < AdapterEndEvent > {
@@ -608,7 +609,7 @@ export class RawDebugSession implements IDisposable {
608
609
}
609
610
}
610
611
611
- private async dispatchRequest ( request : DebugProtocol . Request , dbgr : IDebugger ) : Promise < void > {
612
+ private async dispatchRequest ( request : DebugProtocol . Request ) : Promise < void > {
612
613
613
614
const response : DebugProtocol . Response = {
614
615
type : 'response' ,
@@ -647,7 +648,7 @@ export class RawDebugSession implements IDisposable {
647
648
break ;
648
649
case 'runInTerminal' :
649
650
try {
650
- const shellProcessId = await dbgr . runInTerminal ( request . arguments as DebugProtocol . RunInTerminalRequestArguments , this . sessionId ) ;
651
+ const shellProcessId = await this . dbgr . runInTerminal ( request . arguments as DebugProtocol . RunInTerminalRequestArguments , this . sessionId ) ;
651
652
const resp = response as DebugProtocol . RunInTerminalResponse ;
652
653
resp . body = { } ;
653
654
if ( typeof shellProcessId === 'number' ) {
@@ -660,6 +661,28 @@ export class RawDebugSession implements IDisposable {
660
661
safeSendResponse ( response ) ;
661
662
}
662
663
break ;
664
+ case 'startDebugging' :
665
+ try {
666
+ const args = ( request . arguments as DebugProtocol . StartDebuggingRequestArguments ) ;
667
+ const config : IConfig = {
668
+ ...args . configuration ,
669
+ ...{
670
+ request : args . request ,
671
+ type : this . dbgr . type ,
672
+ name : this . name
673
+ }
674
+ } ;
675
+ const success = await this . dbgr . startDebugging ( config , this . sessionId ) ;
676
+ if ( ! success ) {
677
+ response . success = false ;
678
+ response . message = 'Failed to start debugging' ;
679
+ safeSendResponse ( response ) ;
680
+ }
681
+ } catch ( err ) {
682
+ response . success = false ;
683
+ response . message = err . message ;
684
+ safeSendResponse ( response ) ;
685
+ }
663
686
default :
664
687
response . success = false ;
665
688
response . message = `unknown request '${ request . command } '` ;
0 commit comments