diff --git a/protoc_plugin/lib/protoc.dart b/protoc_plugin/lib/protoc.dart index e6d175bd7..f6001b365 100644 --- a/protoc_plugin/lib/protoc.dart +++ b/protoc_plugin/lib/protoc.dart @@ -1,5 +1,6 @@ import 'dart:convert'; +import 'package:dart_style/dart_style.dart'; import 'package:protobuf/protobuf.dart'; import 'const_generator.dart' show writeJsonConst; diff --git a/protoc_plugin/lib/src/file_generator.dart b/protoc_plugin/lib/src/file_generator.dart index f4c199498..ee05b55e9 100644 --- a/protoc_plugin/lib/src/file_generator.dart +++ b/protoc_plugin/lib/src/file_generator.dart @@ -223,6 +223,13 @@ class FileGenerator extends ProtobufContainer { List generateFiles(OutputConfiguration config) { if (!_linked) throw StateError('not linked'); + String formatDartCode(String code) { + final formatter = DartFormatter(); + + final formattedCode = formatter.format(code); + return formattedCode; + } + CodeGeneratorResponse_File makeFile(String extension, String content) { var protoUrl = Uri.file(descriptor.name); var dartUrl = config.outputPathFor(protoUrl, extension); @@ -235,9 +242,9 @@ class FileGenerator extends ProtobufContainer { var enumWriter = generateEnumFile(config); final files = [ - makeFile('.pb.dart', mainWriter.toString()), - makeFile('.pbenum.dart', enumWriter.toString()), - makeFile('.pbjson.dart', generateJsonFile(config)), + makeFile('.pb.dart', formatDartCode(mainWriter.toString())), + makeFile('.pbenum.dart', formatDartCode(enumWriter.toString())), + makeFile('.pbjson.dart', formatDartCode(generateJsonFile(config))), ]; if (options.generateMetadata) { diff --git a/protoc_plugin/pubspec.yaml b/protoc_plugin/pubspec.yaml index 26d02432b..ed5884308 100644 --- a/protoc_plugin/pubspec.yaml +++ b/protoc_plugin/pubspec.yaml @@ -7,15 +7,16 @@ environment: sdk: '>=2.17.0 <3.0.0' dependencies: + dart_style: ^2.2.3 fixnum: ^1.0.0 path: ^1.8.0 protobuf: ^2.0.0 dev_dependencies: collection: ^1.15.0 - lints: ^1.0.0 + lints: ^2.0.0 matcher: ^0.12.10 - test: ^1.16.0 + test: ^1.21.4 executables: protoc-gen-dart: protoc_plugin