Skip to content

Commit

Permalink
Update rscgutils package version and add support for record declaration
Browse files Browse the repository at this point in the history
  • Loading branch information
ignatandrei committed Mar 12, 2024
1 parent 9189d45 commit 3f2dfdd
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 11 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ In your csproj

```xml
<ItemGroup>
<PackageReference Include="rscgutils" Version="2024.1858.1931" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
<PackageReference Include="rscgutils" Version="2024.1859.1955" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
</ItemGroup>
<ItemGroup>
<AdditionalFiles Include="Second.gen.txt" />
Expand Down
23 changes: 18 additions & 5 deletions src/RSCG_Utils/RSCG_Utils/FunctionMemoGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,31 @@ private void Execute(Compilation compilation, ImmutableArray<TypeDeclarationSynt
if (classes.IsDefaultOrEmpty)return;
var distinctClasses = classes.Distinct().ToArray();
if(((distinctClasses?.Length)??0) == 0) return;
foreach (var cds in distinctClasses!)
foreach (var tds in distinctClasses!)
{
var nameClass = cds.Identifier.ValueText;
var ns = cds.Parent as BaseNamespaceDeclarationSyntax;
var nameClass = tds.Identifier.ValueText;
string nameDefinition = "";
if(tds is ClassDeclarationSyntax cds)
{
nameDefinition= "class";
}
if(tds is RecordDeclarationSyntax rds)
{
nameDefinition= "record";
}
if(string.IsNullOrWhiteSpace(nameDefinition))
{
throw new ArgumentException("only class or record ");
}
var ns = tds.Parent as BaseNamespaceDeclarationSyntax;
var nameNamespace = "";
while(ns != null)
{
nameNamespace = ns.Name.ToFullString();
ns=ns.Parent as BaseNamespaceDeclarationSyntax;
}

var members= cds
var members= tds
.Members
.OfType<MethodDeclarationSyntax>()
.Where(IsMethodToBeGenerated)
Expand All @@ -47,7 +60,7 @@ private void Execute(Compilation compilation, ImmutableArray<TypeDeclarationSynt
{
var nameMethod = method.Identifier.ValueText;

var memo = new SaveMemo(nameClass,nameNamespace,method);
var memo = new SaveMemo(nameDefinition ,nameClass,nameNamespace,method);
MemoPure.GeneratePartialMemoPure generate = new(memo);
var text = generate.Render();
spc.AddSource(memo.fullName(), text);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ using System.Collections.Concurrent;
<text>namespace @Model.nameSpaceName;</text>
}

partial class @Model.className
partial @Model.nameDefinition @Model.className
{

@Html.Raw(declDict)
Expand Down
2 changes: 1 addition & 1 deletion src/RSCG_Utils/RSCG_Utils/RSCG_Utils.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
<PropertyGroup>
<PackAsTool>false</PackAsTool>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<Version>2024.1858.1931</Version>
<Version>2024.1859.1955</Version>
<Authors>Andrei Ignat</Authors>
<Description>Additional files as strings; json to class;memo purifying functions</Description>
<Title>RSCG Utils</Title>
Expand Down
6 changes: 4 additions & 2 deletions src/RSCG_Utils/RSCG_Utils/SaveMemo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

namespace RSCG_Utils;
public class SaveMemo
{
{
public readonly string nameDefinition;
public readonly string className;
public readonly string nameSpaceName;
public readonly MethodDeclarationSyntax mds;
Expand All @@ -15,8 +16,9 @@ public class SaveMemo
public readonly string[] typeParameters;
public readonly string[] nameParameters;
public readonly string[] typeAndNameParameters;
public SaveMemo(string ClassName, string nameSpaceName, MethodDeclarationSyntax mds)
public SaveMemo(string nameDefinition,string ClassName, string nameSpaceName, MethodDeclarationSyntax mds)
{
this.nameDefinition = nameDefinition;
className = ClassName;
this.nameSpaceName = nameSpaceName;
this.mds = mds;
Expand Down
2 changes: 1 addition & 1 deletion src/RSCG_Utils/RSCG_Utils_Console/fibTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public async Task<long> fibonacci_MemoPure(long nr)
if (nr <= 1) return 1;
if (nr == 2) return 2;
await Task.Delay(1000);
return await fibonacci(nr - 1) + await fibonacci(nr - 1);
return await this.fibonacci(nr - 1) + await this.fibonacci(nr - 1);

}
}

0 comments on commit 3f2dfdd

Please sign in to comment.