11import 'dart:io' ;
22
3+ // import 'package:collection/collection.dart';
4+ // import 'package:dart_style/dart_style.dart' show TrailingCommas;
35import 'package:flutter_gen_core/settings/config_default.dart' ;
46import 'package:flutter_gen_core/settings/pubspec.dart' ;
57import 'package:flutter_gen_core/utils/cast.dart' show safeCast;
@@ -16,11 +18,18 @@ class Config {
1618 required this .pubspec,
1719 required this .pubspecFile,
1820 required this .sdkConstraint,
21+ // required this.formatterTrailingCommas,
22+ required this .formatterPageWidth,
1923 });
2024
2125 final Pubspec pubspec;
2226 final File pubspecFile;
2327 final VersionConstraint ? sdkConstraint;
28+
29+ // TODO(ANYONE): Allow passing the trailing commas option after the SDK constraint was bumped to ^3.7.
30+ // final TrailingCommas? formatterTrailingCommas;
31+
32+ final int ? formatterPageWidth;
2433}
2534
2635Config loadPubspecConfig (File pubspecFile, {File ? buildFile}) {
@@ -102,10 +111,30 @@ Config loadPubspecConfig(File pubspecFile, {File? buildFile}) {
102111 sdkConstraint = VersionConstraint .parse (sdk);
103112 }
104113
114+ final analysisOptionsFile = File (
115+ normalize (join (basename (pubspecFile.parent.path), 'analysis_options.yaml' )),
116+ );
117+ final analysisOptionsContent = switch (analysisOptionsFile.existsSync ()) {
118+ true => analysisOptionsFile.readAsStringSync (),
119+ false => '' ,
120+ };
121+ final analysisOptionsMap = loadYaml (analysisOptionsContent) as YamlMap ? ;
122+ // final formatterTrailingCommas = switch (safeCast<String>(
123+ // analysisOptionsMap?['formatter']?['trailing_commas'],
124+ // )) {
125+ // final s? => TrailingCommas.values.firstWhereOrNull((e) => e.name == s),
126+ // _ => null,
127+ // };
128+ final formatterPageWidth = safeCast <int >(
129+ analysisOptionsMap? ['formatter' ]? ['page_width' ],
130+ );
131+
105132 return Config ._(
106133 pubspec: pubspec,
107134 pubspecFile: pubspecFile,
108135 sdkConstraint: sdkConstraint,
136+ // formatterTrailingCommas: formatterTrailingCommas,
137+ formatterPageWidth: formatterPageWidth,
109138 );
110139}
111140
0 commit comments