Skip to content

Commit 10298dc

Browse files
committed
fix: include member documentation in release and symbols
1 parent 3ddb8db commit 10298dc

File tree

12 files changed

+132
-39
lines changed

12 files changed

+132
-39
lines changed

.releaserc.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@
3636
"@droidsolutions-oss/semantic-release-nuget",
3737
{
3838
"projectPath": "Catglobe.ResXFileCodeGenerator/Catglobe.ResXFileCodeGenerator.csproj",
39-
"nugetServer": "https://api.nuget.org/v3/index.json"
39+
"nugetServer": "https://api.nuget.org/v3/index.json",
40+
"includeSymbols": true
4041
}
4142
],
4243
"@semantic-release/github"
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
<?xml version="1.0"?>
2+
<doc>
3+
<assembly>
4+
<name>Catglobe.ResXFileCodeGenerator.Attributes</name>
5+
</assembly>
6+
<members>
7+
<member name="T:Catglobe.ResXFileCodeGenerator.ResxSettingsAttribute">
8+
<summary>
9+
Attribute force generation of matching resx files to this class instead of a class matching the filename.
10+
</summary>
11+
</member>
12+
<member name="M:Catglobe.ResXFileCodeGenerator.ResxSettingsAttribute.#ctor">
13+
<summary>
14+
Attribute force generation of matching resx files to this class instead of a class matching the filename.
15+
</summary>
16+
</member>
17+
<member name="P:Catglobe.ResXFileCodeGenerator.ResxSettingsAttribute.StaticMembers">
18+
<summary>
19+
Set if the class should have static members. Default is true.
20+
</summary>
21+
</member>
22+
<member name="P:Catglobe.ResXFileCodeGenerator.ResxSettingsAttribute.MembersVisibility">
23+
<summary>
24+
Set the visibility of the members. Default is private.
25+
</summary>
26+
</member>
27+
<member name="P:Catglobe.ResXFileCodeGenerator.ResxSettingsAttribute.ForEnum">
28+
<summary>
29+
Set if it should add a helper to get translations for Enum members of the given type
30+
</summary>
31+
</member>
32+
<member name="T:Catglobe.ResXFileCodeGenerator.Visibility">
33+
<summary>
34+
Visibility for the generated class/properties
35+
</summary>
36+
</member>
37+
<member name="F:Catglobe.ResXFileCodeGenerator.Visibility.NotSet">
38+
<summary>
39+
Used to indicate that the visibility is set elsewhere, or use default
40+
</summary>
41+
</member>
42+
<member name="F:Catglobe.ResXFileCodeGenerator.Visibility.NotGenerated">
43+
<summary>
44+
For inner classes, indicates that the inner class should not be generated
45+
</summary>
46+
</member>
47+
<member name="F:Catglobe.ResXFileCodeGenerator.Visibility.Public">
48+
<summary>
49+
Public visibility
50+
</summary>
51+
</member>
52+
<member name="F:Catglobe.ResXFileCodeGenerator.Visibility.Internal">
53+
<summary>
54+
Internal visibility
55+
</summary>
56+
</member>
57+
<member name="F:Catglobe.ResXFileCodeGenerator.Visibility.Private">
58+
<summary>
59+
Private visibility
60+
</summary>
61+
</member>
62+
<member name="F:Catglobe.ResXFileCodeGenerator.Visibility.Protected">
63+
<summary>
64+
Protected visibility
65+
</summary>
66+
</member>
67+
<member name="F:Catglobe.ResXFileCodeGenerator.Visibility.SameAsOuter">
68+
<summary>
69+
For inner classes, use the same visibility as the outer class
70+
</summary>
71+
</member>
72+
</members>
73+
</doc>

Catglobe.ResXFileCodeGenerator.Attributes/Catglobe.ResXFileCodeGenerator.Attributes.csproj

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,13 @@
44
<TargetFramework>netstandard2.0</TargetFramework>
55
<Nullable>enable</Nullable>
66
<RootNamespace>Catglobe.ResXFileCodeGenerator</RootNamespace>
7-
<IsPackable>false</IsPackable>
7+
<IsPackable>true</IsPackable>
88
<LangVersion>latest</LangVersion>
9+
<GenerateDocumentationFile>True</GenerateDocumentationFile>
10+
<IncludeSymbols>true</IncludeSymbols>
11+
<DebugType>portable</DebugType>
12+
<DeterministicSourcePaths>true</DeterministicSourcePaths>
13+
914
</PropertyGroup>
1015

