Merge pull request #14 from chriseth/multipleErrors

Report multiple errors.
pull/1/head
chriseth 9 years ago
commit 1581a4c74e
  1. 17
      index.html

@ -263,8 +263,8 @@ input[readonly] {
<div class="info"> <div class="info">
<p>Version: <span id="version">(loading)</span><br/> <p>Version: <span id="version">(loading)</span><br/>
Change to: <select id="versionSelector"></select><br/> Change to: <select id="versionSelector"></select><br/>
Execution environment does not connect to any node, everyhing is local and in memory only.<br/> Execution environment does not connect to any node, everyhing is local and in memory only.<br/>
<code>tx.origin = <span id="txorigin"/></code></p> <code>tx.origin = <span id="txorigin"/></code></p>
</div> </div>
<div id="optimizeBox"> <div id="optimizeBox">
<input id="editorWrap" type="checkbox"><label for="editorWrap">Text Wrap</label> <input id="editorWrap" type="checkbox"><label for="editorWrap">Text Wrap</label>
@ -384,9 +384,12 @@ input[readonly] {
var compileJSON; var compileJSON;
var previousInput = ''; var previousInput = '';
var sourceAnnotations = [];
var compile = function() { var compile = function() {
editor.getSession().clearAnnotations(); editor.getSession().clearAnnotations();
sourceAnnotations = [];
editor.getSession().removeMarker(errMarkerId); editor.getSession().removeMarker(errMarkerId);
$('#output').empty();
var input = editor.getValue(); var input = editor.getValue();
var optimize = document.querySelector('#optimize').checked; var optimize = document.querySelector('#optimize').checked;
try { try {
@ -397,6 +400,10 @@ input[readonly] {
} }
if (data['error'] !== undefined) if (data['error'] !== undefined)
renderError(data['error']); renderError(data['error']);
if (data['errors'] != undefined)
$.each(data['errors'], function(i, err) {
renderError(err);
});
else else
renderContracts(data, input); renderContracts(data, input);
@ -433,18 +440,18 @@ input[readonly] {
var renderError = function(message) { var renderError = function(message) {
$('#output') $('#output')
.empty()
.append($('<pre class="error"></pre>').text(message)); .append($('<pre class="error"></pre>').text(message));
var err = message.match(/^:([0-9]*):([0-9]*)/) var err = message.match(/^:([0-9]*):([0-9]*)/)
if (err && err.length) { if (err && err.length) {
var errLine = parseInt( err[1], 10 ) - 1; var errLine = parseInt( err[1], 10 ) - 1;
var errCol = err[2] ? parseInt( err[2], 10 ) : 0; var errCol = err[2] ? parseInt( err[2], 10 ) : 0;
editor.getSession().setAnnotations([{ sourceAnnotations[sourceAnnotations.length] ={
row: errLine, row: errLine,
column: errCol, column: errCol,
text: message, text: message,
type: "error" type: "error"
}]); };
editor.getSession().setAnnotations(sourceAnnotations);
} }
}; };

Loading…
Cancel
Save