diff options
Diffstat (limited to 'cli/args/mod.rs')
-rw-r--r-- | cli/args/mod.rs | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/cli/args/mod.rs b/cli/args/mod.rs index 3d35d8c36..fcc1a8d7c 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -279,9 +279,15 @@ impl BenchOptions { } } +#[derive(Clone, Debug, Default, PartialEq, Eq, Hash)] +pub struct UnstableFmtOptions { + pub yaml: bool, +} + #[derive(Clone, Debug)] pub struct FmtOptions { pub options: FmtOptionsConfig, + pub unstable: UnstableFmtOptions, pub files: FilePatterns, } @@ -295,13 +301,21 @@ impl FmtOptions { pub fn new_with_base(base: PathBuf) -> Self { Self { options: FmtOptionsConfig::default(), + unstable: Default::default(), files: FilePatterns::new_with_base(base), } } - pub fn resolve(fmt_config: FmtConfig, fmt_flags: &FmtFlags) -> Self { + pub fn resolve( + fmt_config: FmtConfig, + unstable: UnstableFmtOptions, + fmt_flags: &FmtFlags, + ) -> Self { Self { options: resolve_fmt_options(fmt_flags, fmt_config.options), + unstable: UnstableFmtOptions { + yaml: unstable.yaml || fmt_flags.unstable_yaml, + }, files: fmt_config.files, } } @@ -1306,14 +1320,21 @@ impl CliOptions { let member_configs = self .workspace() .resolve_fmt_config_for_members(&cli_arg_patterns)?; + let unstable = self.resolve_config_unstable_fmt_options(); let mut result = Vec::with_capacity(member_configs.len()); for (ctx, config) in member_configs { - let options = FmtOptions::resolve(config, fmt_flags); + let options = FmtOptions::resolve(config, unstable.clone(), fmt_flags); result.push((ctx, options)); } Ok(result) } + pub fn resolve_config_unstable_fmt_options(&self) -> UnstableFmtOptions { + UnstableFmtOptions { + yaml: self.workspace().has_unstable("fmt-yaml"), + } + } + pub fn resolve_workspace_lint_options( &self, lint_flags: &LintFlags, @@ -1640,8 +1661,12 @@ impl CliOptions { .map(|granular_flag| granular_flag.0) .collect(); - let mut another_unstable_flags = - Vec::from(["sloppy-imports", "byonm", "bare-node-builtins"]); + let mut another_unstable_flags = Vec::from([ + "sloppy-imports", + "byonm", + "bare-node-builtins", + "fmt-yaml", + ]); // add more unstable flags to the same vector holding granular flags all_valid_unstable_flags.append(&mut another_unstable_flags); |