diff --git a/src/vs/workbench/parts/debug/browser/breakpointsView.ts b/src/vs/workbench/parts/debug/browser/breakpointsView.ts index eeea9059d8b1f5838c98664c5bee63a11829c5cd..c91e034990e266e1c31974237a1f6e39211e1a9a 100644 --- a/src/vs/workbench/parts/debug/browser/breakpointsView.ts +++ b/src/vs/workbench/parts/debug/browser/breakpointsView.ts @@ -137,7 +137,6 @@ export class BreakpointsView extends ViewsViewletPanel { actions.push(new RemoveBreakpointAction(RemoveBreakpointAction.ID, RemoveBreakpointAction.LABEL, this.debugService, this.keybindingService)); - 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 Separator()); diff --git a/src/vs/workbench/parts/debug/browser/debugActions.ts b/src/vs/workbench/parts/debug/browser/debugActions.ts index 776d0c6d5e6ca8f47b07ea94e7d1cc155146c4bf..e411e685a35236fc7dd0ec9cf95f4d350037011c 100644 --- a/src/vs/workbench/parts/debug/browser/debugActions.ts +++ b/src/vs/workbench/parts/debug/browser/debugActions.ts @@ -7,12 +7,11 @@ import * as nls from 'vs/nls'; import { Action } from 'vs/base/common/actions'; import * as lifecycle from 'vs/base/common/lifecycle'; import { TPromise } from 'vs/base/common/winjs.base'; -import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { ICommandService } from 'vs/platform/commands/common/commands'; import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace'; 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'; import { Variable, Expression, Thread, Breakpoint, Process } from 'vs/workbench/parts/debug/common/debugModel'; import { IPartService } from 'vs/workbench/services/part/common/partService'; @@ -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 { - 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 { - return this.debugService.enableOrDisableBreakpoints(false, element); - } -} - export class EnableAllBreakpointsAction extends AbstractDebugAction { static readonly ID = 'workbench.debug.viewlet.action.enableAllBreakpoints'; static LABEL = nls.localize('enableAllBreakpoints', "Enable All Breakpoints"); @@ -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 { - this.editor.getContribution(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 { - this.editor.getContribution(EDITOR_CONTRIBUTION_ID).showBreakpointWidget(breakpoint.lineNumber, breakpoint.column); - return TPromise.as(null); - } -} - - export class SetValueAction extends AbstractDebugAction { static readonly ID = 'workbench.debug.viewlet.action.setValue'; static LABEL = nls.localize('setValue', "Set Value"); diff --git a/src/vs/workbench/parts/debug/browser/debugEditorActions.ts b/src/vs/workbench/parts/debug/browser/debugEditorActions.ts index 075da67c666bbf8d0ec630c60aa24808e0c39570..5d15f0f7f36cc209e4bb8210139c0efacef63be1 100644 --- a/src/vs/workbench/parts/debug/browser/debugEditorActions.ts +++ b/src/vs/workbench/parts/debug/browser/debugEditorActions.ts @@ -70,7 +70,6 @@ class ConditionalBreakpointAction extends EditorAction { } } - class RunToCursorAction extends EditorAction { constructor() { diff --git a/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts b/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts index 45d09d90058ace2c7209e64976811e5bd53c3ed7..7560cf34ee0b51ad8b139e8c6452f2966f13fd37 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts @@ -30,7 +30,7 @@ import { ICommandService } from 'vs/platform/commands/common/commands'; import { IContextKeyService, IContextKey } from 'vs/platform/contextkey/common/contextkey'; import { IContextMenuService } from 'vs/platform/contextview/browser/contextView'; 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 { BreakpointWidget } from 'vs/workbench/parts/debug/browser/breakpointWidget'; import { ExceptionWidget } from 'vs/workbench/parts/debug/browser/exceptionWidget'; @@ -93,12 +93,21 @@ export class DebugEditorContribution implements IDebugEditorContribution { const actions: (IAction | ContextSubMenu)[] = []; if (breakpoints.length === 1) { 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)); - if (breakpoints[0].enabled) { - actions.push(new DisableBreakpointAction(DisableBreakpointAction.ID, DisableBreakpointAction.LABEL, this.debugService, this.keybindingService)); - } else { - actions.push(new EnableBreakpointAction(EnableBreakpointAction.ID, EnableBreakpointAction.LABEL, this.debugService, this.keybindingService)); - } + actions.push(new Action( + 'workbench.debug.action.editBreakpointAction', + nls.localize('editBreakpoint', "Edit Breakpoint..."), + undefined, + true, + () => TPromise.as(this.editor.getContribution(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) { const sorted = breakpoints.sort((first, second) => first.column - second.column); actions.push(new ContextSubMenu(nls.localize('removeBreakpoints', "Remove Breakpoints"), sorted.map(bp => new Action( @@ -134,7 +143,13 @@ export class DebugEditorContribution implements IDebugEditorContribution { true, () => 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(EDITOR_CONTRIBUTION_ID).showBreakpointWidget(lineNumber, undefined)) + )); actions.push(new Action( 'addLogPoint', nls.localize('addLogPoint', "Add Log Point..."),