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:
2026-05-10 13:01:00 +02:00
parent cd01fa63a1
commit 699d4ede1d
141 changed files with 8833 additions and 5733 deletions
+70 -28
View File
@@ -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()