generateBuildContextExtension method

Future<void> generateBuildContextExtension(
  1. String outputDir,
  2. String className
)

Generate BuildContext extension file

Implementation

Future<void> generateBuildContextExtension(
  String outputDir,
  String className,
) async {
  final buffer = StringBuffer();

  // Add generation comment
  buffer.writeln('// GENERATED CODE - DO NOT MODIFY BY HAND');
  buffer.writeln('// Generated by Excel Translator');
  buffer.writeln('// ${DateTime.now()}');
  buffer.writeln();
  buffer.writeln(
      '// Uncomment the lines below to enable BuildContext extension');
  buffer.writeln(
      '// This provides easy access like: context.loc.localizations.hello');
  buffer.writeln('//');
  buffer.writeln("// import 'package:flutter/material.dart';");
  buffer.writeln("// import 'generated_localizations.dart';");
  buffer.writeln('//');
  buffer.writeln('// extension LocalizationsExtension on BuildContext {');
  buffer.writeln('//   $className get loc => $className.of(this);');
  buffer.writeln('// }');

  final file = File(path.join(outputDir, 'build_context_extension.dart'));
  await file.writeAsString(buffer.toString());
}