public static void Write(this TableField field, CSideWriter writer) { var debt = 0; var fieldNo = BuildFieldPart(field.ID.ToString(), 4, ref debt); var fieldEnabled = BuildFieldPart(field.Enabled.AsString(), 3, ref debt); var fieldName = BuildFieldPart(field.Name, 20, ref debt); var fieldTypeName = BuildFieldPart(field.TypeName(), 14, ref debt); var declaration = string.Format("{{ {0};{1};{2};{3}", fieldNo, fieldEnabled, fieldName, fieldTypeName); var properties = field.AllProperties; writer.Write("{0}", declaration.PadRight(46)); writer.Write(properties.Any(p => p.HasValue) ? ";" : " "); if ((writer.Column > 51) && (properties.Any(p => p.HasValue))) { writer.Indent(51); writer.WriteLine(""); } else { writer.Indent(writer.Column); } properties.Write(PropertiesStyle.Field, writer); var relevantProperties = properties.Where(p => p.HasValue); var lastProperty = relevantProperties.LastOrDefault(); if (lastProperty != null) { if (lastProperty is TriggerProperty) { writer.Write(new string(' ', lastProperty.Name.Length + 2)); } } writer.WriteLine("}"); writer.Unindent(); }