Skip to content

Commit e9b2377

Browse files
committed
Add PrefixIfStartsWithNumberTrimmer
1 parent 044c84b commit e9b2377

1 file changed

Lines changed: 23 additions & 7 deletions

File tree

sources/SilkTouch/SilkTouch/Mods/PrettifyNames.cs

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ public async Task ExecuteAsync(IModContext ctx, CancellationToken ct = default)
180180
new NameTrimmer(),
181181
new PrettifyNamesTrimmer(namePrettifier),
182182
new NameAffixerLateTrimmer(nameAffixer),
183+
new PrefixIfStartsWithNumberTrimmer(),
183184
};
184185

185186
// Create a type name dictionary to trim the type names.
@@ -1488,15 +1489,11 @@ public void Trim(NameTrimmerContext context)
14881489

14891490
for (var i = 0; i < secondary.Count; i++)
14901491
{
1491-
secondary[i] = NameUtils.PrefixIfStartsWithNumber(
1492-
namePrettifier.Prettify(secondary[i], allowAllCaps)
1493-
);
1492+
secondary[i] = namePrettifier.Prettify(secondary[i], allowAllCaps);
14941493
}
14951494

14961495
context.Names[original] = new CandidateNames(
1497-
NameUtils.PrefixIfStartsWithNumber(
1498-
namePrettifier.Prettify(primary, allowAllCaps)
1499-
),
1496+
namePrettifier.Prettify(primary, allowAllCaps),
15001497
secondary
15011498
);
15021499
}
@@ -1515,7 +1512,7 @@ public void Trim(NameTrimmerContext context)
15151512
foreach (var (original, (primary, secondary)) in context.Names)
15161513
{
15171514
var secondaries = secondary;
1518-
var newPrimary = affixer.ApplyAffixes(primary, null, original, secondaries); // TODO: Prefix names starting with numbers
1515+
var newPrimary = affixer.ApplyAffixes(primary, null, original, secondaries);
15191516
context.Names[original] = new CandidateNames(newPrimary, secondaries);
15201517
}
15211518

@@ -1535,4 +1532,23 @@ public void Trim(NameTrimmerContext context)
15351532
}
15361533
}
15371534
}
1535+
1536+
private class PrefixIfStartsWithNumberTrimmer : INameTrimmer
1537+
{
1538+
public void Trim(NameTrimmerContext context)
1539+
{
1540+
foreach (var (original, (primary, secondary)) in context.Names)
1541+
{
1542+
for (var i = 0; i < secondary.Count; i++)
1543+
{
1544+
secondary[i] = NameUtils.PrefixIfStartsWithNumber(secondary[i]);
1545+
}
1546+
1547+
context.Names[original] = new CandidateNames(
1548+
NameUtils.PrefixIfStartsWithNumber(primary),
1549+
secondary
1550+
);
1551+
}
1552+
}
1553+
}
15381554
}

0 commit comments

Comments
 (0)