Updated Generators
Removed un-nesscary Attribute generation, as now is part of core.
This commit is contained in:
parent
02d23935fa
commit
d96fbaf0e9
3 changed files with 8 additions and 54 deletions
|
|
@ -12,21 +12,8 @@ namespace Godot.Sharp.Extended.Generators;
|
|||
[Generator]
|
||||
public class NodeBindGenerator : IIncrementalGenerator
|
||||
{
|
||||
private const string AttributeSourceCode = """
|
||||
// <auto-generated />
|
||||
namespace Godot.Sharp.Extended.Generators;
|
||||
|
||||
[System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field)]
|
||||
public class NodeBindAttribute : Attribute
|
||||
{
|
||||
}
|
||||
""";
|
||||
public void Initialize(IncrementalGeneratorInitializationContext context)
|
||||
{
|
||||
context.RegisterPostInitializationOutput(ctx => ctx.AddSource(
|
||||
"NodeBindAttribute.g.cs",
|
||||
SourceText.From(AttributeSourceCode, Encoding.UTF8)));
|
||||
|
||||
var propertyProvider = context.SyntaxProvider
|
||||
.CreateSyntaxProvider(
|
||||
predicate: (s, _) => s is ClassDeclarationSyntax,
|
||||
|
|
@ -60,7 +47,7 @@ public class NodeBindGenerator : IIncrementalGenerator
|
|||
continue;
|
||||
|
||||
var attributeName = symbol.ContainingType.ToDisplayString();
|
||||
if (attributeName == $"Godot.Sharp.Extended.Generators.NodeBind")
|
||||
if (attributeName == $"Godot.Sharp.Extended.Attributes.NodeBind")
|
||||
return declarationSyntax;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,28 +13,8 @@ namespace Godot.Sharp.Extended.Generators;
|
|||
[Generator]
|
||||
public class NodePropBindGenerator : IIncrementalGenerator
|
||||
{
|
||||
private const string AttributeSourceCode = """
|
||||
// <auto-generated/>
|
||||
namespace Godot.Sharp.Extended.Generators;
|
||||
|
||||
[System.AttributeUsage(System.AttributeTargets.Member)]
|
||||
public class NodePropBindAttribute : System.Attribute
|
||||
{
|
||||
public string TargetNodeName { get; private set; }
|
||||
public string GodotPropertyName { get; private set; }
|
||||
|
||||
public NodePropBindAttribute(string targetNodeName, string godotPropertyName)
|
||||
{
|
||||
TargetNodeName = targetNodeName;
|
||||
GodotPropertyName = godotPropertyName;
|
||||
}
|
||||
}
|
||||
""";
|
||||
public void Initialize(IncrementalGeneratorInitializationContext context)
|
||||
{
|
||||
context.RegisterPostInitializationOutput(ctx => ctx.AddSource(
|
||||
"NodePropBind.g.cs",
|
||||
SourceText.From(AttributeSourceCode, Encoding.UTF8)));
|
||||
|
||||
var propertyProvider = context.SyntaxProvider
|
||||
.CreateSyntaxProvider(
|
||||
|
|
@ -69,7 +49,7 @@ public class NodePropBindGenerator : IIncrementalGenerator
|
|||
continue;
|
||||
|
||||
var attributeName = symbol.ContainingType.ToDisplayString();
|
||||
if (attributeName == "Godot.Sharp.Extended.Generators.NodePropBind")
|
||||
if (attributeName == "Godot.Sharp.Extended.Attributes.NodePropBind")
|
||||
return declarationSyntax;
|
||||
}
|
||||
|
||||
|
|
@ -132,7 +112,11 @@ public class NodePropBindGenerator : IIncrementalGenerator
|
|||
propCode.AppendLine($$"""
|
||||
public {{memberDefinition.Type}} {{propName}}
|
||||
{
|
||||
get => {{memberDefinition.Name}};
|
||||
get {
|
||||
if ({{memberDefinition.NodeProp}} == null)
|
||||
return {{memberDefinition.Name}};
|
||||
return {{memberDefinition.NodeProp}}.{{godotProp}};
|
||||
}
|
||||
set {
|
||||
{{memberDefinition.Name}} = value;
|
||||
if ({{memberDefinition.NodeProp}} != null)
|
||||
|
|
|
|||
|
|
@ -14,25 +14,8 @@ namespace Godot.Sharp.Extended.Generators;
|
|||
[Generator]
|
||||
public class ResourceGenerator : IIncrementalGenerator
|
||||
{
|
||||
private const string AttributeSourceCode = """
|
||||
// <auto-generated />
|
||||
namespace Godot.Sharp.Extended.Generators;
|
||||
|
||||
[System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field)]
|
||||
public class ResourcePathAttribute : System.Attribute
|
||||
{
|
||||
public string Path { get; private set; }
|
||||
|
||||
public ResourcePathAttribute(string path) {
|
||||
Path = path;
|
||||
}
|
||||
}
|
||||
""";
|
||||
public void Initialize(IncrementalGeneratorInitializationContext context)
|
||||
{
|
||||
context.RegisterPostInitializationOutput(ctx => ctx.AddSource(
|
||||
"ResourcePathAttribute.g.cs",
|
||||
SourceText.From(AttributeSourceCode, Encoding.UTF8)));
|
||||
|
||||
var classPaths = context.SyntaxProvider
|
||||
.CreateSyntaxProvider(
|
||||
|
|
@ -82,7 +65,7 @@ public class ResourceGenerator : IIncrementalGenerator
|
|||
{
|
||||
var symbolInfo = ctx.SemanticModel.GetSymbolInfo(attributeSyntax);
|
||||
if (symbolInfo.Symbol is not IMethodSymbol attributeSymbol) continue;
|
||||
if (attributeSymbol.ContainingType.ToDisplayString() != "Godot.Sharp.Extended.Generators.ResourcePath") continue;
|
||||
if (attributeSymbol.ContainingType.ToDisplayString() != "Godot.Sharp.Extended.Attributes.ResourcePath") continue;
|
||||
var parameter = attributeSyntax.ArgumentList;
|
||||
var pathArgument = parameter?.Arguments[0];
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue