From f67c4886be86a015d667f739d233804f46d1c224 Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 8 Feb 2017 13:18:00 +0100 Subject: [PATCH] use API --- src/app/debugger.js | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/app/debugger.js b/src/app/debugger.js index 7003505522..4f7f39e8aa 100644 --- a/src/app/debugger.js +++ b/src/app/debugger.js @@ -7,16 +7,14 @@ var Range = ace.acequire('ace/range').Range /** * Manage remix and source highlighting */ -function Debugger (id, editor, compiler, executionContextEvent, switchToFile, offsetToLineColumnConverter) { +function Debugger (id, executionContextEvent, editorEvent, editorAPI, compilerAPI, contentToolAPI) { this.el = document.querySelector(id) - this.offsetToLineColumnConverter = offsetToLineColumnConverter + this.contentToolAPI = contentToolAPI this.debugger = new remix.ui.Debugger() this.sourceMappingDecoder = new remix.util.SourceMappingDecoder() this.el.appendChild(this.debugger.render()) - this.editor = editor - this.switchToFile = switchToFile - this.compiler = compiler - this.markers = {} + this.compilerAPI = compilerAPI + this.editorAPI = editorAPI var self = this executionContextEvent.register('contextChanged', this, function (context) { @@ -28,16 +26,16 @@ function Debugger (id, editor, compiler, executionContextEvent, switchToFile, of }) // unload if a file has changed (but not if tabs were switched) - editor.event.register('contentChanged', function () { + editorEvent.register('contentChanged', function () { self.debugger.unLoad() }) // register selected code item, highlight the corresponding source location this.debugger.codeManager.event.register('changed', this, function (code, address, index) { - if (self.compiler.lastCompilationResult) { - this.debugger.callTree.sourceLocationTracker.getSourceLocationFromInstructionIndex(address, index, self.compiler.lastCompilationResult.data.contracts, function (error, rawLocation) { + if (self.compilerAPI.lastCompilationResult()) { + this.debugger.callTree.sourceLocationTracker.getSourceLocationFromInstructionIndex(address, index, self.compilerAPI.lastCompilationResult().data.contracts, function (error, rawLocation) { if (!error) { - var lineColumnPos = self.offsetToLineColumnConverter.offsetToLineColumn(rawLocation, rawLocation.file, self.editor, self.compiler.lastCompilationResult.data) + var lineColumnPos = self.contentToolAPI.offsetToLineColumn(rawLocation, rawLocation.file) self.highlight(lineColumnPos, rawLocation) } else { self.unhighlight() @@ -56,7 +54,7 @@ Debugger.prototype.debug = function (txHash) { var self = this this.debugger.web3().eth.getTransaction(txHash, function (error, tx) { if (!error) { - self.debugger.setCompilationResult(self.compiler.lastCompilationResult.data) + self.debugger.setCompilationResult(self.compilerAPI.lastCompilationResult().data) self.debugger.debug(tx) } }) @@ -69,11 +67,11 @@ Debugger.prototype.debug = function (txHash) { * @param {Object} rawLocation - raw position of the source code to hightlight {start, length, file, jump} */ Debugger.prototype.highlight = function (lineColumnPos, rawLocation) { - this.unhighlight() - var name = this.editor.getCacheFile() // current opened tab - var source = this.compiler.lastCompilationResult.data.sourceList[rawLocation.file] // auto switch to that tab + var name = this.editorAPI.currentOpenedFile() // current opened tab + var source = this.compilerAPI.lastCompilationResult().data.sourceList[rawLocation.file] // auto switch to that tab + this.removeCurrentMarker() if (name !== source) { - this.switchToFile(source) // command the app to swicth to the next file + this.editorAPI.switchToFile(source) // command the app to swicth to the next file } var range = new Range(lineColumnPos.start.line, lineColumnPos.start.column, lineColumnPos.end.line, lineColumnPos.end.column) this.markers['highlightcode'] = this.editor.addMarker(range, 'highlightcode') @@ -92,6 +90,8 @@ Debugger.prototype.highlight = function (lineColumnPos, rawLocation) { Debugger.prototype.unhighlight = function (lineColumnPos, rawLocation, cssCode) { this.removeMarker('highlightcode') this.removeMarker('highlightcode_fullLine') + this.currentRange = new Range(lineColumnPos.start.line, lineColumnPos.start.column, lineColumnPos.end.line, lineColumnPos.end.column) + this.currentMarker = this.editorAPI.addMarker(this.currentRange, 'highlightcode') } /**