1116
</Project>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,36 @@
11
namespace Catglobe.ResXFileCodeGenerator;
22

3+
/// <summary>
4+
/// Visibility for the generated class/properties
5+
/// </summary>
36
public enum Visibility
47
{
8+
/// <summary>
9+
/// Used to indicate that the visibility is set elsewhere, or use default
10+
/// </summary>
511
NotSet = -1,
12+
/// <summary>
13+
/// For inner classes, indicates that the inner class should not be generated
14+
/// </summary>
615
NotGenerated = 0,
16+
/// <summary>
17+
/// Public visibility
18+
/// </summary>
719
Public,
20+
/// <summary>
21+
/// Internal visibility
22+
/// </summary>
823
Internal,
24+
/// <summary>
25+
/// Private visibility
26+
/// </summary>
927
Private,
28+
/// <summary>
29+
/// Protected visibility
30+
/// </summary>
1031
Protected,
32+
/// <summary>
33+
/// For inner classes, use the same visibility as the outer class
34+
/// </summary>
1135
SameAsOuter
1236
}

Catglobe.ResXFileCodeGenerator/Catglobe.ResXFileCodeGenerator.csproj

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,36 @@
55
<IncludeBuildOutput>false</IncludeBuildOutput>
66
<LangVersion>latest</LangVersion>
77
<Nullable>enable</Nullable>
8-
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
8+
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
99
<Authors>Catglobe</Authors>
10+
<Copyright>Copyright © Catglobe</Copyright>
1011
<PackageLicenseExpression>MIT</PackageLicenseExpression>
1112
<PackageProjectUrl>https://github.com/Catglobe/ResXFileCodeGenerator</PackageProjectUrl>
1213
<RepositoryUrl>https://github.com/Catglobe/ResXFileCodeGenerator</RepositoryUrl>
13-
<Description>Converts Resx files into ultra fast runtime lookups using Source Generator.</Description>
14+
<PackageTags>resx attribute generator generation codegen codegenerator codegeneration catglobe</PackageTags>
15+
<RepositoryType>git</RepositoryType>
1416
<PackageId>Catglobe.ResXFileCodeGenerator</PackageId>
15-
<IncludeBuildOutput>false</IncludeBuildOutput>
16-
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
17+
<IncludeBuildOutput>true</IncludeBuildOutput>
1718
<NoWarn>$(NoWarn);NU5128</NoWarn>
1819
<DevelopmentDependency>true</DevelopmentDependency>
19-
<Version>4.0.2</Version>
20-
<RepositoryCommit>frombuild</RepositoryCommit>
20+
<Version>4.0.4</Version>
21+
<RepositoryCommit>3ddb8db6dcca4eee808bf0967c5468d8a5111fd8</RepositoryCommit>
2122
<ImplicitUsings>enable</ImplicitUsings>
2223
<IsRoslynComponent>true</IsRoslynComponent>
2324
<EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules>
25+
<CheckEolTargetFramework>false</CheckEolTargetFramework>
2426

2527
<PublishRepositoryUrl>true</PublishRepositoryUrl>
2628
<EmbedUntrackedSources>false</EmbedUntrackedSources>
29+
<IncludeSymbols>true</IncludeSymbols>
30+
<DebugType>portable</DebugType>
2731
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
2832
<NuGetAudit>true</NuGetAudit>
2933
<NuGetAuditMode>all</NuGetAuditMode>
3034
<NuGetAuditLevel>low</NuGetAuditLevel>
3135
<DeterministicSourcePaths>true</DeterministicSourcePaths>
3236
<PackageReadmeFile>README.md</PackageReadmeFile>
33-
<DevelopmentDependency>true</DevelopmentDependency>
37+
<GenerateDocumentationFile>True</GenerateDocumentationFile>
3438
</PropertyGroup>
3539

3640
<ItemGroup>
@@ -41,14 +45,8 @@
4145
<None Include="..\README.md" Pack="true" PackagePath="" />
4246
</ItemGroup>
4347

44-
<ItemDefinitionGroup>
45-
<PackageReference>
46-
<PrivateAssets>all</PrivateAssets>
47-
</PackageReference>
48-
</ItemDefinitionGroup>
49-
5048
<ItemGroup>
51-
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.12.0" />
49+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.12.0" />
5250
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.11.0" />
5351
</ItemGroup>
5452

