renderClass method

String renderClass(
  1. CodeClass cls
)

Renders cls to a Dart class declaration string ending with a blank line.

Implementation

String renderClass(CodeClass cls) {
  final buf = StringBuffer();
  buf.writeln('class ${cls.name} {');

  // ── Constructors ──────────────────────────────────────────────────────
  for (final ctor in cls.constructors) {
    _renderConstructor(buf, ctor);
  }

  if (cls.constructors.isNotEmpty &&
      (cls.fields.isNotEmpty || cls.methods.isNotEmpty)) {
    buf.writeln();
  }

  // ── Fields ────────────────────────────────────────────────────────────
  for (final field in cls.fields) {
    _renderField(buf, field);
  }

  if (cls.fields.isNotEmpty && cls.methods.isNotEmpty) {
    buf.writeln();
  }

  // ── Methods ───────────────────────────────────────────────────────────
  for (var i = 0; i < cls.methods.length; i++) {
    _renderMethod(buf, cls.methods[i]);
    if (i < cls.methods.length - 1) buf.writeln();
  }

  buf
    ..writeln('}')
    ..writeln();
  return buf.toString();
}