Gav Wood
10 years ago
8 changed files with 138 additions and 23 deletions
@ -0,0 +1,46 @@ |
|||||
|
function ErrorAnnotation(editor, line, column, content) |
||||
|
{ |
||||
|
this.opened = false; |
||||
|
this.line = line; |
||||
|
this.column = column; |
||||
|
this.content = content.replace("Contract Error:", ""); |
||||
|
this.editor = editor; |
||||
|
this.errorMark = null; |
||||
|
this.lineWidget = null; |
||||
|
this.init(); |
||||
|
this.open(); |
||||
|
} |
||||
|
|
||||
|
ErrorAnnotation.prototype.init = function() |
||||
|
{ |
||||
|
var separators = [';', ',', '\\\(', '\\\{', '\\\}', '\\\)', ':']; |
||||
|
var errorPart = editor.getLine(this.line).substring(this.column); |
||||
|
var incrMark = this.column + errorPart.split(new RegExp(separators.join('|'), 'g'))[0].length; |
||||
|
if (incrMark === this.column) |
||||
|
incrMark = this.column + 1; |
||||
|
this.errorMark = editor.markText({ line: this.line, ch: this.column }, { line: this.line, ch: incrMark }, { className: "CodeMirror-errorannotation", inclusiveRight: true }); |
||||
|
} |
||||
|
|
||||
|
ErrorAnnotation.prototype.open = function() |
||||
|
{ |
||||
|
var node = document.createElement("div"); |
||||
|
node.id = "annotation" |
||||
|
node.innerHTML = this.content; |
||||
|
node.className = "CodeMirror-errorannotation-context"; |
||||
|
this.lineWidget = this.editor.addLineWidget(this.errorMark.find().from.line, node, { coverGutter: false }); |
||||
|
this.opened = true; |
||||
|
} |
||||
|
|
||||
|
ErrorAnnotation.prototype.close = function() |
||||
|
{ |
||||
|
this.lineWidget.clear(); |
||||
|
this.opened = false; |
||||
|
} |
||||
|
|
||||
|
ErrorAnnotation.prototype.destroy = function() |
||||
|
{ |
||||
|
if (this.opened) |
||||
|
this.close(); |
||||
|
if (this.errorMark) |
||||
|
this.errorMark.clear(); |
||||
|
} |
Loading…
Reference in new issue