43 lines
1.1 KiB
C#
43 lines
1.1 KiB
C#
using System.Text.RegularExpressions;
|
|
|
|
namespace io.github.hatayama.uLoopMCP
|
|
{
|
|
public static class CompilationDiagnosticMessageParser
|
|
{
|
|
private static readonly Regex TypeNamePattern = new Regex(@"['""]([^'""]+)['""]", RegexOptions.Compiled);
|
|
|
|
public static string ExtractTypeNameFromMessage(string message)
|
|
{
|
|
if (message == null)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
Match match = TypeNamePattern.Match(message);
|
|
if (!match.Success)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
return NormalizeTypeName(match.Groups[1].Value);
|
|
}
|
|
|
|
private static string NormalizeTypeName(string rawName)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(rawName))
|
|
{
|
|
return null;
|
|
}
|
|
|
|
string normalized = rawName.Trim();
|
|
int genericIndex = normalized.IndexOf('<');
|
|
if (genericIndex > 0)
|
|
{
|
|
normalized = normalized.Substring(0, genericIndex);
|
|
}
|
|
|
|
return normalized;
|
|
}
|
|
}
|
|
}
|