Skip to content

Commit

Permalink
Changed error detection in mgcb-editor
Browse files Browse the repository at this point in the history
  • Loading branch information
Nebulaxin committed May 11, 2024
1 parent 941cd57 commit ff46e03
Showing 1 changed file with 11 additions and 25 deletions.
36 changes: 11 additions & 25 deletions Tools/MonoGame.Content.Builder.Editor/Common/OutputParser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,11 @@ public class OutputParser
Regex _reSkipping = new Regex(@"^(Skipping)\W(?<filename>.*?)\r?$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
Regex _reBuildAsset = new Regex(@"^(?<filename>([a-zA-Z]:)?/.+?)\r?$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
Regex _reBuildError = new Regex(@"^(?<filename>([a-zA-Z]:)?/.+?)\W*?:\W*?error\W*?:\W*(?<errorMessage>.*?)\r?$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
Regex _reFileErrorWithLineNum = new Regex(@"^(?<filename>.+?)(\((?<line>[0-9]+),(?<column>[0-9]+)(-(?<columnEnd>[0-9]+))?\))?:\W*?(error)\W*(?<errorCode>[A-Z][0-9]+):\W*(?<errorMessage>.*?)\r?$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
Regex _reFileWarningWithLineNum = new Regex(@"^(?<filename>.+?)(\((?<line>[0-9]+),(?<column>[0-9]+)(-(?<columnEnd>[0-9]+))?\))?:\W*?(warning)\W*(?<warningCode>[A-Z][0-9]+):\W*(?<warningMessage>.*?)\r?$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
Regex _reFileErrorOrWarningWithLineNum = new Regex(@"^(?<filename>.+?)(\((?<line>\d+),(?<column>\d+)(((-|(,\d+,)))(?<columnEnd>\d+))?\))?:\W*?(?<type>(error|warning))\W*(?<code>[A-Z]+[0-9]+):\s*(?<message>.*?)\r?$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
Regex _reFileError = new Regex(@"^(?<filename>([a-zA-Z]:)?/.+?)\W*?: (?<errorMessage>.*?)\r?$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
Regex _reBuildEnd = new Regex(@"^(Build)\W+(?<buildInfo>.*?)\r?$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
Regex _reBuildTime = new Regex(@"^(Time elapsed)\W+(?<buildElapsedTime>.*?)\.\r?$", RegexOptions.Compiled | RegexOptions.IgnoreCase);


public OutputParser()
{
Expand All @@ -62,7 +61,7 @@ internal void Reset()
}

internal void Parse(string text)
{
{
ParseLine(text);
}

Expand Down Expand Up @@ -91,7 +90,7 @@ private void ParseLine(string line)
var prevFilename = Filename;

State = OutputState.Unknown;
Filename = null;
Filename = null;
BuildBeginTime = null;
BuildInfo = null;
BuildElapsedTime = null;
Expand Down Expand Up @@ -138,33 +137,20 @@ private void ParseLine(string line)
Filename = m.Groups["filename"].Value;
ErrorMessage = m.Groups["errorMessage"].Value;
}
else if (_reFileErrorWithLineNum.IsMatch(line))
else if (_reFileErrorOrWarningWithLineNum.IsMatch(line))
{
State = OutputState.BuildError;
var m = _reFileErrorWithLineNum.Match(line);
var m = _reFileErrorOrWarningWithLineNum.Match(line);
var lineNum = m.Groups["line"];
var columnBegin = m.Groups["column"];
var columnEnd = m.Groups["columnEnd"];
var column = columnBegin.Value;
if(columnEnd.Success)
column += "-" + columnEnd.Value;
var errorCode = m.Groups["errorCode"];
Filename = m.Groups["filename"].Value.Replace("\\\\","/").Replace("\\", "/");
ErrorMessage = string.Format("{0} ({1},{2}): {3}", errorCode, lineNum, column, m.Groups["errorMessage"].Value);
}
else if (_reFileWarningWithLineNum.IsMatch(line))
{
State = OutputState.BuildWarning;
var m = _reFileWarningWithLineNum.Match(line);
var lineNum = m.Groups["line"];
var columnBegin = m.Groups["column"];
var columnEnd = m.Groups["columnEnd"];
var column = columnBegin.Value;
if(columnEnd.Success)
if (columnEnd.Success)
column += "-" + columnEnd.Value;
var errorCode = m.Groups["warningCode"];
var type = m.Groups["type"];
var errorCode = m.Groups["code"];
State = type.Value.Equals("error", StringComparison.OrdinalIgnoreCase) ? OutputState.BuildError : OutputState.BuildWarning;
Filename = m.Groups["filename"].Value.Replace("\\\\", "/").Replace("\\", "/");
ErrorMessage = string.Format("{0} ({1},{2}): {3}", errorCode, lineNum, column, m.Groups["warningMessage"].Value);
ErrorMessage = string.Format("{0} {1} ({2},{3}): {4}", type, errorCode, lineNum, column, m.Groups["message"].Value);
}
else if (_reFileError.IsMatch(line))
{
Expand Down

0 comments on commit ff46e03

Please sign in to comment.