提交 310980c3 编写于 作者: I isidor

debug: improve breakpoint handling

fixes #8642
上级 904aeee9
......@@ -864,12 +864,16 @@ export class Model implements IModel {
this._onDidChangeBreakpoints.fire();
}
public addBreakpoints(uri: uri, rawData: IRawBreakpoint[], adapterData: any = undefined): void {
this.breakpoints = this.breakpoints.concat(rawData.map(rawBp =>
new Breakpoint(uri, rawBp.lineNumber, rawBp.column, rawBp.enabled, rawBp.condition, rawBp.hitCondition, adapterData)));
public addBreakpoints(uri: uri, rawData: IRawBreakpoint[], fireEvent = true): Breakpoint[] {
const newBreakpoints = rawData.map(rawBp => new Breakpoint(uri, rawBp.lineNumber, rawBp.column, rawBp.enabled, rawBp.condition, rawBp.hitCondition, undefined));
this.breakpoints = this.breakpoints.concat(newBreakpoints);
this.breakpointsActivated = true;
this.breakpoints = distinct(this.breakpoints, bp => `${bp.uri.toString()}:${bp.lineNumber}:${bp.column}`);
this._onDidChangeBreakpoints.fire();
if (fireEvent) {
this._onDidChangeBreakpoints.fire();
}
return newBreakpoints;
}
public removeBreakpoints(toRemove: IBreakpoint[]): void {
......
......@@ -373,13 +373,14 @@ export class DebugService implements debug.IDebugService {
if (event.body.reason === 'new' && event.body.breakpoint.source) {
const source = process.getSource(event.body.breakpoint.source);
this.model.addBreakpoints(source.uri, [{
const bps = this.model.addBreakpoints(source.uri, [{
column: event.body.breakpoint.column,
enabled: true,
lineNumber: event.body.breakpoint.line
}], source.raw.adapterData);
const newBreakpoint = this.model.getBreakpoints().filter(bp => bp.idFromAdapter === event.body.breakpoint.id).pop();
this.model.updateBreakpoints({ [newBreakpoint.getId()]: event.body.breakpoint });
lineNumber: event.body.breakpoint.line,
}], false);
if (bps.length === 1) {
this.model.updateBreakpoints({ [bps[0].getId()]: event.body.breakpoint });
}
}
if (event.body.reason === 'removed') {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册