- fix: DesignMode think

This commit is contained in:
2025-01-22 21:06:05 +03:00
parent 3af99d40a1
commit 019dd13d8e
11 changed files with 51 additions and 36 deletions

View File

@@ -39,23 +39,28 @@ public class DependencyAutoGenerator : IIncrementalGenerator
var namespaceName = classSymbol.ContainingNamespace.ToDisplayString();
var className = classDeclarationSyntax.Identifier.Text;
var defaultConstruct = $@"public {className}(){{
InitialiseInDesignMode();
}}";
var propertiesGenerated = GetProperties(classSymbol).ToList();
var constr = propertiesGenerated.Select(a => $"{a.Type.ToDisplayString()} g{a.Name}");
var body = propertiesGenerated.Select(a => $"this.{a.Name} = g{a.Name};");
//if (!constr.Any()) defaultConstruct = "";
var propertiesGeneratedC = GetProperties(classSymbol)
.Where(a=>
SourceHelper.HasAttribute(a,"Nebula.Shared.Attributes.DesignConstructAttribute"))
.ToList();
var bodyC = propertiesGeneratedC.Select(a => $"this.{a.Name} = new {a.Type.ToDisplayString()}();");
var code = $@"// <auto-generated/>
namespace {namespaceName};
partial class {className}
{{
{defaultConstruct}
public {className}(){{
{string.Join("\n\t\t", bodyC)}
InitialiseInDesignMode();
}}
public {className}(
{string.Join(",\n\t\t", constr)}
) : base(){{