diff --git a/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts b/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts index 2951a8a35b04418b816fd59a70dbfc60a03b4879..29dff62dd1e82060f6f1b7d4bc504f5cd5aef086 100644 --- a/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts +++ b/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import nls = require('vs/nls'); +import objects = require('vs/base/common/objects'); import lifecycle = require('vs/base/common/lifecycle'); import editorcommon = require('vs/editor/common/editorCommon'); import { IWorkbenchContribution } from 'vs/workbench/common/contributions'; @@ -270,11 +271,16 @@ export class DebugEditorModelManager implements IWorkbenchContribution { const modelData = this.modelData[breakpoint.source.uri.toString()]; const session = this.debugService.getActiveSession(); - const result = (!breakpoint.enabled || !activated) ? DebugEditorModelManager.BREAKPOINT_DISABLED_DECORATION : + let result = (!breakpoint.enabled || !activated) ? DebugEditorModelManager.BREAKPOINT_DISABLED_DECORATION : debugActive && modelData && modelData.dirty ? DebugEditorModelManager.BREAKPOINT_DIRTY_DECORATION : debugActive && !breakpoint.verified ? DebugEditorModelManager.BREAKPOINT_UNVERIFIED_DECORATION : !breakpoint.condition ? DebugEditorModelManager.BREAKPOINT_DECORATION : null; + if (result && breakpoint.message) { + result = objects.clone(result); + result.hoverMessage = breakpoint.message; + } + return result ? result : !session || session.capablities.supportsConditionalBreakpoints ? { glyphMarginClassName: 'debug-breakpoint-conditional-glyph', diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index 096e9fa8b24bd93a0e06cfd28884a090f88fff2b..13730fa9202d028e1f352e5c76746ad93ce1d90a 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -83,6 +83,7 @@ export interface IBreakpoint extends IEnablement { condition: string; verified: boolean; idFromAdapter: number; + message: string; } export interface IFunctionBreakpoint extends IEnablement { diff --git a/src/vs/workbench/parts/debug/common/debugModel.ts b/src/vs/workbench/parts/debug/common/debugModel.ts index 95388ea19f73470f47293bd065bf1a7a3d74351c..46c67860203ade77dbf5566e6f12a673fae38c74 100644 --- a/src/vs/workbench/parts/debug/common/debugModel.ts +++ b/src/vs/workbench/parts/debug/common/debugModel.ts @@ -283,6 +283,7 @@ export class Breakpoint implements debug.IBreakpoint { public lineNumber: number; public verified: boolean; public idFromAdapter: number; + public message: string; private id: string; constructor(public source: Source, public desiredLineNumber: number, public enabled: boolean, public condition: string) { @@ -415,6 +416,7 @@ export class Model extends ee.EventEmitter implements debug.IModel { bp.lineNumber = bpData.line ? bpData.line : bp.lineNumber; bp.verified = bpData.verified; bp.idFromAdapter = bpData.id; + bp.message = bpData.message; } }); this.emit(debug.ModelEvents.BREAKPOINTS_UPDATED);