|
183 | 183 | // Getting list of ranges with problems
|
184 | 184 | var lines = message.split(newLineRegex);
|
185 | 185 |
|
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"); |
199 | 191 | }).map(function(line) {
|
200 | 192 | return escapeHTML(line);
|
| 193 | + }).filter(function(line) { |
| 194 | + return line != ""; |
| 195 | + }).map(function(line) { |
| 196 | + return line.replace(/ /g, '\u00a0\u00a0'); |
201 | 197 | }).join("<br />");
|
202 | 198 |
|
| 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 | + |
203 | 213 | // Setting message
|
204 | 214 | displayOutput(cleanMessage, editor.getValue());
|
205 | 215 |
|
206 | 216 | // Highlighting the lines
|
207 |
| - var ranges = parseProblems(lines); |
| 217 | + var ranges = parseProblems(errorLines); |
208 | 218 | markers = ranges.map(function(range) {
|
209 | 219 | return editor.getSession().addMarker(range, "ace-" + problem + "-line",
|
210 | 220 | "fullLine", false);
|
|
223 | 233 | var ranges = [];
|
224 | 234 | for (var i in lines) {
|
225 | 235 | 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])); |
232 | 240 | }
|
233 | 241 |
|
234 | 242 | return ranges;
|
|
0 commit comments