提交 ddfab626 编写于 作者: I isidor

debug: add some breakpoint actions inline

上级 aefd1fb8
...@@ -137,7 +137,6 @@ export class BreakpointsView extends ViewsViewletPanel { ...@@ -137,7 +137,6 @@ export class BreakpointsView extends ViewsViewletPanel {
actions.push(new RemoveBreakpointAction(RemoveBreakpointAction.ID, RemoveBreakpointAction.LABEL, this.debugService, this.keybindingService)); actions.push(new RemoveBreakpointAction(RemoveBreakpointAction.ID, RemoveBreakpointAction.LABEL, this.debugService, this.keybindingService));
if (this.debugService.getModel().getBreakpoints().length + this.debugService.getModel().getFunctionBreakpoints().length > 1) { if (this.debugService.getModel().getBreakpoints().length + this.debugService.getModel().getFunctionBreakpoints().length > 1) {
actions.push(new RemoveAllBreakpointsAction(RemoveAllBreakpointsAction.ID, RemoveAllBreakpointsAction.LABEL, this.debugService, this.keybindingService)); actions.push(new RemoveAllBreakpointsAction(RemoveAllBreakpointsAction.ID, RemoveAllBreakpointsAction.LABEL, this.debugService, this.keybindingService));
actions.push(new Separator()); actions.push(new Separator());
......
...@@ -7,12 +7,11 @@ import * as nls from 'vs/nls'; ...@@ -7,12 +7,11 @@ import * as nls from 'vs/nls';
import { Action } from 'vs/base/common/actions'; import { Action } from 'vs/base/common/actions';
import * as lifecycle from 'vs/base/common/lifecycle'; import * as lifecycle from 'vs/base/common/lifecycle';
import { TPromise } from 'vs/base/common/winjs.base'; import { TPromise } from 'vs/base/common/winjs.base';
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
import { ICommandService } from 'vs/platform/commands/common/commands'; import { ICommandService } from 'vs/platform/commands/common/commands';
import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace'; import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace';
import { IFileService } from 'vs/platform/files/common/files'; import { IFileService } from 'vs/platform/files/common/files';
import { IDebugService, State, IProcess, IThread, IEnablement, IBreakpoint, IStackFrame, IDebugEditorContribution, EDITOR_CONTRIBUTION_ID, IExpression, REPL_ID, ProcessState } import { IDebugService, State, IProcess, IThread, IEnablement, IBreakpoint, IStackFrame, IExpression, REPL_ID, ProcessState }
from 'vs/workbench/parts/debug/common/debug'; from 'vs/workbench/parts/debug/common/debug';
import { Variable, Expression, Thread, Breakpoint, Process } from 'vs/workbench/parts/debug/common/debugModel'; import { Variable, Expression, Thread, Breakpoint, Process } from 'vs/workbench/parts/debug/common/debugModel';
import { IPartService } from 'vs/workbench/services/part/common/partService'; import { IPartService } from 'vs/workbench/services/part/common/partService';
...@@ -439,32 +438,6 @@ export class RemoveAllBreakpointsAction extends AbstractDebugAction { ...@@ -439,32 +438,6 @@ export class RemoveAllBreakpointsAction extends AbstractDebugAction {
} }
} }
export class EnableBreakpointAction extends AbstractDebugAction {
static readonly ID = 'workbench.debug.viewlet.action.enableBreakpoint';
static LABEL = nls.localize('enableBreakpoint', "Enable Breakpoint");
constructor(id: string, label: string, @IDebugService debugService: IDebugService, @IKeybindingService keybindingService: IKeybindingService) {
super(id, label, undefined, debugService, keybindingService);
}
public run(element: IEnablement): TPromise<any> {
return this.debugService.enableOrDisableBreakpoints(true, element);
}
}
export class DisableBreakpointAction extends AbstractDebugAction {
static readonly ID = 'workbench.debug.viewlet.action.disableBreakpoint';
static LABEL = nls.localize('disableBreakpoint', "Disable Breakpoint");
constructor(id: string, label: string, @IDebugService debugService: IDebugService, @IKeybindingService keybindingService: IKeybindingService) {
super(id, label, undefined, debugService, keybindingService);
}
public run(element: IEnablement): TPromise<any> {
return this.debugService.enableOrDisableBreakpoints(false, element);
}
}
export class EnableAllBreakpointsAction extends AbstractDebugAction { export class EnableAllBreakpointsAction extends AbstractDebugAction {
static readonly ID = 'workbench.debug.viewlet.action.enableAllBreakpoints'; static readonly ID = 'workbench.debug.viewlet.action.enableAllBreakpoints';
static LABEL = nls.localize('enableAllBreakpoints', "Enable All Breakpoints"); static LABEL = nls.localize('enableAllBreakpoints', "Enable All Breakpoints");
...@@ -567,44 +540,6 @@ export class AddFunctionBreakpointAction extends AbstractDebugAction { ...@@ -567,44 +540,6 @@ export class AddFunctionBreakpointAction extends AbstractDebugAction {
} }
} }
export class AddConditionalBreakpointAction extends AbstractDebugAction {
static readonly ID = 'workbench.debug.viewlet.action.addConditionalBreakpointAction';
static LABEL = nls.localize('addConditionalBreakpoint', "Add Conditional Breakpoint...");
constructor(id: string, label: string,
private editor: ICodeEditor,
private lineNumber: number,
@IDebugService debugService: IDebugService,
@IKeybindingService keybindingService: IKeybindingService,
) {
super(id, label, null, debugService, keybindingService);
}
public run(): TPromise<any> {
this.editor.getContribution<IDebugEditorContribution>(EDITOR_CONTRIBUTION_ID).showBreakpointWidget(this.lineNumber, undefined);
return TPromise.as(null);
}
}
export class EditBreakpointAction extends AbstractDebugAction {
static readonly ID = 'workbench.debug.action.editBreakpointAction';
static LABEL = nls.localize('editBreakpoint', "Edit Breakpoint...");
constructor(id: string, label: string,
private editor: ICodeEditor,
@IDebugService debugService: IDebugService,
@IKeybindingService keybindingService: IKeybindingService,
) {
super(id, label, null, debugService, keybindingService);
}
public run(breakpoint: IBreakpoint): TPromise<any> {
this.editor.getContribution<IDebugEditorContribution>(EDITOR_CONTRIBUTION_ID).showBreakpointWidget(breakpoint.lineNumber, breakpoint.column);
return TPromise.as(null);
}
}
export class SetValueAction extends AbstractDebugAction { export class SetValueAction extends AbstractDebugAction {
static readonly ID = 'workbench.debug.viewlet.action.setValue'; static readonly ID = 'workbench.debug.viewlet.action.setValue';
static LABEL = nls.localize('setValue', "Set Value"); static LABEL = nls.localize('setValue', "Set Value");
......
...@@ -70,7 +70,6 @@ class ConditionalBreakpointAction extends EditorAction { ...@@ -70,7 +70,6 @@ class ConditionalBreakpointAction extends EditorAction {
} }
} }
class RunToCursorAction extends EditorAction { class RunToCursorAction extends EditorAction {
constructor() { constructor() {
......
...@@ -30,7 +30,7 @@ import { ICommandService } from 'vs/platform/commands/common/commands'; ...@@ -30,7 +30,7 @@ import { ICommandService } from 'vs/platform/commands/common/commands';
import { IContextKeyService, IContextKey } from 'vs/platform/contextkey/common/contextkey'; import { IContextKeyService, IContextKey } from 'vs/platform/contextkey/common/contextkey';
import { IContextMenuService } from 'vs/platform/contextview/browser/contextView'; import { IContextMenuService } from 'vs/platform/contextview/browser/contextView';
import { DebugHoverWidget } from 'vs/workbench/parts/debug/electron-browser/debugHover'; import { DebugHoverWidget } from 'vs/workbench/parts/debug/electron-browser/debugHover';
import { RemoveBreakpointAction, EditBreakpointAction, EnableBreakpointAction, DisableBreakpointAction, AddConditionalBreakpointAction } from 'vs/workbench/parts/debug/browser/debugActions'; import { RemoveBreakpointAction } from 'vs/workbench/parts/debug/browser/debugActions';
import { IDebugEditorContribution, IDebugService, State, IBreakpoint, EDITOR_CONTRIBUTION_ID, CONTEXT_BREAKPOINT_WIDGET_VISIBLE, IStackFrame, IDebugConfiguration, IExpression, IExceptionInfo, BreakpointWidgetContext } from 'vs/workbench/parts/debug/common/debug'; import { IDebugEditorContribution, IDebugService, State, IBreakpoint, EDITOR_CONTRIBUTION_ID, CONTEXT_BREAKPOINT_WIDGET_VISIBLE, IStackFrame, IDebugConfiguration, IExpression, IExceptionInfo, BreakpointWidgetContext } from 'vs/workbench/parts/debug/common/debug';
import { BreakpointWidget } from 'vs/workbench/parts/debug/browser/breakpointWidget'; import { BreakpointWidget } from 'vs/workbench/parts/debug/browser/breakpointWidget';
import { ExceptionWidget } from 'vs/workbench/parts/debug/browser/exceptionWidget'; import { ExceptionWidget } from 'vs/workbench/parts/debug/browser/exceptionWidget';
...@@ -93,12 +93,21 @@ export class DebugEditorContribution implements IDebugEditorContribution { ...@@ -93,12 +93,21 @@ export class DebugEditorContribution implements IDebugEditorContribution {
const actions: (IAction | ContextSubMenu)[] = []; const actions: (IAction | ContextSubMenu)[] = [];
if (breakpoints.length === 1) { if (breakpoints.length === 1) {
actions.push(new RemoveBreakpointAction(RemoveBreakpointAction.ID, RemoveBreakpointAction.LABEL, this.debugService, this.keybindingService)); actions.push(new RemoveBreakpointAction(RemoveBreakpointAction.ID, RemoveBreakpointAction.LABEL, this.debugService, this.keybindingService));
actions.push(new EditBreakpointAction(EditBreakpointAction.ID, EditBreakpointAction.LABEL, this.editor, this.debugService, this.keybindingService)); actions.push(new Action(
if (breakpoints[0].enabled) { 'workbench.debug.action.editBreakpointAction',
actions.push(new DisableBreakpointAction(DisableBreakpointAction.ID, DisableBreakpointAction.LABEL, this.debugService, this.keybindingService)); nls.localize('editBreakpoint', "Edit Breakpoint..."),
} else { undefined,
actions.push(new EnableBreakpointAction(EnableBreakpointAction.ID, EnableBreakpointAction.LABEL, this.debugService, this.keybindingService)); true,
} () => TPromise.as(this.editor.getContribution<IDebugEditorContribution>(EDITOR_CONTRIBUTION_ID).showBreakpointWidget(breakpoints[0].lineNumber, breakpoints[0].column))
));
actions.push(new Action(
`workbench.debug.viewlet.action.toggleBreakpoint`,
breakpoints[0].enabled ? nls.localize('disableBreakpoint', "Disable Breakpoint") : nls.localize('enableBreakpoint', "Enable Breakpoint"),
undefined,
true,
() => this.debugService.enableOrDisableBreakpoints(!breakpoints[0].enabled, breakpoints[0])
));
} else if (breakpoints.length > 1) { } else if (breakpoints.length > 1) {
const sorted = breakpoints.sort((first, second) => first.column - second.column); const sorted = breakpoints.sort((first, second) => first.column - second.column);
actions.push(new ContextSubMenu(nls.localize('removeBreakpoints', "Remove Breakpoints"), sorted.map(bp => new Action( actions.push(new ContextSubMenu(nls.localize('removeBreakpoints', "Remove Breakpoints"), sorted.map(bp => new Action(
...@@ -134,7 +143,13 @@ export class DebugEditorContribution implements IDebugEditorContribution { ...@@ -134,7 +143,13 @@ export class DebugEditorContribution implements IDebugEditorContribution {
true, true,
() => this.debugService.addBreakpoints(uri, [{ lineNumber }]) () => this.debugService.addBreakpoints(uri, [{ lineNumber }])
)); ));
actions.push(new AddConditionalBreakpointAction(AddConditionalBreakpointAction.ID, AddConditionalBreakpointAction.LABEL, this.editor, lineNumber, this.debugService, this.keybindingService)); actions.push(new Action(
'addConditionalBreakpoint',
nls.localize('conditionalBreakpoint', "Add Conditional Breakpoint..."),
null,
true,
() => TPromise.as(this.editor.getContribution<IDebugEditorContribution>(EDITOR_CONTRIBUTION_ID).showBreakpointWidget(lineNumber, undefined))
));
actions.push(new Action( actions.push(new Action(
'addLogPoint', 'addLogPoint',
nls.localize('addLogPoint', "Add Log Point..."), nls.localize('addLogPoint', "Add Log Point..."),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册