diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index a700d42f770a2720dd34cb5becd7286442a98079..6b9ef76f8e868f28192e50b3b895ae0bec47d6ce 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 04ccb32929ce2ce65e5154ccf02cb4ae29bbc245..f9275e6c237cf5752111569523c8772d36e4db5d 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 4c3ca672badfc3609aaf6e92e0f5a111d9fba73b..d8979b8245bc010aec8fe2c2f3ed47b8dc2233c9 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); }