提交 6f946ab8 编写于 作者: I isidor

strcit null checks: debugEditorModelManager

上级 0046a33f
......@@ -243,6 +243,7 @@
"./vs/workbench/contrib/debug/browser/debugCommands.ts",
"./vs/workbench/contrib/debug/browser/debugContentProvider.ts",
"./vs/workbench/contrib/debug/browser/debugEditorActions.ts",
"./vs/workbench/contrib/debug/browser/debugEditorModelManager.ts",
"./vs/workbench/contrib/debug/browser/debugStatus.ts",
"./vs/workbench/contrib/debug/browser/exceptionWidget.ts",
"./vs/workbench/contrib/debug/browser/linkDetector.ts",
......
......@@ -27,7 +27,7 @@ interface IDebugEditorModelData {
toDispose: lifecycle.IDisposable[];
breakpointDecorations: IBreakpointDecoration[];
currentStackDecorations: string[];
topStackFrameRange: Range;
topStackFrameRange: Range | undefined;
}
export class DebugEditorModelManager implements IWorkbenchContribution {
......@@ -94,7 +94,7 @@ export class DebugEditorModelManager implements IWorkbenchContribution {
private onModelRemoved(model: ITextModel): void {
const modelUriStr = model.uri.toString();
if (this.modelDataMap.has(modelUriStr)) {
lifecycle.dispose(this.modelDataMap.get(modelUriStr).toDispose);
lifecycle.dispose(this.modelDataMap.get(modelUriStr)!.toDispose);
this.modelDataMap.delete(modelUriStr);
}
}
......@@ -133,7 +133,7 @@ export class DebugEditorModelManager implements IWorkbenchContribution {
});
if (this.modelDataMap.has(modelUriStr)) {
const modelData = this.modelDataMap.get(modelUriStr);
const modelData = this.modelDataMap.get(modelUriStr)!;
if (modelData.topStackFrameRange && modelData.topStackFrameRange.startLineNumber === stackFrame.range.startLineNumber && modelData.topStackFrameRange.startColumn !== stackFrame.range.startColumn) {
result.push({
options: DebugEditorModelManager.TOP_STACK_FRAME_INLINE_DECORATION,
......@@ -160,7 +160,7 @@ export class DebugEditorModelManager implements IWorkbenchContribution {
// breakpoints management. Represent data coming from the debug service and also send data back.
private onModelDecorationsChanged(modelUrlStr: string): void {
const modelData = this.modelDataMap.get(modelUrlStr);
if (modelData.breakpointDecorations.length === 0 || this.ignoreDecorationsChangedEvent) {
if (!modelData || modelData.breakpointDecorations.length === 0 || this.ignoreDecorationsChangedEvent) {
// I have no decorations
return;
}
......@@ -206,7 +206,7 @@ export class DebugEditorModelManager implements IWorkbenchContribution {
this.debugService.getModel().getBreakpoints().forEach(bp => {
const uriStr = bp.uri.toString();
if (breakpointsMap.has(uriStr)) {
breakpointsMap.get(uriStr).push(bp);
breakpointsMap.get(uriStr)!.push(bp);
} else {
breakpointsMap.set(uriStr, [bp]);
}
......@@ -214,7 +214,7 @@ export class DebugEditorModelManager implements IWorkbenchContribution {
breakpointsMap.forEach((bps, uri) => {
if (this.modelDataMap.has(uri)) {
this.updateBreakpoints(this.modelDataMap.get(uri), breakpointsMap.get(uri));
this.updateBreakpoints(this.modelDataMap.get(uri)!, breakpointsMap.get(uri)!);
}
});
this.modelDataMap.forEach((modelData, uri) => {
......@@ -226,16 +226,17 @@ export class DebugEditorModelManager implements IWorkbenchContribution {
private updateBreakpoints(modelData: IDebugEditorModelData, newBreakpoints: IBreakpoint[]): void {
const desiredDecorations = this.createBreakpointDecorations(modelData.model, newBreakpoints);
let breakpointDecorationIds: string[] | undefined;
try {
this.ignoreDecorationsChangedEvent = true;
breakpointDecorationIds = modelData.model.deltaDecorations(modelData.breakpointDecorations.map(bpd => bpd.decorationId), desiredDecorations);
const breakpointDecorationIds = modelData.model.deltaDecorations(modelData.breakpointDecorations.map(bpd => bpd.decorationId), desiredDecorations);
modelData.breakpointDecorations = breakpointDecorationIds.map((decorationId, index) => ({
decorationId,
modelId: newBreakpoints[index].getId(),
range: desiredDecorations[index].range
}));
} finally {
this.ignoreDecorationsChangedEvent = false;
}
modelData.breakpointDecorations = breakpointDecorationIds.map((decorationId, index) =>
({ decorationId, modelId: newBreakpoints[index].getId(), range: desiredDecorations[index].range }));
}
private createBreakpointDecorations(model: ITextModel, breakpoints: ReadonlyArray<IBreakpoint>): { range: Range; options: IModelDecorationOptions; }[] {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册