Skip to content

Commit

Permalink
Add ClassName property to ResxSourceGenerator
Browse files Browse the repository at this point in the history
  • Loading branch information
raulsntos committed Mar 6, 2024
1 parent 4af0601 commit 7aba2ca
Show file tree
Hide file tree
Showing 9 changed files with 239 additions and 1 deletion.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,68 @@ public async Task SingleString_RelativeDirVisualBasicAsync(string relativeDir)
}.AddGeneratedSources().RunAsync();
}

[Theory]
[InlineData("")]
[InlineData("NS")]
[InlineData("NS1.NS2")]
public async Task SingleString_ClassNameCSharpAsync(string className)
{
var code = ResxHeader
+ @" <data name=""Name"" xml:space=""preserve"">
<value>value</value>
<comment>comment</comment>
</data>"
+ ResxFooter;

await new VerifyCS.Test(identifier: className)
{
TestState =
{
AdditionalFiles = { ("/0/Resources.resx", code) },
AnalyzerConfigFiles =
{
("/.globalconfig", $@"
is_global = true
[/0/Resources.resx]
build_metadata.AdditionalFiles.ClassName = {className}
"),
},
},
}.AddGeneratedSources().RunAsync();
}

[Theory]
[InlineData("")]
[InlineData("NS")]
[InlineData("NS1.NS2")]
public async Task SingleString_ClassNameVisualBasicAsync(string className)
{
var code = ResxHeader
+ @" <data name=""Name"" xml:space=""preserve"">
<value>value</value>
<comment>comment</comment>
</data>"
+ ResxFooter;

await new VerifyVB.Test(identifier: className)
{
TestState =
{
AdditionalFiles = { ("/0/Resources.resx", code) },
AnalyzerConfigFiles =
{
("/.globalconfig", $@"
is_global = true
[/0/Resources.resx]
build_metadata.AdditionalFiles.ClassName = {className}
"),
},
},
}.AddGeneratedSources().RunAsync();
}

[Theory]
[CombinatorialData]
public async Task SingleString_OmitGetResourceStringCSharpAsync(bool omitGetResourceString)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ public void Initialize(IncrementalGeneratorInitializationContext context)
resourceName = relativeDir.Replace(Path.DirectorySeparatorChar, '.').Replace(Path.AltDirectorySeparatorChar, '.') + resourceName;
}
options.TryGetValue("build_metadata.AdditionalFiles.ClassName", out var resourceClassName);
if (!options.TryGetValue("build_metadata.AdditionalFiles.OmitGetResourceString", out var omitGetResourceStringText)
|| !bool.TryParse(omitGetResourceStringText, out var omitGetResourceString))
{
Expand Down Expand Up @@ -120,7 +122,7 @@ public void Initialize(IncrementalGeneratorInitializationContext context)
ResourceFile: resourceFile,
ResourceName: string.Join(".", rootNamespace, resourceName),
ResourceHintName: resourceHintName,
ResourceClassName: null,
ResourceClassName: resourceClassName,
OmitGetResourceString: omitGetResourceString,
AsConstants: asConstants,
IncludeDefaultValues: includeDefaultValues,
Expand Down
1 change: 1 addition & 0 deletions src/Tools/GenerateDocumentationAndConfigFiles/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,7 @@ string getCompilerVisibleProperties()
<CompilerVisibleItemMetadata Include="AdditionalFiles" MetadataName="WithCulture" />
<CompilerVisibleItemMetadata Include="AdditionalFiles" MetadataName="GenerateSource" />
<CompilerVisibleItemMetadata Include="AdditionalFiles" MetadataName="RelativeDir" />
<CompilerVisibleItemMetadata Include="AdditionalFiles" MetadataName="ClassName" />
<CompilerVisibleItemMetadata Include="AdditionalFiles" MetadataName="OmitGetResourceString" />
<CompilerVisibleItemMetadata Include="AdditionalFiles" MetadataName="AsConstants" />
<CompilerVisibleItemMetadata Include="AdditionalFiles" MetadataName="IncludeDefaultValues" />
Expand Down

0 comments on commit 7aba2ca

Please sign in to comment.