From 30899926518a5c57fe5cb8447da7c2cd99ef9edf Mon Sep 17 00:00:00 2001 From: Akeit0 <90429982+Akeit0@users.noreply.github.com> Date: Sun, 3 Mar 2024 13:01:00 +0900 Subject: [PATCH] Fix : Format Code --- .../AlchemySerializeGenerator.cs | 77 ++++++++----------- 1 file changed, 30 insertions(+), 47 deletions(-) diff --git a/Alchemy.SourceGenerator/AlchemySerializeGenerator.cs b/Alchemy.SourceGenerator/AlchemySerializeGenerator.cs index 16224ed..fa33747 100644 --- a/Alchemy.SourceGenerator/AlchemySerializeGenerator.cs +++ b/Alchemy.SourceGenerator/AlchemySerializeGenerator.cs @@ -26,26 +26,22 @@ namespace Alchemy.SourceGenerator { foreach (var typeSyntax in receiver.TargetTypes) { - var typeSymbol = context.Compilation.GetSemanticModel(typeSyntax.SyntaxTree) - .GetDeclaredSymbol(typeSyntax); + var typeSymbol = context.Compilation.GetSemanticModel(typeSyntax.SyntaxTree).GetDeclaredSymbol(typeSyntax); if (!IsPartial(typeSyntax)) { - context.ReportDiagnostic(Diagnostic.Create(DiagnosticDescriptors.MustBePartial, - typeSyntax.Identifier.GetLocation(), typeSymbol.Name)); + context.ReportDiagnostic(Diagnostic.Create(DiagnosticDescriptors.MustBePartial, typeSyntax.Identifier.GetLocation(), typeSymbol.Name)); continue; } if (IsNested(typeSyntax)) { - context.ReportDiagnostic(Diagnostic.Create(DiagnosticDescriptors.NestedNotAllow, - typeSyntax.Identifier.GetLocation(), typeSymbol.Name)); + context.ReportDiagnostic(Diagnostic.Create(DiagnosticDescriptors.NestedNotAllow, typeSyntax.Identifier.GetLocation(), typeSymbol.Name)); continue; } var fieldSymbols = new List(); - var fields = typeSyntax.Members - .OfType(); + var fields = typeSyntax.Members.OfType(); foreach (var field in fields) { var model = context.Compilation.GetSemanticModel(field.SyntaxTree); @@ -53,26 +49,24 @@ namespace Alchemy.SourceGenerator { var fieldSymbol = model.GetDeclaredSymbol(variable) as IFieldSymbol; var alchemySerializeAttribute = fieldSymbol.GetAttributes() - .FirstOrDefault(x => - x.AttributeClass.Name is "AlchemySerializeField" - or "AlchemySerializeFieldAttribute" - or "Alchemy.Serialization.AlchemySerializeField" - or "Alchemy.Serialization.AlchemySerializeFieldAttribute"); + .FirstOrDefault(x => x.AttributeClass.Name + is "AlchemySerializeField" + or "AlchemySerializeFieldAttribute" + or "Alchemy.Serialization.AlchemySerializeField" + or "Alchemy.Serialization.AlchemySerializeFieldAttribute"); var nonSerializedAttribute = fieldSymbol.GetAttributes() - .FirstOrDefault(x => - x.AttributeClass.Name is "NonSerialized" - or "NonSerializedAttribute" - or "System.NonSerialized" - or "System.NonSerializedAttribute"); + .FirstOrDefault(x => x.AttributeClass.Name + is "NonSerialized" + or "NonSerializedAttribute" + or "System.NonSerialized" + or "System.NonSerializedAttribute"); if (alchemySerializeAttribute != null) { if (nonSerializedAttribute == null) { - context.ReportDiagnostic(Diagnostic.Create( - DiagnosticDescriptors.ShouldBeNonSerialized, variable.Identifier.GetLocation(), - fieldSymbol.Name)); + context.ReportDiagnostic(Diagnostic.Create(DiagnosticDescriptors.ShouldBeNonSerialized, variable.Identifier.GetLocation(), fieldSymbol.Name)); } fieldSymbols.Add(fieldSymbol); @@ -91,16 +85,14 @@ namespace Alchemy.SourceGenerator } catch (Exception ex) { - var diagnosticDescriptor = new DiagnosticDescriptor("AlchemySerializeGeneratorError", - "AlchemySerializeGeneratorError", $"Generation failed with:\n {ex}", - "AlchemySerializeGeneratorError", DiagnosticSeverity.Error, true); - context.ReportDiagnostic(Diagnostic.Create(diagnosticDescriptor, Location.None, - DiagnosticSeverity.Error)); + var diagnosticDescriptor = new DiagnosticDescriptor("AlchemySerializeGeneratorError", "AlchemySerializeGeneratorError", $"Generation failed with:\n {ex}", "AlchemySerializeGeneratorError", DiagnosticSeverity.Error, true); + context.ReportDiagnostic(Diagnostic.Create(diagnosticDescriptor, Location.None, DiagnosticSeverity.Error)); } } - static string ReplaceGenericsToCount( string typeName,int count) + + static string ReplaceGenericsToCount(string typeName, int count) { - if(count == 0) return typeName; + if (count == 0) return typeName; var builder = new StringBuilder(); bool skip = false; foreach (var c in typeName) @@ -119,6 +111,7 @@ namespace Alchemy.SourceGenerator builder.Append(c); } } + return builder.ToString(); } @@ -148,19 +141,16 @@ namespace Alchemy.SourceGenerator if (typeSymbol.IsGenericType) { genericsCount = typeSymbol.TypeParameters.Length; - } + var typeGenerics = typeSymbol.IsGenericType ? "<" + string.Join(", ", typeSymbol.TypeParameters.Select(x => x.Name)) + ">" : ""; - var alchemySerializationDataName = typeSymbol.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat) - .Replace("global::", "").Replace(".", "_"); - alchemySerializationDataName = ReplaceGenericsToCount(alchemySerializationDataName,genericsCount) + "_alchemySerializationData"; + var alchemySerializationDataName = typeSymbol.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat).Replace("global::", "").Replace(".", "_"); + alchemySerializationDataName = ReplaceGenericsToCount(alchemySerializationDataName, genericsCount) + "_alchemySerializationData"; - var inheritedSerializationCallback = hasInheritedImplementation - ? "base.SerializationCallback_AlchemyImpl(isBeforeSerialize);" - : string.Empty; + var inheritedSerializationCallback = hasInheritedImplementation ? "base.SerializationCallback_AlchemyImpl(isBeforeSerialize);" : string.Empty; var hasShowSerializationData = typeSymbol.GetAttributes().Any(x => x.AttributeClass.Name is "ShowAlchemySerializationData" @@ -168,19 +158,14 @@ namespace Alchemy.SourceGenerator or "Alchemy.Serialization.ShowAlchemySerializationData" or "Alchemy.Serialization.ShowAlchemySerializationDataAttribute"); - var serializationDataAttributesCode = hasShowSerializationData - ? "[global::Alchemy.Inspector.ReadOnly, global::UnityEngine.TextArea(3, 999), global::UnityEngine.SerializeField]" - : "[global::UnityEngine.HideInInspector, global::UnityEngine.SerializeField]"; + var serializationDataAttributesCode = hasShowSerializationData ? "[global::Alchemy.Inspector.ReadOnly, global::UnityEngine.TextArea(3, 999), global::UnityEngine.SerializeField]" : "[global::UnityEngine.HideInInspector, global::UnityEngine.SerializeField]"; // target class namespace - var ns = typeSymbol.ContainingNamespace.IsGlobalNamespace - ? string.Empty - : $"namespace {typeSymbol.ContainingNamespace} {{"; + var ns = typeSymbol.ContainingNamespace.IsGlobalNamespace ? string.Empty : $"namespace {typeSymbol.ContainingNamespace} {{"; foreach (var field in fieldSymbols) { - var serializeCode = - @$"try + var serializeCode = @$"try {{ {alchemySerializationDataName}.{field.Name}.data = global::Alchemy.Serialization.Internal.SerializationHelper.ToJson(this.{field.Name} , {alchemySerializationDataName}.UnityObjectReferences); {alchemySerializationDataName}.{field.Name}.isCreated = true; @@ -190,8 +175,7 @@ catch (global::System.Exception ex) global::UnityEngine.Debug.LogException(ex); }}"; - var deserializeCode = - @$"try + var deserializeCode = @$"try {{ if ({alchemySerializationDataName}.{field.Name}.isCreated) {{ @@ -209,8 +193,7 @@ catch (global::System.Exception ex) serializationDataCodeBuilder.Append("public Item ").Append(field.Name).Append(" = new();"); } - return - @$" + return @$" // {ns}