resolve method

Map<String, dynamic> resolve(
  1. ArgResults args, {
  2. required String usage,
})

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;
}