resolve method
Implementation
Map<String, dynamic> resolve(ArgResults args, {required String usage}) {
final options = _resolveOptions(args, usage: usage);
// Normalize seed_color: YAML may parse unquoted hex (e.g. 0xFF2196F3)
// as an int. Convert it back to a hex string.
final seedColor = options['seed_color'];
if (seedColor is int) {
options['seed_color'] =
'0x${seedColor.toRadixString(16).toUpperCase().padLeft(8, '0')}';
} else if (seedColor is String &&
seedColor.isNotEmpty &&
!seedColor.startsWith('0x')) {
options['seed_color'] = _normalizeHexColor(seedColor, usage: usage);
}
// analysis_options is a top-level config section (not under `defaults`),
// so it is loaded independently and merged regardless of whether a preset,
// flags, config defaults, or interactive prompt produced the base options.
final analysisOptions = ConfigLoader.loadAnalysisOptions(
workingDirectory: _workingDirectory,
homeDirectory: _homeDirectory,
);
if (analysisOptions != null) {
options['analysis_options'] = analysisOptions;
}
return options;
}