Skip to content

Commit b4a43e0

Browse files
committed
add option '--use-built-in-type-alias'
1 parent 8a57478 commit b4a43e0

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

src/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi/RootCommandImplementation.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,10 @@ public sealed class RootCommandImplementation {
9595
Description = "Generates record type declarations and hides compiler-generated members.",
9696
DefaultValueFactory = static _ => true,
9797
};
98+
private static readonly Option<bool> OptionTranslateLanguagePrimitiveType = new("--use-built-in-type-alias") {
99+
Description = "Use aliases for C# built-in types rather than .NET type names.",
100+
DefaultValueFactory = static _ => false,
101+
};
98102
// cSpell:enable
99103

100104
private readonly Microsoft.Extensions.Logging.ILogger? logger;
@@ -122,6 +126,7 @@ internal Command CreateCommand()
122126
OptionGenerateStaticMembersFirst,
123127
OptionGenerateNullableAnnotations,
124128
OptionGenerateRecords,
129+
OptionTranslateLanguagePrimitiveType,
125130
};
126131

127132
rootCommand.SetAction(RunAsync);
@@ -141,6 +146,8 @@ private static ApiListWriterOptions GetApiListWriterOptions(ParseResult parseRes
141146
var options = new ApiListWriterOptions();
142147

143148
#pragma warning disable IDE0055
149+
options.TranslateLanguagePrimitiveTypeDeclaration = parseResult.GetValue(OptionTranslateLanguagePrimitiveType);
150+
144151
options.TypeDeclaration.WithNamespace = parseResult.GetValue(OptionGenerateFullTypeName);
145152
options.MemberDeclaration.WithNamespace = parseResult.GetValue(OptionGenerateFullTypeName);
146153
options.AttributeDeclaration.WithNamespace = parseResult.GetValue(OptionGenerateFullTypeName);

tests/Smdn.Reflection.ReverseGenerating.ListApi/Smdn.Reflection.ReverseGenerating.ListApi/RootCommandImplementation.GetApiListWriterOptions.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,4 +92,17 @@ public void GetApiListWriterOptions_GenerateRecords(string args, bool expected)
9292
Assert.That(options.TypeDeclaration.OmitRecordImplicitInterface, Is.EqualTo(expected), $"args='{args}'");
9393
Assert.That(options.Writer.OmitCompilerGeneratedRecordEqualityMethods, Is.EqualTo(expected), $"args='{args}'");
9494
}
95+
96+
// cSpell:disable
97+
[TestCase("--use-built-in-type-alias", true)]
98+
[TestCase("--use-built-in-type-alias=true", true)]
99+
[TestCase("--use-built-in-type-alias=false", false)]
100+
[TestCase("", false)]
101+
// cSpell:enable
102+
public void GetApiListWriterOptions_TranslateLanguagePrimitiveTypeDeclaration(string args, bool expected)
103+
{
104+
var options = GetApiListWriterOptions(args);
105+
106+
Assert.That(options.TranslateLanguagePrimitiveTypeDeclaration, Is.EqualTo(expected), $"args='{args}'");
107+
}
95108
}

0 commit comments

Comments
 (0)