提交 7e5a8b96 编写于 作者: I isidor

debug: move editBreakpoint from debugService to breakpointWidget

上级 f7b53ac8
...@@ -16,6 +16,7 @@ import { CommonEditorRegistry } from 'vs/editor/common/editorCommonExtensions'; ...@@ -16,6 +16,7 @@ import { CommonEditorRegistry } from 'vs/editor/common/editorCommonExtensions';
import editorcommon = require('vs/editor/common/editorCommon'); import editorcommon = require('vs/editor/common/editorCommon');
import editorbrowser = require('vs/editor/browser/editorBrowser'); import editorbrowser = require('vs/editor/browser/editorBrowser');
import { ZoneWidget } from 'vs/editor/contrib/zoneWidget/browser/zoneWidget'; import { ZoneWidget } from 'vs/editor/contrib/zoneWidget/browser/zoneWidget';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { IContextViewService } from 'vs/platform/contextview/browser/contextView'; import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
import { IKeybindingService, IKeybindingContextKey } from 'vs/platform/keybinding/common/keybindingService'; import { IKeybindingService, IKeybindingContextKey } from 'vs/platform/keybinding/common/keybindingService';
import debug = require('vs/workbench/parts/debug/common/debug'); import debug = require('vs/workbench/parts/debug/common/debug');
...@@ -48,6 +49,15 @@ export class BreakpointWidget extends ZoneWidget { ...@@ -48,6 +49,15 @@ export class BreakpointWidget extends ZoneWidget {
this.toDispose.push(editor.addListener2(editorcommon.EventType.ModelChanged, () => this.dispose())); this.toDispose.push(editor.addListener2(editorcommon.EventType.ModelChanged, () => this.dispose()));
} }
public static createInstance(editor: editorbrowser.ICodeEditor, lineNumber: number, instantiationService: IInstantiationService): void {
if (BreakpointWidget.INSTANCE) {
BreakpointWidget.INSTANCE.dispose();
}
instantiationService.createInstance(BreakpointWidget, editor, lineNumber);
BreakpointWidget.INSTANCE.show({ lineNumber, column: 1 }, 2);
}
public fillContainer(container: HTMLElement): void { public fillContainer(container: HTMLElement): void {
dom.addClass(container, 'breakpoint-widget'); dom.addClass(container, 'breakpoint-widget');
const uri = this.editor.getModel().getAssociatedResource(); const uri = this.editor.getModel().getAssociatedResource();
......
...@@ -12,7 +12,6 @@ import severity from 'vs/base/common/severity'; ...@@ -12,7 +12,6 @@ import severity from 'vs/base/common/severity';
import { IViewletView } from 'vs/workbench/browser/viewlet'; import { IViewletView } from 'vs/workbench/browser/viewlet';
import { createDecorator, ServiceIdentifier } from 'vs/platform/instantiation/common/instantiation'; import { createDecorator, ServiceIdentifier } from 'vs/platform/instantiation/common/instantiation';
import editor = require('vs/editor/common/editorCommon'); import editor = require('vs/editor/common/editorCommon');
import editorbrowser = require('vs/editor/browser/editorBrowser');
import { Source } from 'vs/workbench/parts/debug/common/debugSource'; import { Source } from 'vs/workbench/parts/debug/common/debugSource';
export const VIEWLET_ID = 'workbench.view.debug'; export const VIEWLET_ID = 'workbench.view.debug';
...@@ -312,7 +311,6 @@ export interface IDebugService { ...@@ -312,7 +311,6 @@ export interface IDebugService {
toggleBreakpointsActivated(): TPromise<void>; toggleBreakpointsActivated(): TPromise<void>;
removeAllBreakpoints(): TPromise<any>; removeAllBreakpoints(): TPromise<any>;
sendAllBreakpoints(): TPromise<any>; sendAllBreakpoints(): TPromise<any>;
editBreakpoint(editor: editorbrowser.ICodeEditor, lineNumber: number): TPromise<void>;
addFunctionBreakpoint(): void; addFunctionBreakpoint(): void;
renameFunctionBreakpoint(id: string, newFunctionName: string): TPromise<void>; renameFunctionBreakpoint(id: string, newFunctionName: string): TPromise<void>;
......
...@@ -17,9 +17,11 @@ import { IKeybindingService } from 'vs/platform/keybinding/common/keybindingServ ...@@ -17,9 +17,11 @@ import { IKeybindingService } from 'vs/platform/keybinding/common/keybindingServ
import { EventType, CompositeEvent } from 'vs/workbench/common/events'; import { EventType, CompositeEvent } from 'vs/workbench/common/events';
import debug = require('vs/workbench/parts/debug/common/debug'); import debug = require('vs/workbench/parts/debug/common/debug');
import model = require('vs/workbench/parts/debug/common/debugModel'); import model = require('vs/workbench/parts/debug/common/debugModel');
import { BreakpointWidget } from 'vs/workbench/parts/debug/browser/breakpointWidget';
import { IPartService } from 'vs/workbench/services/part/common/partService'; import { IPartService } from 'vs/workbench/services/part/common/partService';
import { IPanelService } from 'vs/workbench/services/panel/common/panelService'; import { IPanelService } from 'vs/workbench/services/panel/common/panelService';
import { IViewletService } from 'vs/workbench/services/viewlet/common/viewletService'; import { IViewletService } from 'vs/workbench/services/viewlet/common/viewletService';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { clipboard } from 'electron'; import { clipboard } from 'electron';
import IDebugService = debug.IDebugService; import IDebugService = debug.IDebugService;
...@@ -419,12 +421,19 @@ export class AddConditionalBreakpointAction extends AbstractDebugAction { ...@@ -419,12 +421,19 @@ export class AddConditionalBreakpointAction extends AbstractDebugAction {
static ID = 'workbench.debug.viewlet.action.addConditionalBreakpointAction'; static ID = 'workbench.debug.viewlet.action.addConditionalBreakpointAction';
static LABEL = nls.localize('addConditionalBreakpoint', "Add Conditional Breakpoint"); static LABEL = nls.localize('addConditionalBreakpoint', "Add Conditional Breakpoint");
constructor(id: string, label: string, private editor: editorbrowser.ICodeEditor, private lineNumber: number, @IDebugService debugService: IDebugService, @IKeybindingService keybindingService: IKeybindingService) { constructor(id: string, label: string,
private editor: editorbrowser.ICodeEditor,
private lineNumber: number,
@IDebugService debugService: IDebugService,
@IKeybindingService keybindingService: IKeybindingService,
@IInstantiationService private instantiationService: IInstantiationService
) {
super(id, label, null, debugService, keybindingService); super(id, label, null, debugService, keybindingService);
} }
public run(): TPromise<any> { public run(): TPromise<any> {
return this.debugService.editBreakpoint(this.editor, this.lineNumber); BreakpointWidget.createInstance(this.editor, this.lineNumber, this.instantiationService);
return TPromise.as(null);
} }
} }
...@@ -432,12 +441,19 @@ export class EditConditionalBreakpointAction extends AbstractDebugAction { ...@@ -432,12 +441,19 @@ export class EditConditionalBreakpointAction extends AbstractDebugAction {
static ID = 'workbench.debug.viewlet.action.editConditionalBreakpointAction'; static ID = 'workbench.debug.viewlet.action.editConditionalBreakpointAction';
static LABEL = nls.localize('editConditionalBreakpoint', "Edit Breakpoint"); static LABEL = nls.localize('editConditionalBreakpoint', "Edit Breakpoint");
constructor(id: string, label: string, private editor: editorbrowser.ICodeEditor, private lineNumber: number, @IDebugService debugService: IDebugService, @IKeybindingService keybindingService: IKeybindingService) { constructor(id: string, label: string,
private editor: editorbrowser.ICodeEditor,
private lineNumber: number,
@IDebugService debugService: IDebugService,
@IKeybindingService keybindingService: IKeybindingService,
@IInstantiationService private instantiationService: IInstantiationService
) {
super(id, label, null, debugService, keybindingService); super(id, label, null, debugService, keybindingService);
} }
public run(breakpoint: debug.IBreakpoint): TPromise<any> { public run(breakpoint: debug.IBreakpoint): TPromise<any> {
return this.debugService.editBreakpoint(this.editor, this.lineNumber); BreakpointWidget.createInstance(this.editor, this.lineNumber, this.instantiationService);
return TPromise.as(null);
} }
} }
...@@ -464,7 +480,12 @@ export class ToggleBreakpointAction extends EditorAction { ...@@ -464,7 +480,12 @@ export class ToggleBreakpointAction extends EditorAction {
export class EditorConditionalBreakpointAction extends EditorAction { export class EditorConditionalBreakpointAction extends EditorAction {
static ID = 'editor.debug.action.conditionalBreakpoint'; static ID = 'editor.debug.action.conditionalBreakpoint';
constructor(descriptor: editorCommon.IEditorActionDescriptorData, editor: editorCommon.ICommonCodeEditor, @IDebugService private debugService: IDebugService) { constructor(
descriptor: editorCommon.IEditorActionDescriptorData,
editor: editorCommon.ICommonCodeEditor,
@IDebugService private debugService: IDebugService,
@IInstantiationService private instantiationService: IInstantiationService
) {
super(descriptor, editor, Behaviour.TextFocus); super(descriptor, editor, Behaviour.TextFocus);
} }
...@@ -472,7 +493,7 @@ export class EditorConditionalBreakpointAction extends EditorAction { ...@@ -472,7 +493,7 @@ export class EditorConditionalBreakpointAction extends EditorAction {
if (this.debugService.state !== debug.State.Disabled) { if (this.debugService.state !== debug.State.Disabled) {
const lineNumber = this.editor.getPosition().lineNumber; const lineNumber = this.editor.getPosition().lineNumber;
if (this.debugService.getConfigurationManager().canSetBreakpointsIn(this.editor.getModel())) { if (this.debugService.getConfigurationManager().canSetBreakpointsIn(this.editor.getModel())) {
return this.debugService.editBreakpoint(<editorbrowser.ICodeEditor>this.editor, lineNumber); BreakpointWidget.createInstance(<editorbrowser.ICodeEditor>this.editor, lineNumber, this.instantiationService);
} }
} }
......
...@@ -34,7 +34,6 @@ import model = require('vs/workbench/parts/debug/common/debugModel'); ...@@ -34,7 +34,6 @@ import model = require('vs/workbench/parts/debug/common/debugModel');
import { DebugStringEditorInput } from 'vs/workbench/parts/debug/browser/debugEditorInputs'; import { DebugStringEditorInput } from 'vs/workbench/parts/debug/browser/debugEditorInputs';
import viewmodel = require('vs/workbench/parts/debug/common/debugViewModel'); import viewmodel = require('vs/workbench/parts/debug/common/debugViewModel');
import debugactions = require('vs/workbench/parts/debug/electron-browser/debugActions'); import debugactions = require('vs/workbench/parts/debug/electron-browser/debugActions');
import { BreakpointWidget } from 'vs/workbench/parts/debug/browser/breakpointWidget';
import { ConfigurationManager } from 'vs/workbench/parts/debug/node/debugConfigurationManager'; import { ConfigurationManager } from 'vs/workbench/parts/debug/node/debugConfigurationManager';
import { Source } from 'vs/workbench/parts/debug/common/debugSource'; import { Source } from 'vs/workbench/parts/debug/common/debugSource';
import { ITaskService, TaskEvent, TaskType, TaskServiceEvents, ITaskSummary} from 'vs/workbench/parts/tasks/common/taskService'; import { ITaskService, TaskEvent, TaskType, TaskServiceEvents, ITaskSummary} from 'vs/workbench/parts/tasks/common/taskService';
...@@ -473,17 +472,6 @@ export class DebugService implements debug.IDebugService { ...@@ -473,17 +472,6 @@ export class DebugService implements debug.IDebugService {
return this.sendAllBreakpoints(); return this.sendAllBreakpoints();
} }
public editBreakpoint(editor: editorbrowser.ICodeEditor, lineNumber: number): TPromise<void> {
if (BreakpointWidget.INSTANCE) {
BreakpointWidget.INSTANCE.dispose();
}
this.instantiationService.createInstance(BreakpointWidget, editor, lineNumber);
BreakpointWidget.INSTANCE.show({ lineNumber, column: 1 }, 2);
return TPromise.as(null);
}
public addFunctionBreakpoint(): void { public addFunctionBreakpoint(): void {
this.model.addFunctionBreakpoint(''); this.model.addFunctionBreakpoint('');
} }
......
...@@ -63,10 +63,6 @@ export class MockDebugService implements debug.IDebugService { ...@@ -63,10 +63,6 @@ export class MockDebugService implements debug.IDebugService {
return TPromise.as(null); return TPromise.as(null);
} }
public editBreakpoint(editor: editorbrowser.ICodeEditor, lineNumber: number): TPromise<void> {
return TPromise.as(null);
}
public addFunctionBreakpoint(): void {} public addFunctionBreakpoint(): void {}
public renameFunctionBreakpoint(id: string, newFunctionName: string): TPromise<void> { public renameFunctionBreakpoint(id: string, newFunctionName: string): TPromise<void> {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册