From 370e10eba6f757d35620851bca8d1a064443a7b1 Mon Sep 17 00:00:00 2001 From: isidor Date: Wed, 7 Feb 2018 11:31:40 +0100 Subject: [PATCH] debug debt: cleanup column breakpoint actions -> commands --- .../parts/debug/browser/debugEditorActions.ts | 93 ++++++++----------- 1 file changed, 40 insertions(+), 53 deletions(-) diff --git a/src/vs/workbench/parts/debug/browser/debugEditorActions.ts b/src/vs/workbench/parts/debug/browser/debugEditorActions.ts index 96b73045e07..1f855b52573 100644 --- a/src/vs/workbench/parts/debug/browser/debugEditorActions.ts +++ b/src/vs/workbench/parts/debug/browser/debugEditorActions.ts @@ -15,6 +15,9 @@ import { IPanelService } from 'vs/workbench/services/panel/common/panelService'; import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet'; import { KeybindingsRegistry } from 'vs/platform/keybinding/common/keybindingsRegistry'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; +import { CommandsRegistry } from 'vs/platform/commands/common/commands'; +import { MenuRegistry, MenuId } from 'vs/platform/actions/common/actions'; +import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; class ToggleBreakpointAction extends EditorAction { constructor() { @@ -49,62 +52,48 @@ class ToggleBreakpointAction extends EditorAction { } } -function addColumnBreakpoint(accessor: ServicesAccessor, editor: ICodeEditor, remove: boolean): TPromise { - const debugService = accessor.get(IDebugService); - - const position = editor.getPosition(); - const modelUri = editor.getModel().uri; - const bp = debugService.getModel().getBreakpoints() - .filter(bp => bp.lineNumber === position.lineNumber && bp.column === position.column && bp.uri.toString() === modelUri.toString()).pop(); - - if (bp) { - return remove ? debugService.removeBreakpoints(bp.getId()) : TPromise.as(null); - } - if (debugService.getConfigurationManager().canSetBreakpointsIn(editor.getModel())) { - return debugService.addBreakpoints(modelUri, [{ lineNumber: position.lineNumber, column: position.column }]); - } - - return TPromise.as(null); -} - -class ToggleColumnBreakpointAction extends EditorAction { - constructor() { - super({ - id: 'editor.debug.action.toggleColumnBreakpoint', - label: nls.localize('columnBreakpointAction', "Debug: Column Breakpoint"), - alias: 'Debug: Column Breakpoint', - precondition: null, - kbOpts: { - kbExpr: EditorContextKeys.textFocus, - primary: KeyMod.Shift | KeyCode.F9 +const COLUMN_BREAKPOINT_COMMAND_ID = 'editor.debug.action.toggleColumnBreakpoint'; +CommandsRegistry.registerCommand({ + id: COLUMN_BREAKPOINT_COMMAND_ID, + handler: (accessor) => { + const debugService = accessor.get(IDebugService); + const editorService = accessor.get(IWorkbenchEditorService); + const editor = editorService.getActiveEditor(); + const control = editor && editor.getControl(); + if (control) { + const position = control.getPosition(); + const modelUri = control.getModel().uri; + const bp = debugService.getModel().getBreakpoints() + .filter(bp => bp.lineNumber === position.lineNumber && bp.column === position.column && bp.uri.toString() === modelUri.toString()).pop(); + + if (bp) { + return TPromise.as(null); } - }); - } - - public run(accessor: ServicesAccessor, editor: ICodeEditor): TPromise { - return addColumnBreakpoint(accessor, editor, true); - } -} - -// TODO@Isidor merge two column breakpoints actions together -class ToggleColumnBreakpointContextMenuAction extends EditorAction { - constructor() { - super({ - id: 'editor.debug.action.toggleColumnBreakpointContextMenu', - label: nls.localize('columnBreakpoint', "Add Column Breakpoint"), - alias: 'Toggle Column Breakpoint', - precondition: ContextKeyExpr.and(CONTEXT_IN_DEBUG_MODE, CONTEXT_NOT_IN_DEBUG_REPL, EditorContextKeys.writable), - menuOpts: { - group: 'debug', - order: 1 + if (debugService.getConfigurationManager().canSetBreakpointsIn(control.getModel())) { + return debugService.addBreakpoints(modelUri, [{ lineNumber: position.lineNumber, column: position.column }]); } - }); + } + + return TPromise.as(null); } +}); - public run(accessor: ServicesAccessor, editor: ICodeEditor): TPromise { - return addColumnBreakpoint(accessor, editor, false); +MenuRegistry.appendMenuItem(MenuId.CommandPalette, { + command: { + id: COLUMN_BREAKPOINT_COMMAND_ID, + title: nls.localize('columnBreakpoint', "Column Breakpoint"), + category: nls.localize('debug', "Debug") } -} +}); +MenuRegistry.appendMenuItem(MenuId.EditorContext, { + command: { + id: COLUMN_BREAKPOINT_COMMAND_ID, + title: nls.localize('addColumnBreakpoint', "Add Column Breakpoint") + }, + when: ContextKeyExpr.and(CONTEXT_IN_DEBUG_MODE, CONTEXT_NOT_IN_DEBUG_REPL, EditorContextKeys.writable), + group: 'debug', + order: 1 +}); class ConditionalBreakpointAction extends EditorAction { @@ -268,8 +257,6 @@ class CloseBreakpointWidgetCommand extends EditorCommand { } registerEditorAction(ToggleBreakpointAction); -registerEditorAction(ToggleColumnBreakpointAction); -registerEditorAction(ToggleColumnBreakpointContextMenuAction); registerEditorAction(ConditionalBreakpointAction); registerEditorAction(RunToCursorAction); registerEditorAction(SelectionToReplAction); -- GitLab