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..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", => @@ -49,6 +53,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()