Skip to content
This repository was archived by the owner on Sep 30, 2020. It is now read-only.

Commit 74be17a

Browse files
authored
Merge pull request #510 from SergioBenitez/master
Fix editor's parsing of new error format.
2 parents 359be64 + ab60f6e commit 74be17a

File tree

2 files changed

+30
-20
lines changed

2 files changed

+30
-20
lines changed

_includes/editor.js

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -183,28 +183,38 @@
183183
// Getting list of ranges with problems
184184
var lines = message.split(newLineRegex);
185185

186-
// Cleaning up the message: keeps only relevant problem output
187-
var cleanMessage = lines.map(function(line) {
188-
if (line.startsWith("<anon>") || line.indexOf("^") !== -1) {
189-
var errIndex = line.indexOf(problem + ": ");
190-
if (errIndex !== -1) {return line.slice(errIndex);}
191-
return "";
192-
}
193-
194-
// Discard playpen messages, keep the rest
195-
if (line.startsWith("playpen:")) {return "";}
196-
return line;
197-
}).filter(function(line) {
198-
return line !== "";
186+
// Cleaning up the message: keeps only relevant problem output.
187+
var cleanMessage = lines.filter(function(line) {
188+
return !line.trim().startsWith("--> <anon>")
189+
&& !line.startsWith("playpen:")
190+
&& !line.trim().startsWith("error: aborting");
199191
}).map(function(line) {
200192
return escapeHTML(line);
193+
}).filter(function(line) {
194+
return line != "";
195+
}).map(function(line) {
196+
return line.replace(/ /g, '\u00a0\u00a0');
201197
}).join("<br />");
202198

199+
// Get all of the row:col in the message.
200+
var errorLines = lines.filter(function(line) {
201+
return line.indexOf("--> <anon>") !== -1;
202+
}).map(function(line) {
203+
var lineIndex = line.indexOf(":");
204+
if (lineIndex !== -1) {
205+
return line.slice(lineIndex);
206+
}
207+
208+
return "";
209+
}).filter(function(line) {
210+
return line != "";
211+
});
212+
203213
// Setting message
204214
displayOutput(cleanMessage, editor.getValue());
205215

206216
// Highlighting the lines
207-
var ranges = parseProblems(lines);
217+
var ranges = parseProblems(errorLines);
208218
markers = ranges.map(function(range) {
209219
return editor.getSession().addMarker(range, "ace-" + problem + "-line",
210220
"fullLine", false);
@@ -223,12 +233,10 @@
223233
var ranges = [];
224234
for (var i in lines) {
225235
var line = lines[i];
226-
if (line.startsWith("<anon>:") && line.indexOf(": ") !== -1) {
227-
var parts = line.split(/:\s?|\s+/, 5).slice(1, 5);
228-
var ip = parts.map(function(p) { return parseInt(p, 10) - 1; });
229-
// console.log("line:", line, parts, ip);
230-
ranges.push(new Range(ip[0], ip[1], ip[2], ip[3]));
231-
}
236+
var parts = line.split(/:\s?|\s+/, 5).slice(1, 5);
237+
var ip = parts.map(function(p) { return parseInt(p, 10) - 1; });
238+
console.log("line:", line, parts, ip);
239+
ranges.push(new Range(ip[0], ip[1], ip[2], ip[3]));
232240
}
233241

234242
return ranges;

css/style.css

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,8 @@ ul.laundry-list {
314314
padding: 10px;
315315
display: none;
316316
border-radius: 4px;
317+
font-family: monospace;
318+
font-size: 12px;
317319
}
318320

319321
.ace-error-text, .ace-error-line, .ace-warning-text, .ace-warning-line {

0 commit comments

Comments
 (0)