From f64afaa1d40b858eb16ebd9e98a9341bf8da4cc4 Mon Sep 17 00:00:00 2001 From: labbbirder <502100554@qq.com> Date: Fri, 23 Feb 2024 20:25:06 +0800 Subject: [PATCH] fix: enum field not retrieved --- .../DirectAttribute.sg/AttributeReceiver.cs | 12 ++++++------ VSProj~/TestApp/Program.cs | 9 +++++++++ package.json | 2 +- plugin.unitypackage | Bin 8774 -> 8776 bytes 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/VSProj~/DirectAttribute.sg/AttributeReceiver.cs b/VSProj~/DirectAttribute.sg/AttributeReceiver.cs index e994a7d..1988c25 100644 --- a/VSProj~/DirectAttribute.sg/AttributeReceiver.cs +++ b/VSProj~/DirectAttribute.sg/AttributeReceiver.cs @@ -14,9 +14,9 @@ internal class AttributeReceiver : ISyntaxReceiver { public class Record { - public TypeDeclarationSyntax TypeDeclaration; + public BaseTypeDeclarationSyntax TypeDeclaration; public bool confirmed = false; - public void Deconstruct(out TypeDeclarationSyntax td,out bool cf) + public void Deconstruct(out BaseTypeDeclarationSyntax td,out bool cf) { td = TypeDeclaration; cf = confirmed; @@ -27,9 +27,9 @@ public void OnVisitSyntaxNode(SyntaxNode syntaxNode) { if(syntaxNode is AttributeListSyntax) { - var t = syntaxNode.FirstAncestorOrSelf(); - //Debugger.Launch(); - if(t != null) + var t = syntaxNode.FirstAncestorOrSelf(); + // Debugger.Launch(); + if (t != null) { Append(t,true); } @@ -39,7 +39,7 @@ public void OnVisitSyntaxNode(SyntaxNode syntaxNode) Append(td,false); } } - void Append(TypeDeclarationSyntax td, bool confirmed) + void Append(BaseTypeDeclarationSyntax td, bool confirmed) { var pre = TypeDeclarations.FirstOrDefault(d => d.TypeDeclaration.IsEquivalentTo(td)); if(pre != null) diff --git a/VSProj~/TestApp/Program.cs b/VSProj~/TestApp/Program.cs index 9cfa2e5..e488bf4 100644 --- a/VSProj~/TestApp/Program.cs +++ b/VSProj~/TestApp/Program.cs @@ -47,6 +47,15 @@ public static void Main() Console.WriteLine($"ga: {attr}"); } } + public enum MyEnum + { + [Inject("Enum One")] + One, + [Inject("Enum 2")] + Two, + [Inject("Enum 3")] + Tytt, + } internal class Foo { //[DirectRetrieve(typeof(Program))] diff --git a/package.json b/package.json index 331ad73..f2204e3 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "com.bbbirder.directattribute", "description": "Retrieve attributes and subtypes efficiently, meanwhile, retrieve target type and member directly from an attribute", "displayName": "Direct Attribute", - "version": "1.1.5", + "version": "1.1.6", "hideInEditor": false, "author": "bbbirder <502100554@qq.com>" } diff --git a/plugin.unitypackage b/plugin.unitypackage index 234ed5a09ba92a4cbe42a1ab6f98613c4cd180cf..3f078a48c02ceb325e89f64329aea7bd448ce95b 100644 GIT binary patch literal 8776 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 literal 8774 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