Commit 4405f5d8 authored by Iuri Matias's avatar Iuri Matias

add offsetToLineColumnConverter to remix-lib

parent eb15b2d1
...@@ -5,6 +5,7 @@ var uiHelper = require('./src/helpers/uiHelper') ...@@ -5,6 +5,7 @@ var uiHelper = require('./src/helpers/uiHelper')
var compilerHelper = require('./src/helpers/compilerHelper') var compilerHelper = require('./src/helpers/compilerHelper')
var SourceMappingDecoder = require('./src/sourceMappingDecoder') var SourceMappingDecoder = require('./src/sourceMappingDecoder')
var SourceLocationTracker = require('./src/sourceLocationTracker') var SourceLocationTracker = require('./src/sourceLocationTracker')
var OffsetToColumnConverter = require('./src/offsetToLineColumnConverter')
var init = require('./src/init') var init = require('./src/init')
var util = require('./src/util') var util = require('./src/util')
var Web3Providers = require('./src/web3Provider/web3Providers') var Web3Providers = require('./src/web3Provider/web3Providers')
...@@ -56,6 +57,7 @@ function modules () { ...@@ -56,6 +57,7 @@ function modules () {
}, },
SourceMappingDecoder: SourceMappingDecoder, SourceMappingDecoder: SourceMappingDecoder,
SourceLocationTracker: SourceLocationTracker, SourceLocationTracker: SourceLocationTracker,
OffsetToColumnConverter: OffsetToColumnConverter,
Storage: Storage, Storage: Storage,
init: init, init: init,
util: util, util: util,
......
'use strict'
var SourceMappingDecoder = require('./sourceMappingDecoder')
function offsetToColumnConverter (compilerEvent) {
this.lineBreakPositionsByContent = {}
this.sourceMappingDecoder = new SourceMappingDecoder()
var self = this
if (compilerEvent) {
compilerEvent.register('compilationFinished', function (success, data, source) {
self.clear()
})
}
}
offsetToColumnConverter.prototype.offsetToLineColumn = function (rawLocation, file, sources, asts) {
if (!this.lineBreakPositionsByContent[file]) {
for (var filename in asts) {
var source = asts[filename]
if (source.id === file) {
this.lineBreakPositionsByContent[file] = this.sourceMappingDecoder.getLinebreakPositions(sources[filename].content)
break
}
}
}
return this.sourceMappingDecoder.convertOffsetToLineColumn(rawLocation, this.lineBreakPositionsByContent[file])
}
offsetToColumnConverter.prototype.clear = function () {
this.lineBreakPositionsByContent = {}
}
module.exports = offsetToColumnConverter
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment