Exemple #1
0
 public Line(StructuredStringBuilder sb)
 {
     _sb = sb;
     _sb.Append(_sb.DepthStr);
 }
Exemple #2
0
    protected override async Task GenerateCtor(StructuredStringBuilder sb)
    {
        if (BasicCtorPermission == CtorPermissionLevel.noGeneration)
        {
            return;
        }
        if (BasicCtorPermission == CtorPermissionLevel.@public)
        {
            sb.AppendLine($"public {Name}(");
            List <string> lines = new List <string>();
            foreach (var field in IterateFields())
            {
                lines.Add($"{field.TypeName(getter: false)} {field.Name} = default({field.TypeName(getter: false)})");
            }
            for (int i = 0; i < lines.Count; i++)
            {
                using (sb.IncreaseDepth())
                {
                    using (sb.Line())
                    {
                        sb.Append(lines[i]);
                        if (i != lines.Count - 1)
                        {
                            sb.Append(",");
                        }
                        else
                        {
                            sb.Append(")");
                        }
                    }
                }
            }

            using (sb.CurlyBrace())
            {
                foreach (var field in IterateFields())
                {
                    sb.AppendLine($"this.{field.Name} = {field.Name};");
                }
                foreach (var mod in gen.GenerationModules)
                {
                    await mod.GenerateInCtor(this, sb);
                }
                sb.AppendLine("CustomCtor();");
            }
            sb.AppendLine();
        }

        sb.AppendLine($"{BasicCtorPermission.ToStringFast_Enum_Only()} {Name}({Interface(getter: true)} rhs)");
        using (sb.CurlyBrace())
        {
            foreach (var field in IterateFields())
            {
                sb.AppendLine($"this.{field.Name} = {field.GenerateACopy("rhs." + field.Name)};");
            }
        }
        sb.AppendLine();

        sb.AppendLine("partial void CustomCtor();");
        sb.AppendLine();
    }
Exemple #3
0
 public void Dispose()
 {
     _sb.Append(Environment.NewLine);
 }