mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-09-15 14:52:35 +02:00
31 lines
1.1 KiB
C#
31 lines
1.1 KiB
C#
using System;
|
|
using System.Text;
|
|
using Linguini.Bundle.Errors;
|
|
using Linguini.Syntax.Parser.Error;
|
|
|
|
namespace Robust.Shared.Localization
|
|
{
|
|
internal static class LocHelper
|
|
{
|
|
public static string FormatCompileErrors(this ParseError self, ReadOnlyMemory<char> resource)
|
|
{
|
|
ErrorSpan span = new(self.Row, self.Slice!.Value.Start.Value, self.Slice.Value.End.Value,
|
|
self.Position.Start.Value, self.Position.End.Value);
|
|
return FormatErrors(self.Message, span, resource);
|
|
}
|
|
|
|
private static string FormatErrors(string message, ErrorSpan span, ReadOnlyMemory<char> resource)
|
|
{
|
|
var sb = new StringBuilder();
|
|
var row = $" {span.Row} ";
|
|
var errContext = resource.Slice(span.StartSpan, span.EndSpan - span.StartSpan).ToString();
|
|
sb.Append(row).Append('|')
|
|
.AppendLine(errContext);
|
|
sb.Append(' ', row.Length).Append('|')
|
|
.Append(' ', span.StartMark - span.StartSpan - 1).Append('^', span.EndMark - span.StartMark)
|
|
.AppendLine($" {message}");
|
|
return sb.ToString();
|
|
}
|
|
}
|
|
}
|