mirror of
https://github.com/microsoft/vscode.git
synced 2026-09-29 09:43:49 +01:00
add proposed 'startDebugging' API
This commit is contained in:
Vendored
+12
@@ -121,4 +121,16 @@ declare module 'vscode' {
|
||||
*/
|
||||
export function registerDiffInformationCommand(command: string, callback: (diff: LineChange[], ...args: any[]) => any, thisArg?: any): Disposable;
|
||||
}
|
||||
|
||||
export namespace debug {
|
||||
|
||||
/**
|
||||
* Start debugging by using either a named launch or named compound configuration,
|
||||
* or by directly passing a DebugConfiguration.
|
||||
* Before debugging starts, all unsaved files are saved and the launch configurations are up-to-date.
|
||||
* @param nameOrConfiguration Either the name of a debug or compound configuration or a DebugConfiguration object.
|
||||
* @return A thenable that resolves when debugging could be successfully started.
|
||||
*/
|
||||
export function startDebugging(nameOrConfiguration: string | DebugConfiguration): Thenable<boolean>;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,6 +44,19 @@ export class MainThreadDebugService extends MainThreadDebugServiceShape {
|
||||
this._toDispose = dispose(this._toDispose);
|
||||
}
|
||||
|
||||
public $startDebugging(nameOrConfiguration: string | IConfig): TPromise<boolean> {
|
||||
|
||||
if (typeof nameOrConfiguration === 'string') {
|
||||
return this.debugService.startDebugging(nameOrConfiguration).then(x => {
|
||||
return true;
|
||||
}, err => {
|
||||
return TPromise.wrapError(err && err.message ? err.message : 'cannot start debugging');
|
||||
});
|
||||
} else {
|
||||
return TPromise.wrapError(new Error('startDebugging with configuration object not yet implemented'));
|
||||
}
|
||||
}
|
||||
|
||||
public $startDebugSession(configuration: IConfig): TPromise<DebugSessionUUID> {
|
||||
if (configuration.request !== 'launch' && configuration.request !== 'attach') {
|
||||
return TPromise.wrapError(new Error(`only 'launch' or 'attach' allowed for 'request' attribute`));
|
||||
|
||||
@@ -467,6 +467,9 @@ export function createApiFactory(
|
||||
get activeDebugSession() {
|
||||
return extHostDebugService.activeDebugSession;
|
||||
},
|
||||
startDebugging: proposedApiFunction(extension, (nameOrConfig: string | vscode.DebugConfiguration) => {
|
||||
return extHostDebugService.startDebugging(nameOrConfig);
|
||||
}),
|
||||
startDebugSession(config: vscode.DebugConfiguration) {
|
||||
return extHostDebugService.startDebugSession(config);
|
||||
},
|
||||
|
||||
@@ -345,6 +345,7 @@ export abstract class MainThreadSCMShape {
|
||||
export type DebugSessionUUID = string;
|
||||
|
||||
export abstract class MainThreadDebugServiceShape {
|
||||
$startDebugging(nameOrConfig: string | vscode.DebugConfiguration): TPromise<boolean> { throw ni(); }
|
||||
$startDebugSession(config: vscode.DebugConfiguration): TPromise<DebugSessionUUID> { throw ni(); }
|
||||
$customDebugAdapterRequest(id: DebugSessionUUID, command: string, args: any): TPromise<any> { throw ni(); }
|
||||
}
|
||||
|
||||
@@ -45,6 +45,11 @@ export class ExtHostDebugService extends ExtHostDebugServiceShape {
|
||||
this._debugServiceProxy = threadService.get(MainContext.MainThreadDebugService);
|
||||
}
|
||||
|
||||
public startDebugging(nameOrConfig: string | vscode.DebugConfiguration): TPromise<boolean> {
|
||||
|
||||
return this._debugServiceProxy.$startDebugging(nameOrConfig);
|
||||
}
|
||||
|
||||
public startDebugSession(config: vscode.DebugConfiguration): TPromise<vscode.DebugSession> {
|
||||
|
||||
return this._debugServiceProxy.$startDebugSession(config).then((id: DebugSessionUUID) => {
|
||||
|
||||
Reference in New Issue
Block a user