summaryrefslogtreecommitdiff
path: root/cli/args/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/args/mod.rs')
-rw-r--r--cli/args/mod.rs33
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);