toYaml method

String toYaml()

Convert to YAML string

Implementation

String toYaml() {
  final buffer = StringBuffer();
  buffer.writeln('# Claudio Gen Configuration');
  buffer.writeln('# Generated: ${DateTime.now().toIso8601String()}');
  buffer.writeln();
  buffer.writeln('# Project type: auto, dart, python, javascript, typescript, go, rust, java, kotlin, swift, cpp, csharp, ruby, php, web, generic');
  buffer.writeln('project_type: $projectTypeName');
  buffer.writeln();
  buffer.writeln('source_dir: $sourceDir');
  buffer.writeln('output_prefix: $outputPrefix');
  buffer.writeln('target_size_kb: $targetSizeKB');
  buffer.writeln('remove_comments: $removeComments');
  buffer.writeln('output_format: $outputFormatName');
  buffer.writeln('verbose: $verbose');

  if (extensions.isNotEmpty) {
    buffer.writeln();
    buffer.writeln('# Custom file extensions (overrides language defaults)');
    buffer.writeln('extensions:');
    for (final ext in extensions) {
      buffer.writeln('  - "$ext"');
    }
  }

  if (ignorePatterns.isNotEmpty) {
    buffer.writeln();
    buffer.writeln('# Additional ignore patterns (merged with language defaults)');
    buffer.writeln('ignore_patterns:');
    for (final pattern in ignorePatterns) {
      buffer.writeln('  - "$pattern"');
    }
  }

  if (ignoreFiles.isNotEmpty) {
    buffer.writeln();
    buffer.writeln('ignore_files:');
    for (final file in ignoreFiles) {
      buffer.writeln('  - "$file"');
    }
  }

  if (extraRootFiles.isNotEmpty) {
    buffer.writeln();
    buffer.writeln('extra_root_files:');
    for (final file in extraRootFiles) {
      buffer.writeln('  - "$file"');
    }
  }

  return buffer.toString();
}