From c141d585c2d85ef1244406b94034d01c5793dfe6 Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 10 Feb 2017 17:12:49 +0100 Subject: [PATCH] Support debug console output from extensions fixes #20113 --- src/vs/workbench/parts/debug/common/debug.ts | 5 ++++ .../debug/electron-browser/debugCommands.ts | 23 ++++++++++++++----- .../debug/electron-browser/debugService.ts | 4 ++++ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index a700d42f770..6b9ef76f8e8 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -458,6 +458,11 @@ export interface IDebugService { */ removeReplExpressions(): void; + /** + * Appends the passed string to the debug repl. + */ + logToRepl(value: string): void; + /** * Adds a new watch expression and evaluates it against the debug adapter. */ diff --git a/src/vs/workbench/parts/debug/electron-browser/debugCommands.ts b/src/vs/workbench/parts/debug/electron-browser/debugCommands.ts index 04ccb32929c..f9275e6c237 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugCommands.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugCommands.ts @@ -16,14 +16,14 @@ export function registerCommands(): void { KeybindingsRegistry.registerCommandAndKeybindingRule({ id: '_workbench.startDebug', - weight: KeybindingsRegistry.WEIGHT.workbenchContrib(0), + weight: KeybindingsRegistry.WEIGHT.workbenchContrib(), handler(accessor: ServicesAccessor, configurationOrName: any) { const debugService = accessor.get(IDebugService); if (!configurationOrName) { configurationOrName = debugService.getViewModel().selectedConfigurationName; } - return debugService.createProcess(configurationOrName); + debugService.createProcess(configurationOrName).done(undefined, errors.onUnexpectedError); }, when: CONTEXT_NOT_IN_DEBUG_MODE, primary: undefined @@ -31,19 +31,30 @@ export function registerCommands(): void { KeybindingsRegistry.registerCommandAndKeybindingRule({ id: 'workbench.customDebugRequest', - weight: KeybindingsRegistry.WEIGHT.workbenchContrib(0), + weight: KeybindingsRegistry.WEIGHT.workbenchContrib(), handler(accessor: ServicesAccessor, request: string, requestArgs: any) { const process = accessor.get(IDebugService).getViewModel().focusedProcess; if (process) { - return process.session.custom(request, requestArgs); + process.session.custom(request, requestArgs).done(undefined, errors.onUnexpectedError); } - - return undefined; }, when: CONTEXT_IN_DEBUG_MODE, primary: undefined }); + KeybindingsRegistry.registerCommandAndKeybindingRule({ + id: 'debug.logToDebugConsole', + weight: KeybindingsRegistry.WEIGHT.workbenchContrib(), + handler(accessor: ServicesAccessor, value: string) { + if (typeof value === 'string') { + const debugService = accessor.get(IDebugService); + debugService.logToRepl(value); + } + }, + when: undefined, + primary: undefined + }); + KeybindingsRegistry.registerCommandAndKeybindingRule({ id: 'debug.toggleBreakpoint', weight: KeybindingsRegistry.WEIGHT.workbenchContrib(5), diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index 4c3ca672bad..d8979b8245b 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -535,6 +535,10 @@ export class DebugService implements debug.IDebugService { this.model.removeReplExpressions(); } + public logToRepl(value: string): void { + this.model.appendToRepl(value, severity.Info); + } + public addWatchExpression(name: string): TPromise { return this.model.addWatchExpression(this.viewModel.focusedProcess, this.viewModel.focusedStackFrame, name); } -- GitLab