~ruther/NosSmooth

3f193501d0a4e99a917437ec7d835639e50ed0a8 — František Boháček 3 years ago 5624a4a
fix: syntax errors in list attribute generator
M Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketContextListAttributeGenerator.cs => Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketContextListAttributeGenerator.cs +3 -4
@@ 39,7 39,7 @@ public class PacketContextListAttributeGenerator : IParameterGenerator
        if (parameterInfo.NamedAttributeArguments.ContainsKey("InnerSeparator") && parameterInfo.NamedAttributeArguments["InnerSeparator"] is not null)
        {
            innerSeparator = parameterInfo.NamedAttributeArguments["InnerSeparator"]!.ToString()[0];
            textWriter.WriteLine($"stringEnumerator.PushLevel('{parameterInfo.NamedAttributeArguments["InnerSeparator"]}');");
            textWriter.WriteLine($"builder.PushLevel('{parameterInfo.NamedAttributeArguments["InnerSeparator"]}');");
        }

        textWriter.WriteLine($"builder.PrepareLevel('{innerSeparator}')");


@@ 74,18 74,17 @@ builder.PopLevel();
            listSeparator = parameterInfo.NamedAttributeArguments["ListSeparator"]!.ToString()[0];
        }

        textWriter.WriteLine($"stringEnumerator.PushLevel('{listSeparator}')");
        textWriter.WriteLine($"stringEnumerator.PushLevel('{listSeparator}');");

        var innerSeparator = '.';
        if (parameterInfo.NamedAttributeArguments.ContainsKey("InnerSeparator") && parameterInfo.NamedAttributeArguments["InnerSeparator"] is not null)
        {
            innerSeparator = parameterInfo.NamedAttributeArguments["InnerSeparator"]!.ToString()[0];
            textWriter.WriteLine($"stringEnumerator.PushLevel('{parameterInfo.NamedAttributeArguments["InnerSeparator"]}');");
        }

        var maxTokensVariable = parameterInfo.IndexedAttributeArguments[1]!.ToString();

        textWriter.WriteLine($"stringEnumerator.PrepareLevel('{innerSeparator}', {maxTokensVariable})");
        textWriter.WriteLine($"stringEnumerator.PrepareLevel('{innerSeparator}', {maxTokensVariable});");

        var semanticModel = parameterInfo.Compilation.GetSemanticModel(recordDeclarationSyntax.SyntaxTree);
        var type = semanticModel.GetTypeInfo(parameterInfo.Parameter.Type!).Type;

M Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketListIndexAttributeGenerator.cs => Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketListIndexAttributeGenerator.cs +4 -6
@@ 34,16 34,15 @@ public class PacketListIndexAttributeGenerator : IParameterGenerator
            listSeparator = parameterInfo.NamedAttributeArguments["ListSeparator"]!.ToString()[0];
        }

        textWriter.WriteLine($"builder.PushLevel('{listSeparator}')");
        textWriter.WriteLine($"builder.PushLevel('{listSeparator}');");

        var innerSeparator = '.';
        if (parameterInfo.NamedAttributeArguments.ContainsKey("InnerSeparator") && parameterInfo.NamedAttributeArguments["InnerSeparator"] is not null)
        {
            innerSeparator = parameterInfo.NamedAttributeArguments["InnerSeparator"]!.ToString()[0];
            textWriter.WriteLine($"stringEnumerator.PushLevel('{parameterInfo.NamedAttributeArguments["InnerSeparator"]}');");
        }

        textWriter.WriteLine($"builder.PrepareLevel('{innerSeparator}')");
        textWriter.WriteLine($"builder.PrepareLevel('{innerSeparator}');");

        textWriter.WriteLine($@"
var {parameterInfo.Name}Result = _typeConverterRepository.Serialize(obj.{parameterInfo.Name}, builder);


@@ 75,13 74,12 @@ builder.PopLevel();
            listSeparator = parameterInfo.NamedAttributeArguments["ListSeparator"]!.ToString()[0];
        }

        textWriter.WriteLine($"stringEnumerator.PushLevel('{listSeparator}')");
        textWriter.WriteLine($"stringEnumerator.PushLevel('{listSeparator}');");

        var innerSeparator = '.';
        if (parameterInfo.NamedAttributeArguments.ContainsKey("InnerSeparator") && parameterInfo.NamedAttributeArguments["InnerSeparator"] is not null)
        {
            innerSeparator = parameterInfo.NamedAttributeArguments["InnerSeparator"]!.ToString()[0];
            textWriter.WriteLine($"stringEnumerator.PushLevel('{parameterInfo.NamedAttributeArguments["InnerSeparator"]}');");
        }

        var maxTokens = "null";


@@ 90,7 88,7 @@ builder.PopLevel();
            maxTokens = parameterInfo.NamedAttributeArguments["Length"]!.ToString();
        }

        textWriter.WriteLine($"stringEnumerator.PrepareLevel('{innerSeparator}', {maxTokens ?? "null"})");
        textWriter.WriteLine($"stringEnumerator.PrepareLevel('{innerSeparator}', {maxTokens ?? "null"});");

        var semanticModel = parameterInfo.Compilation.GetSemanticModel(recordDeclarationSyntax.SyntaxTree);
        var type = semanticModel.GetTypeInfo(parameterInfo.Parameter.Type!).Type;

Do not follow this link