|
|
@ -5,16 +5,12 @@ var EventManager = remixLib.EventManager |
|
|
|
var executionContext = require('../../execution-context') |
|
|
|
var executionContext = require('../../execution-context') |
|
|
|
var globalRegistry = require('../../global/registry') |
|
|
|
var globalRegistry = require('../../global/registry') |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Manage remix and source highlighting |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
function Debugger () { |
|
|
|
function Debugger () { |
|
|
|
var self = this |
|
|
|
var self = this |
|
|
|
this.event = new EventManager() |
|
|
|
this.event = new EventManager() |
|
|
|
|
|
|
|
|
|
|
|
this.registry = globalRegistry |
|
|
|
this.registry = globalRegistry |
|
|
|
this.offsetToLineColumnConverter = this.registry.get('offsettolinecolumnconverter').api |
|
|
|
this.offsetToLineColumnConverter = this.registry.get('offsettolinecolumnconverter').api |
|
|
|
this.editor = this.registry.get('editor').api |
|
|
|
|
|
|
|
this.compiler = this.registry.get('compiler').api |
|
|
|
this.compiler = this.registry.get('compiler').api |
|
|
|
|
|
|
|
|
|
|
|
this.debugger = new Ethdebugger( |
|
|
|
this.debugger = new Ethdebugger( |
|
|
@ -37,26 +33,10 @@ function Debugger () { |
|
|
|
|
|
|
|
|
|
|
|
this.debugger.setBreakpointManager(this.breakPointManager) |
|
|
|
this.debugger.setBreakpointManager(this.breakPointManager) |
|
|
|
|
|
|
|
|
|
|
|
self.editor.event.register('breakpointCleared', (fileName, row) => { |
|
|
|
|
|
|
|
this.breakPointManager.remove({fileName: fileName, row: row}) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.editor.event.register('breakpointAdded', (fileName, row) => { |
|
|
|
|
|
|
|
this.breakPointManager.add({fileName: fileName, row: row}) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
executionContext.event.register('contextChanged', this, function (context) { |
|
|
|
executionContext.event.register('contextChanged', this, function (context) { |
|
|
|
self.switchProvider(context) |
|
|
|
self.switchProvider(context) |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
// unload if a file has changed (but not if tabs were switched)
|
|
|
|
|
|
|
|
self.editor.event.register('contentChanged', function () { |
|
|
|
|
|
|
|
self.debugger.unLoad() |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// ====================
|
|
|
|
|
|
|
|
// listen to events
|
|
|
|
|
|
|
|
this.debugger.event.register('newTraceLoaded', this, function () { |
|
|
|
this.debugger.event.register('newTraceLoaded', this, function () { |
|
|
|
self.event.trigger('debuggerStatus', [true]) |
|
|
|
self.event.trigger('debuggerStatus', [true]) |
|
|
|
}) |
|
|
|
}) |
|
|
@ -65,8 +45,6 @@ function Debugger () { |
|
|
|
self.event.trigger('debuggerStatus', [false]) |
|
|
|
self.event.trigger('debuggerStatus', [false]) |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
// ====================
|
|
|
|
|
|
|
|
// add providers
|
|
|
|
|
|
|
|
this.debugger.addProvider('vm', executionContext.vm()) |
|
|
|
this.debugger.addProvider('vm', executionContext.vm()) |
|
|
|
this.debugger.addProvider('injected', executionContext.internalWeb3()) |
|
|
|
this.debugger.addProvider('injected', executionContext.internalWeb3()) |
|
|
|
this.debugger.addProvider('web3', executionContext.internalWeb3()) |
|
|
|
this.debugger.addProvider('web3', executionContext.internalWeb3()) |
|
|
|