From d90245bf322e4bcfe6e24297b03aeb90cb9adbec Mon Sep 17 00:00:00 2001 From: Wojciech Figat Date: Wed, 26 Oct 2022 14:59:50 +0200 Subject: [PATCH] Add `Tag` parsing in scripting type (for custom extensions) --- .../Bindings/BindingsGenerator.Parsing.cs | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Parsing.cs b/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Parsing.cs index 9cee70870..95a895918 100644 --- a/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Parsing.cs +++ b/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Parsing.cs @@ -524,6 +524,17 @@ namespace Flax.Build.Bindings } } + private static void ParseTag(ref Dictionary tags, TagParameter tag) + { + if (tags == null) + tags = new Dictionary(); + var idx = tag.Value.IndexOf('='); + if (idx == -1) + tags[tag.Value] = string.Empty; + else + tags[tag.Value.Substring(0, idx)] = tag.Value.Substring(idx + 1); + } + private static ClassInfo ParseClass(ref ParsingContext context) { var desc = new ClassInfo @@ -608,6 +619,9 @@ namespace Flax.Build.Bindings case "namespace": desc.Namespace = tag.Value; break; + case "tag": + ParseTag(ref desc.Tags, tag); + break; default: bool valid = false; ParseTypeTag?.Invoke(ref valid, tag, desc); @@ -693,6 +707,9 @@ namespace Flax.Build.Bindings case "namespace": desc.Namespace = tag.Value; break; + case "tag": + ParseTag(ref desc.Tags, tag); + break; default: bool valid = false; ParseTypeTag?.Invoke(ref valid, tag, desc); @@ -824,6 +841,9 @@ namespace Flax.Build.Bindings case "hidden": desc.IsHidden = true; break; + case "tag": + ParseTag(ref desc.Tags, tag); + break; default: bool valid = false; ParseMemberTag?.Invoke(ref valid, tag, desc); @@ -1085,6 +1105,9 @@ namespace Flax.Build.Bindings case "namespace": desc.Namespace = tag.Value; break; + case "tag": + ParseTag(ref desc.Tags, tag); + break; default: bool valid = false; ParseTypeTag?.Invoke(ref valid, tag, desc); @@ -1156,6 +1179,9 @@ namespace Flax.Build.Bindings case "namespace": desc.Namespace = tag.Value; break; + case "tag": + ParseTag(ref desc.Tags, tag); + break; default: bool valid = false; ParseTypeTag?.Invoke(ref valid, tag, desc); @@ -1283,6 +1309,9 @@ namespace Flax.Build.Bindings case "noarray": desc.NoArray = true; break; + case "tag": + ParseTag(ref desc.Tags, tag); + break; default: bool valid = false; ParseMemberTag?.Invoke(ref valid, tag, desc); @@ -1349,6 +1378,9 @@ namespace Flax.Build.Bindings case "hidden": desc.IsHidden = true; break; + case "tag": + ParseTag(ref desc.Tags, tag); + break; default: bool valid = false; ParseMemberTag?.Invoke(ref valid, tag, desc); @@ -1418,6 +1450,9 @@ namespace Flax.Build.Bindings case "namespace": desc.Namespace = tag.Value; break; + case "tag": + ParseTag(ref desc.Tags, tag); + break; default: bool valid = false; ParseTypeTag?.Invoke(ref valid, tag, desc);