Skip to content

Commit 526c5c0

Browse files
committed
debug: postDebugTask
fixes #11522
1 parent c5d357d commit 526c5c0

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

src/vs/workbench/parts/debug/common/debug.ts

+1
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,7 @@ export interface IEnvConfig {
356356
request: string;
357357
internalConsoleOptions?: 'neverOpen' | 'openOnSessionStart' | 'openOnFirstSessionStart';
358358
preLaunchTask?: string;
359+
postDebugTask?: string;
359360
__restart?: any;
360361
__sessionId?: string;
361362
debugServer?: number;

src/vs/workbench/parts/debug/electron-browser/debugService.ts

+7-4
Original file line numberDiff line numberDiff line change
@@ -814,7 +814,7 @@ export class DebugService implements debug.IDebugService {
814814
return this.doCreateProcess(workspace, resolvedConfig, sessionId);
815815
});
816816

817-
return this.runPreLaunchTask(sessionId, workspace, resolvedConfig.preLaunchTask).then((taskSummary: ITaskSummary) => {
817+
return this.runTask(sessionId, workspace, resolvedConfig.preLaunchTask).then((taskSummary: ITaskSummary) => {
818818
const errorCount = resolvedConfig.preLaunchTask ? this.markerService.getStatistics().errors : 0;
819819
const successExitCode = taskSummary && taskSummary.exitCode === 0;
820820
const failureExitCode = taskSummary && taskSummary.exitCode !== undefined && taskSummary.exitCode !== 0;
@@ -995,15 +995,15 @@ export class DebugService implements debug.IDebugService {
995995
});
996996
}
997997

998-
private runPreLaunchTask(sessionId: string, root: IWorkspaceFolder, taskName: string): TPromise<ITaskSummary> {
998+
private runTask(sessionId: string, root: IWorkspaceFolder, taskName: string): TPromise<ITaskSummary> {
999999
if (!taskName) {
10001000
return TPromise.as(null);
10011001
}
10021002

10031003
// run a task before starting a debug session
10041004
return this.taskService.getTask(root, taskName).then(task => {
10051005
if (!task) {
1006-
return TPromise.wrapError(errors.create(nls.localize('DebugTaskNotFound', "Could not find the preLaunchTask \'{0}\'.", taskName)));
1006+
return TPromise.wrapError(errors.create(nls.localize('DebugTaskNotFound', "Could not find the task \'{0}\'.", taskName)));
10071007
}
10081008

10091009
function once(kind: TaskEventKind, event: Event<TaskEvent>): Event<TaskEvent> {
@@ -1047,7 +1047,7 @@ export class DebugService implements debug.IDebugService {
10471047

10481048
setTimeout(() => {
10491049
if (!taskStarted) {
1050-
e({ severity: severity.Error, message: nls.localize('taskNotTracked', "The preLaunchTask '{0}' cannot be tracked.", taskName) });
1050+
e({ severity: severity.Error, message: nls.localize('taskNotTracked', "The task '{0}' cannot be tracked.", taskName) });
10511051
}
10521052
}, 10000);
10531053
});
@@ -1142,6 +1142,9 @@ export class DebugService implements debug.IDebugService {
11421142
if (process) {
11431143
process.inactive = true;
11441144
this._onDidEndProcess.fire(process);
1145+
if (process.configuration.postDebugTask) {
1146+
this.runTask(process.getId(), process.session.root, process.configuration.postDebugTask);
1147+
}
11451148
}
11461149

11471150
this.toDisposeOnSessionEnd.set(session.getId(), lifecycle.dispose(this.toDisposeOnSessionEnd.get(session.getId())));

src/vs/workbench/parts/debug/node/debugAdapter.ts

+5
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,11 @@ export class Adapter {
215215
default: null,
216216
description: nls.localize('debugPrelaunchTask', "Task to run before debug session starts.")
217217
};
218+
properties['postDebugTask'] = {
219+
type: ['string', 'null'],
220+
default: null,
221+
description: nls.localize('debugPostDebugTask', "Task to run after debug session ends.")
222+
};
218223
properties['internalConsoleOptions'] = INTERNAL_CONSOLE_OPTIONS_SCHEMA;
219224

220225
const osProperties = objects.deepClone(properties);

0 commit comments

Comments
 (0)