diff --git a/index.html b/index.html index af7f40ba15..11ef8dfe61 100644 --- a/index.html +++ b/index.html @@ -655,7 +655,7 @@ var detailsOpen = {}; function errortype(message) { - return message.match(/^[0-9:]* Warning: /) ? 'warning' : 'error'; + return message.match(/^.*:[0-9]*:[0-9]* Warning: /) ? 'warning' : 'error'; } var renderError = function(message) { @@ -663,18 +663,27 @@ var $pre = $("
").text(message);
 				var $error = $('
').prepend($pre); $('#output').append( $error ); - var err = message.match(/^:([0-9]*):([0-9]*)/); - if (err && err.length) { - var errLine = parseInt(err[1], 10) - 1; - var errCol = err[2] ? parseInt(err[2], 10) : 0; - sourceAnnotations[sourceAnnotations.length] = { - row: errLine, - column: errCol, - text: message, - type: type - }; - editor.getSession().setAnnotations(sourceAnnotations); + var err = message.match(/^([^:]*):([0-9]*):(([0-9]*):)? /); + if (err) { + var errFile = err[1]; + var errLine = parseInt(err[2], 10) - 1; + var errCol = err[4] ? parseInt(err[4], 10) : 0; + if (errFile == '' || errFile == fileNameFromKey(SOL_CACHE_FILE)) { + sourceAnnotations[sourceAnnotations.length] = { + row: errLine, + column: errCol, + text: message, + type: type + }; + editor.getSession().setAnnotations(sourceAnnotations); + } $error.click(function(ev){ + if (errFile != '' && errFile != fileNameFromKey(SOL_CACHE_FILE) && getFiles().indexOf(fileKey(errFile)) !== -1) { + // Switch to file + SOL_CACHE_FILE = fileKey(errFile); + updateFiles(); + //@TODO could show some error icon in files with errors + } editor.focus(); editor.gotoLine(errLine + 1, errCol - 1, true); });