diff --git a/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts b/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts index f6da28ed3ac8e5a077a57f5ee919275e3a72ec23..9b163317f94fe97bf788997f04c997d7f45fb748 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 { TPromise } from 'vs/base/common/winjs.base'; import objects = require('vs/base/common/objects'); import lifecycle = require('vs/base/common/lifecycle'); import editorcommon = require('vs/editor/common/editorCommon'); @@ -223,7 +224,12 @@ export class DebugEditorModelManager implements IWorkbenchContribution { } modelData.dirty = !!this.debugService.getActiveSession(); - this.debugService.setBreakpointsForModel(modelUrl, data); + const toRemove = this.debugService.getModel().getBreakpoints() + .filter(bp => bp.source.uri.toString() === modelUrl.toString()); + + TPromise.join(toRemove.map(bp => this.debugService.removeBreakpoints(bp.getId()))).then(() => { + this.debugService.addBreakpoints(data); + }); } private onBreakpointsChange(): void { diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index 249163f25e086e5b5d0f913f496c2415305cc340..5fb131c56f8d026e72a02bf277957933d3819b91 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -304,7 +304,6 @@ export interface IDebugService { /** * General breakpoints manipulation. */ - setBreakpointsForModel(modelUri: uri, rawData: IRawBreakpoint[]): void; addBreakpoints(rawBreakpoints: IRawBreakpoint[]): TPromise; enableOrDisableAllBreakpoints(enabled: boolean): TPromise; toggleEnablement(element: IEnablement): TPromise; diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index a7455ccec8780e53262341214d3720f643c597bb..457f2d6608e4b5ca28b32292d2991b050df0b568 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -426,12 +426,6 @@ export class DebugService implements debug.IDebugService { } } - public setBreakpointsForModel(modelUri: uri, rawData: debug.IRawBreakpoint[]): void { - this.model.removeBreakpoints( - this.model.getBreakpoints().filter(bp => bp.source.uri.toString() === modelUri.toString())); - this.model.addBreakpoints(rawData); - } - public enableOrDisableAllBreakpoints(enabled: boolean): TPromise{ this.model.enableOrDisableAllBreakpoints(enabled); return this.sendAllBreakpoints(); diff --git a/src/vs/workbench/parts/debug/test/common/mockDebugService.ts b/src/vs/workbench/parts/debug/test/common/mockDebugService.ts index c61235f8d1d42116da990d18c97f7e221c8be95c..352476895eb86707f85fac2814d26511e3c0757b 100644 --- a/src/vs/workbench/parts/debug/test/common/mockDebugService.ts +++ b/src/vs/workbench/parts/debug/test/common/mockDebugService.ts @@ -37,8 +37,6 @@ export class MockDebugService implements debug.IDebugService { return TPromise.as(null); } - public setBreakpointsForModel(modelUri: uri, rawData: debug.IRawBreakpoint[]): void {} - public addBreakpoints(rawBreakpoints: debug.IRawBreakpoint[]): TPromise { return TPromise.as(null); }