chore: housekeeping — linter & formatter setup
Add .prettierrc.json, .markdownlint.json, .yamllint.yaml, .gitattributes Run CSharpier, Prettier and markdownlint across the entire codebase. No logic changes — formatting, using order and line endings only.
This commit is contained in:
@@ -7,7 +7,6 @@ using Lumina.Excel;
|
||||
using Lumina.Text.Payloads;
|
||||
using Lumina.Text.ReadOnly;
|
||||
using Pidgin;
|
||||
|
||||
using static Pidgin.Parser;
|
||||
using static Pidgin.Parser<char>;
|
||||
|
||||
@@ -26,14 +25,18 @@ internal static class AutoTranslate
|
||||
|
||||
private static Parser<char, (string name, Maybe<IEnumerable<ISelectorPart>> selector)> Parser()
|
||||
{
|
||||
var sheetName = Any
|
||||
.AtLeastOnceUntil(Lookahead(Char('[').IgnoreResult().Or(End)))
|
||||
var sheetName = Any.AtLeastOnceUntil(Lookahead(Char('[').IgnoreResult().Or(End)))
|
||||
.Select(string.Concat)
|
||||
.Labelled("sheetName");
|
||||
var numPair = Map(ISelectorPart (first, second) =>
|
||||
new IndexRange(uint.Parse(string.Concat(first)), uint.Parse(string.Concat(second))),
|
||||
var numPair = Map(
|
||||
ISelectorPart (first, second) =>
|
||||
new IndexRange(
|
||||
uint.Parse(string.Concat(first)),
|
||||
uint.Parse(string.Concat(second))
|
||||
),
|
||||
Digit.AtLeastOnce().Before(Char('-')),
|
||||
Digit.AtLeastOnce())
|
||||
Digit.AtLeastOnce()
|
||||
)
|
||||
.Labelled("numPair");
|
||||
var singleRow = Digit
|
||||
.AtLeastOnce()
|
||||
@@ -43,14 +46,11 @@ internal static class AutoTranslate
|
||||
.Then(Digit.AtLeastOnce())
|
||||
.Select(string.Concat)
|
||||
.Select(ISelectorPart (num) => new ColumnSpecifier(uint.Parse(num)));
|
||||
var noun = String("noun")
|
||||
.Select(ISelectorPart (_) => new NounMarker());
|
||||
var noun = String("noun").Select(ISelectorPart (_) => new NounMarker());
|
||||
var selectorItems = OneOf(Try(numPair), singleRow, column, noun)
|
||||
.Separated(Char(','))
|
||||
.Labelled("selectorItems");
|
||||
var selector = selectorItems
|
||||
.Between(Char('['), Char(']'))
|
||||
.Labelled("selector");
|
||||
var selector = selectorItems.Between(Char('['), Char(']')).Labelled("selector");
|
||||
return Map((name, sel) => (name, sel), sheetName, selector.Optional());
|
||||
}
|
||||
|
||||
@@ -90,7 +90,16 @@ internal static class AutoTranslate
|
||||
var list = new List<AutoTranslateEntry>();
|
||||
foreach (var row in Sheets.CompletionSheet)
|
||||
{
|
||||
var lookup = string.Concat(row.LookupTable.Select(p => p.Type == ReadOnlySePayloadType.Text ? Encoding.UTF8.GetString(p.Body.Span) : p.MacroCode == MacroCode.Num && p.TryGetExpression(out var num) && num.TryGetInt(out var val) ? val.ToString(CultureInfo.InvariantCulture) : ",,,unexpected macro code,,,"));
|
||||
var lookup = string.Concat(
|
||||
row.LookupTable.Select(p =>
|
||||
p.Type == ReadOnlySePayloadType.Text ? Encoding.UTF8.GetString(p.Body.Span)
|
||||
: p.MacroCode == MacroCode.Num
|
||||
&& p.TryGetExpression(out var num)
|
||||
&& num.TryGetInt(out var val)
|
||||
? val.ToString(CultureInfo.InvariantCulture)
|
||||
: ",,,unexpected macro code,,,"
|
||||
)
|
||||
);
|
||||
try
|
||||
{
|
||||
if (lookup is not ("" or "@"))
|
||||
@@ -114,7 +123,7 @@ internal static class AutoTranslate
|
||||
case IndexRange range:
|
||||
{
|
||||
var start = (int)range.Start;
|
||||
var end = (int)(range.End + 1);
|
||||
var end = (int)(range.End + 1);
|
||||
rows.Add(start..end);
|
||||
break;
|
||||
}
|
||||
@@ -158,7 +167,14 @@ internal static class AutoTranslate
|
||||
var rawName = rowParser.ReadStringColumn(col);
|
||||
if (!rawName.IsEmpty)
|
||||
{
|
||||
list.Add(new AutoTranslateEntry(row.Group, (uint)i, rawName.ToString(), string.Empty));
|
||||
list.Add(
|
||||
new AutoTranslateEntry(
|
||||
row.Group,
|
||||
(uint)i,
|
||||
rawName.ToString(),
|
||||
string.Empty
|
||||
)
|
||||
);
|
||||
|
||||
if (shouldAdd)
|
||||
ValidEntries.Add((row.Group, (uint)i));
|
||||
@@ -172,7 +188,14 @@ internal static class AutoTranslate
|
||||
if (row.Text.IsEmpty)
|
||||
continue;
|
||||
|
||||
list.Add(new AutoTranslateEntry(row.Group, row.RowId, row.Text.ToString(), row.GroupTitle.ToString()));
|
||||
list.Add(
|
||||
new AutoTranslateEntry(
|
||||
row.Group,
|
||||
row.RowId,
|
||||
row.Text.ToString(),
|
||||
row.GroupTitle.ToString()
|
||||
)
|
||||
);
|
||||
|
||||
if (shouldAdd)
|
||||
ValidEntries.Add((row.Group, row.RowId));
|
||||
@@ -220,16 +243,16 @@ internal static class AutoTranslate
|
||||
|
||||
if (sort)
|
||||
{
|
||||
return wholeMatches.OrderBy(entry => entry.Text, StringComparer.OrdinalIgnoreCase)
|
||||
.Concat(prefixMatches.OrderBy(entry => entry.Text, StringComparer.OrdinalIgnoreCase))
|
||||
return wholeMatches
|
||||
.OrderBy(entry => entry.Text, StringComparer.OrdinalIgnoreCase)
|
||||
.Concat(
|
||||
prefixMatches.OrderBy(entry => entry.Text, StringComparer.OrdinalIgnoreCase)
|
||||
)
|
||||
.Concat(otherMatches.OrderBy(entry => entry.Text, StringComparer.OrdinalIgnoreCase))
|
||||
.ToList();
|
||||
}
|
||||
|
||||
return wholeMatches
|
||||
.Concat(prefixMatches)
|
||||
.Concat(otherMatches)
|
||||
.ToList();
|
||||
return wholeMatches.Concat(prefixMatches).Concat(otherMatches).ToList();
|
||||
}
|
||||
|
||||
internal static void ReplaceWithPayload(ref byte[] bytes)
|
||||
@@ -255,7 +278,11 @@ internal static class AutoTranslate
|
||||
|
||||
var tag = Encoding.UTF8.GetString(bytes[start..(i + 1)]);
|
||||
var parts = tag[4..^1].Split(',', 2);
|
||||
if (parts.Length == 2 && uint.TryParse(parts[0], out var group) && uint.TryParse(parts[1], out var key))
|
||||
if (
|
||||
parts.Length == 2
|
||||
&& uint.TryParse(parts[0], out var group)
|
||||
&& uint.TryParse(parts[1], out var key)
|
||||
)
|
||||
{
|
||||
bool isValid;
|
||||
lock (EntriesLock)
|
||||
@@ -267,7 +294,13 @@ internal static class AutoTranslate
|
||||
bytes = new byte[oldBytes.Length + lengthDiff];
|
||||
Array.Copy(oldBytes, bytes, start);
|
||||
Array.Copy(payload, 0, bytes, start, payload.Length);
|
||||
Array.Copy(oldBytes, i + 1, bytes, start + payload.Length, oldBytes.Length - (i + 1));
|
||||
Array.Copy(
|
||||
oldBytes,
|
||||
i + 1,
|
||||
bytes,
|
||||
start + payload.Length,
|
||||
oldBytes.Length - (i + 1)
|
||||
);
|
||||
|
||||
i += lengthDiff;
|
||||
}
|
||||
@@ -278,7 +311,10 @@ internal static class AutoTranslate
|
||||
// Pure managed comparison via Span avoids the msvcrt.dll P/Invoke,
|
||||
// which is fragile under Wine and triggered an extra managed-to-
|
||||
// unmanaged copy per check.
|
||||
if (i + search.Length < bytes.Length && bytes.AsSpan(i, search.Length).SequenceEqual(search))
|
||||
if (
|
||||
i + search.Length < bytes.Length
|
||||
&& bytes.AsSpan(i, search.Length).SequenceEqual(search)
|
||||
)
|
||||
start = i;
|
||||
}
|
||||
}
|
||||
@@ -309,7 +345,11 @@ internal static class AutoTranslate
|
||||
|
||||
var tag = Encoding.UTF8.GetString(bytes[..(i + 1)]);
|
||||
var parts = tag[4..^1].Split(',', 2);
|
||||
if (parts.Length == 2 && uint.TryParse(parts[0], out var group) && uint.TryParse(parts[1], out var key))
|
||||
if (
|
||||
parts.Length == 2
|
||||
&& uint.TryParse(parts[0], out var group)
|
||||
&& uint.TryParse(parts[1], out var key)
|
||||
)
|
||||
{
|
||||
bool isValid;
|
||||
lock (EntriesLock)
|
||||
@@ -317,7 +357,9 @@ internal static class AutoTranslate
|
||||
if (!isValid)
|
||||
return false;
|
||||
|
||||
var evaluated = Plugin.Evaluator.Evaluate(new ReadOnlySeString(CreateFixedTranslation(group, key))).ToString();
|
||||
var evaluated = Plugin
|
||||
.Evaluator.Evaluate(new ReadOnlySeString(CreateFixedTranslation(group, key)))
|
||||
.ToString();
|
||||
if (!evaluated.StartsWith('/'))
|
||||
return false;
|
||||
|
||||
@@ -332,8 +374,8 @@ internal static class AutoTranslate
|
||||
private static byte[] CreateFixedTranslation(uint group, uint key)
|
||||
{
|
||||
using var rssb = new RentedSeStringBuilder();
|
||||
return rssb.Builder
|
||||
.BeginMacro(MacroCode.Fixed)
|
||||
return rssb
|
||||
.Builder.BeginMacro(MacroCode.Fixed)
|
||||
.AppendUIntExpression(group - 1)
|
||||
.AppendUIntExpression(key)
|
||||
.EndMacro()
|
||||
|
||||
Reference in New Issue
Block a user