@@ -61,6 +59,8 @@
6159
<ItemGroup>
6260
<None Include="$(OutputPath)\$(AssemblyName).dll" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
6361
<None Include="$(OutputPath)\Catglobe.ResXFileCodeGenerator.Attributes.dll" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
62+
<None Include="$(OutputPath)\Catglobe.ResXFileCodeGenerator.Attributes.xml" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
6463
<None Include="$(OutputPath)\Catglobe.ResXFileCodeGenerator.Attributes.dll" Pack="true" PackagePath="lib\netstandard2.0" Visible="true" />
64+
<None Include="$(OutputPath)\Catglobe.ResXFileCodeGenerator.Attributes.xml" Pack="true" PackagePath="lib\netstandard2.0" Visible="true" />
6565
</ItemGroup>
6666
</Project>

Catglobe.ResXFileCodeGenerator/Catglobe.ResXFileCodeGenerator.targets

Lines changed: 0 additions & 16 deletions
This file was deleted.

Catglobe.ResXFileCodeGenerator/GlobalOptions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
namespace Catglobe.ResXFileCodeGenerator;
22

3-
public sealed record GlobalOptions // this must be a record or implement IEquatable<T>
3+
internal sealed record GlobalOptions // this must be a record or implement IEquatable<T>
44
{
55
public string InnerClassInstanceName { get; }
66
public bool StaticMembers { get; }

Catglobe.ResXFileCodeGenerator/Parser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public static (ClassSpec? Spec, (DiagnosticDescriptor Diag, Location Location, s
4040

4141
var (symbolReference, error) = SymbolReference.From(symbol, context.SemanticModel, decl, ct);
4242
if (error is not null)
43-
return (null, (error, classSettings.Item1, symbol.Name));
43+
return (null, (error, classSettings.Item1, symbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat)));
4444

4545
return (new(classSettings.Item2!, classSettings.Item1!, symbolReference!), null);
4646
}

Catglobe.ResXFileCodeGenerator/SourceGenerator.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55

66
namespace Catglobe.ResXFileCodeGenerator;
77

8+
/// <summary>
9+
/// The generator
10+
/// </summary>
811
[Generator]
912
public class SourceGenerator : IIncrementalGenerator
1013
{
@@ -19,6 +22,9 @@ public class SourceGenerator : IIncrementalGenerator
1922

2023
private static readonly IGenerator s_generator = new StringBuilderGenerator();
2124

25+
/// <summary>
26+
/// Initialize the generator
27+
/// </summary>
2228
public void Initialize(IncrementalGeneratorInitializationContext context)
2329
{
2430
//graph TD
@@ -116,7 +122,7 @@ public void Initialize(IncrementalGeneratorInitializationContext context)
116122
var matcherClassAttributes = classAttributes.Where(static m => m.Spec is not null).Combine(resxGroupLookup)
117123
.Select((x,_)=>MatchWithGroup(x.Left, x.Left!.Spec!.SymbolReference, x.Right)).WithTrackingName("matcherClassAttributes");
118124
context.RegisterSourceOutput(matcherClassAttributes.Where(x=>x.Match is null), static (context, info) =>
119-
context.ReportDiagnostic(Diagnostic.Create(s_unmatchedAttribute, info.Attr!.Spec!.Location, info.Attr.Spec!.SymbolReference.TheType.FullyQualifiedName)));
125+
context.ReportDiagnostic(Diagnostic.Create(s_unmatchedAttribute, info.Attr!.Spec!.Location, info.Attr.Spec!.SymbolReference.TheType.TypeSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat))));
120126
var matchedClass = matcherClassAttributes.Where(x => x.Match is not null).Collect().WithTrackingName("matchedClass");
121127

122128
context.RegisterSourceOutput(matchedClass.SelectMany((x,_)=>x), (ctx, file) =>

Catglobe.ResXFileCodeGenerator/SymbolReference.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ private static bool TryGetNestedTypeDeclarations(TypeDeclarationSyntax contextCl
107107
/// An equatable value representing type identity.
108108
/// </summary>
109109
[DebuggerDisplay("Name = {Name}")]
110-
public readonly struct TypeRef(ITypeSymbol type) : IEquatable<TypeRef>
110+
internal readonly struct TypeRef(ITypeSymbol type) : IEquatable<TypeRef>
111111
{
112112
public string Name { get; } = type.Name;
113113

0 commit comments

Comments
 (0)