From f61f50efff69e4057a890beefe1529e17b3e9151 Mon Sep 17 00:00:00 2001 From: Dominique Orban Date: Mon, 6 Nov 2017 17:20:54 -0500 Subject: [PATCH 1/2] move toggleBreakpoint to view --- lib/breakpoint-store.coffee | 2 ++ lib/python-debugger-view.coffee | 10 ++++++++++ lib/python-debugger.coffee | 9 +-------- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/breakpoint-store.coffee b/lib/breakpoint-store.coffee index ab3d8b6..a6ac14f 100644 --- a/lib/breakpoint-store.coffee +++ b/lib/breakpoint-store.coffee @@ -21,12 +21,14 @@ class BreakpointStore d = editor.decorateMarker(marker, type: "line-number", class: "line-number-red") d.setProperties(type: "line-number", class: "line-number-red") breakpoint.decoration = d + return "b" else editor = atom.workspace.getActiveTextEditor() ds = editor.getLineNumberDecorations(type: "line-number", class: "line-number-red") for d in ds marker = d.getMarker() marker.destroy() if marker.getBufferRange().start.row == breakpoint.lineNumber-1 + return "cl" containsBreakpoint: (bp) -> for breakpoint in @breakpoints diff --git a/lib/python-debugger-view.coffee b/lib/python-debugger-view.coffee index 444701b..22d7500 100644 --- a/lib/python-debugger-view.coffee +++ b/lib/python-debugger-view.coffee @@ -49,6 +49,16 @@ class PythonDebuggerView extends View @div class: "panel-body", outlet: "outputContainer", => @pre class: "command-output", outlet: "output" + toggleBreakpoint: -> + editor = atom.workspace.getActiveTextEditor() + filename = editor.getTitle() + lineNumber = editor.getCursorBufferPosition().row + 1 + # add to or remove breakpoint from internal list + cmd = @breakpointStore.toggle(new Breakpoint(filename, lineNumber)) + # instruct debugger to add or clear breakpoint (cmd is "b" or "cl") + debuggerCmd = cmd + " " + @getCurrentFilePath() + ":" + lineNumber + "\n" + @backendDebugger.stdin.write(debuggerCmd) if @backendDebugger + @output.append(debuggerCmd) stepOverBtnPressed: -> @backendDebugger?.stdin.write("n\n") diff --git a/lib/python-debugger.coffee b/lib/python-debugger.coffee index 3a8d8f6..4de9d6a 100644 --- a/lib/python-debugger.coffee +++ b/lib/python-debugger.coffee @@ -27,14 +27,7 @@ module.exports = PythonDebugger = @subscriptions.add atom.commands.add "atom-workspace", "python-debugger:toggle": => @createDebuggerView().toggle() - "python-debugger:breakpoint": => @toggleBreakpoint() - - toggleBreakpoint: -> - editor = atom.workspace.getActiveTextEditor() - filename = editor.getTitle() - lineNumber = editor.getCursorBufferPosition().row + 1 - breakpoint = new Breakpoint(filename, lineNumber) - @breakpointStore.toggle(breakpoint) + "python-debugger:breakpoint": => @pythonDebuggerView?.toggleBreakpoint() deactivate: -> @backendDebuggerInputView.destroy() From edecb83968d3bb85c2448eff276d5998341f5e9a Mon Sep 17 00:00:00 2001 From: Dominique Orban Date: Mon, 6 Nov 2017 17:21:43 -0500 Subject: [PATCH 2/2] add breakpoint toggle button --- lib/python-debugger-view.coffee | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/python-debugger-view.coffee b/lib/python-debugger-view.coffee index 22d7500..15bef65 100644 --- a/lib/python-debugger-view.coffee +++ b/lib/python-debugger-view.coffee @@ -32,6 +32,10 @@ class PythonDebuggerView extends View @subview "commandEntryView", new TextEditorView mini: true, placeholderText: "> Enter debugger commands here" + @button outlet: "breakpointBtn", click: "toggleBreakpoint", class: "btn", => + @span "breakpoint" + @button class: "btn", => + @span " " @button outlet: "runBtn", click: "runApp", class: "btn", => @span "run" @button outlet: "stopBtn", click: "stopApp", class: "btn", =>