public record Coordinates(int Line, int Column)
{
public Coordinates(int absolutePos, IReadOnlyList<int> system) :
this(0, 0)
{
for (var i = 0; i < system.Count; i++)
if (absolutePos <= system[i])
{
var offset = i == 0 ? -1 : system[i - 1];
(Line, Column) = (i + 1, absolutePos - offset);
break;
}
if (Line == 0)
{
(Line, Column) = (system.Count + 1, 1);
}
}
public override string ToString() => $"({Line}, {Column})";
}
Describe the solution you'd like
Необходимо перенести логику вычисления координаты (Строка, Столбец) из пары (индекс, переносы строк) внутрь сервиса ITextCoordinateSystemComputer
Is your feature request related to a problem? Please describe. Конструктор класса Coordinate https://github.com/Stepami/hydrascript/blob/master/src/Domain/HydraScript.Domain.FrontEnd/Lexer/Token.cs#L42 Обладает слишком сложной реализацией с неположенной ответственностью:
Describe the solution you'd like Необходимо перенести логику вычисления координаты (Строка, Столбец) из пары (индекс, переносы строк) внутрь сервиса ITextCoordinateSystemComputer