Skip to content

Commit 5e9416a

Browse files
committed
refactor: configuration, settings and options
1 parent 1fa96f3 commit 5e9416a

File tree

121 files changed

+2809
-2513
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

121 files changed

+2809
-2513
lines changed

crates/biome_cli/src/changed.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
use crate::CliDiagnostic;
2-
use biome_configuration::PartialConfiguration;
2+
use biome_configuration::Configuration;
33
use biome_fs::FileSystem;
44
use biome_service::DynRef;
55
use std::ffi::OsString;
66

77
pub(crate) fn get_changed_files(
88
fs: &DynRef<'_, dyn FileSystem>,
9-
configuration: &PartialConfiguration,
9+
configuration: &Configuration,
1010
since: Option<String>,
1111
) -> Result<Vec<OsString>, CliDiagnostic> {
1212
let default_branch = configuration

crates/biome_cli/src/commands/check.rs

+11-11
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,12 @@ use crate::{
77
execute_mode, setup_cli_subscriber, CliDiagnostic, CliSession, Execution, TraversalMode,
88
};
99
use biome_configuration::{
10-
organize_imports::PartialOrganizeImports, PartialConfiguration, PartialFormatterConfiguration,
11-
PartialLinterConfiguration,
10+
organize_imports::OrganizeImports, Configuration, FormatterConfiguration, LinterConfiguration,
1211
};
1312
use biome_console::{markup, ConsoleExt};
1413
use biome_deserialize::Merge;
1514
use biome_diagnostics::PrintDiagnostic;
16-
use biome_service::configuration::{load_editorconfig, PartialConfigurationExt};
15+
use biome_service::configuration::{load_editorconfig, ConfigurationExt};
1716
use biome_service::workspace::RegisterProjectFolderParams;
1817
use biome_service::{
1918
configuration::{load_configuration, LoadedConfiguration},
@@ -30,7 +29,7 @@ pub(crate) struct CheckCommandPayload {
3029
pub(crate) fix: bool,
3130
pub(crate) unsafe_: bool,
3231
pub(crate) cli_options: CliOptions,
33-
pub(crate) configuration: Option<PartialConfiguration>,
32+
pub(crate) configuration: Option<Configuration>,
3433
pub(crate) paths: Vec<OsString>,
3534
pub(crate) stdin_file_path: Option<String>,
3635
pub(crate) formatter_enabled: Option<bool>,
@@ -103,7 +102,8 @@ pub(crate) fn check(
103102
.as_ref()
104103
.and_then(|f| f.use_editorconfig)
105104
.unwrap_or_default(),
106-
);
105+
)
106+
.into();
107107
let mut fs_configuration = if should_use_editorconfig {
108108
let (editorconfig, editorconfig_diagnostics) = {
109109
let search_path = editorconfig_search_path.unwrap_or_else(|| {
@@ -126,26 +126,26 @@ pub(crate) fn check(
126126

127127
let formatter = fs_configuration
128128
.formatter
129-
.get_or_insert_with(PartialFormatterConfiguration::default);
129+
.get_or_insert_with(FormatterConfiguration::default);
130130

131131
if formatter_enabled.is_some() {
132-
formatter.enabled = formatter_enabled;
132+
formatter.enabled = formatter_enabled.map(Into::into);
133133
}
134134

135135
let linter = fs_configuration
136136
.linter
137-
.get_or_insert_with(PartialLinterConfiguration::default);
137+
.get_or_insert_with(LinterConfiguration::default);
138138

139139
if linter_enabled.is_some() {
140-
linter.enabled = linter_enabled;
140+
linter.enabled = linter_enabled.map(Into::into);
141141
}
142142

143143
let organize_imports = fs_configuration
144144
.organize_imports
145-
.get_or_insert_with(PartialOrganizeImports::default);
145+
.get_or_insert_with(OrganizeImports::default);
146146

147147
if organize_imports_enabled.is_some() {
148-
organize_imports.enabled = organize_imports_enabled;
148+
organize_imports.enabled = organize_imports_enabled.map(Into::into);
149149
}
150150

151151
if let Some(mut configuration) = configuration {

crates/biome_cli/src/commands/ci.rs

+18-18
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,10 @@ use crate::cli_options::CliOptions;
33
use crate::commands::{resolve_manifest, validate_configuration_diagnostics};
44
use crate::execute::VcsTargeted;
55
use crate::{execute_mode, setup_cli_subscriber, CliDiagnostic, CliSession, Execution};
6-
use biome_configuration::{organize_imports::PartialOrganizeImports, PartialConfiguration};
7-
use biome_configuration::{PartialFormatterConfiguration, PartialLinterConfiguration};
6+
use biome_configuration::{organize_imports::OrganizeImports, Configuration};
7+
use biome_configuration::{FormatterConfiguration, LinterConfiguration};
88
use biome_deserialize::Merge;
9-
use biome_service::configuration::{
10-
load_configuration, LoadedConfiguration, PartialConfigurationExt,
11-
};
9+
use biome_service::configuration::{load_configuration, ConfigurationExt, LoadedConfiguration};
1210
use biome_service::workspace::{RegisterProjectFolderParams, UpdateSettingsParams};
1311
use std::ffi::OsString;
1412

@@ -17,7 +15,8 @@ pub(crate) struct CiCommandPayload {
1715
pub(crate) linter_enabled: Option<bool>,
1816
pub(crate) organize_imports_enabled: Option<bool>,
1917
pub(crate) paths: Vec<OsString>,
20-
pub(crate) configuration: Option<PartialConfiguration>,
18+
// TODO(zzwu): What's the purpose of this option?
19+
pub(crate) configuration: Option<Configuration>,
2120
pub(crate) cli_options: CliOptions,
2221
pub(crate) changed: bool,
2322
pub(crate) since: Option<String>,
@@ -54,35 +53,36 @@ pub(crate) fn ci(session: CliSession, payload: CiCommandPayload) -> Result<(), C
5453
} = loaded_configuration;
5554
let formatter = fs_configuration
5655
.formatter
57-
.get_or_insert_with(PartialFormatterConfiguration::default);
56+
.get_or_insert_with(FormatterConfiguration::default);
5857

5958
if formatter_enabled.is_some() {
60-
formatter.enabled = formatter_enabled;
59+
formatter.enabled = formatter_enabled.map(Into::into);
6160
}
6261

6362
let linter = fs_configuration
6463
.linter
65-
.get_or_insert_with(PartialLinterConfiguration::default);
64+
.get_or_insert_with(LinterConfiguration::default);
6665

6766
if linter_enabled.is_some() {
68-
linter.enabled = linter_enabled;
67+
linter.enabled = linter_enabled.map(Into::into);
6968
}
7069

7170
let organize_imports = fs_configuration
7271
.organize_imports
73-
.get_or_insert_with(PartialOrganizeImports::default);
72+
.get_or_insert_with(OrganizeImports::default);
7473

7574
if organize_imports_enabled.is_some() {
76-
organize_imports.enabled = organize_imports_enabled;
75+
organize_imports.enabled = organize_imports_enabled.map(Into::into);
7776
}
7877

78+
// TODO(zzwu): We shouldn't bail because overrides can re-enable these options
7979
// no point in doing the traversal if all the checks have been disabled
80-
if fs_configuration.is_formatter_disabled()
81-
&& fs_configuration.is_linter_disabled()
82-
&& fs_configuration.is_organize_imports_disabled()
83-
{
84-
return Err(CliDiagnostic::incompatible_end_configuration("Formatter, linter and organize imports are disabled, can't perform the command. This is probably and error."));
85-
}
80+
// if !fs_configuration.is_formatter_enabled()
81+
// && !fs_configuration.is_linter_enabled()
82+
// && !fs_configuration.is_organize_imports_enabled()
83+
// {
84+
// return Err(CliDiagnostic::incompatible_end_configuration("Formatter, linter and organize imports are disabled, can't perform the command. This is probably and error."));
85+
// }
8686

8787
if let Some(mut configuration) = configuration {
8888
if let Some(linter) = configuration.linter.as_mut() {

crates/biome_cli/src/commands/format.rs

+15-14
Original file line numberDiff line numberDiff line change
@@ -7,30 +7,30 @@ use crate::execute::VcsTargeted;
77
use crate::{
88
execute_mode, setup_cli_subscriber, CliDiagnostic, CliSession, Execution, TraversalMode,
99
};
10-
use biome_configuration::vcs::PartialVcsConfiguration;
10+
use biome_configuration::vcs::VcsConfiguration;
1111
use biome_configuration::{
12-
PartialCssFormatter, PartialFilesConfiguration, PartialFormatterConfiguration,
13-
PartialGraphqlFormatter, PartialJavascriptFormatter, PartialJsonFormatter,
12+
CssFormatterConfiguration, FilesConfiguration, FormatterConfiguration,
13+
GraphqlFormatterConfiguration, JsFormatterConfiguration, JsonFormatterConfiguration,
1414
};
1515
use biome_console::{markup, ConsoleExt};
1616
use biome_deserialize::Merge;
1717
use biome_diagnostics::PrintDiagnostic;
1818
use biome_service::configuration::{
19-
load_configuration, load_editorconfig, LoadedConfiguration, PartialConfigurationExt,
19+
load_configuration, load_editorconfig, ConfigurationExt, LoadedConfiguration,
2020
};
2121
use biome_service::workspace::{RegisterProjectFolderParams, UpdateSettingsParams};
2222
use std::ffi::OsString;
2323

2424
use super::check_fix_incompatible_arguments;
2525

2626
pub(crate) struct FormatCommandPayload {
27-
pub(crate) javascript_formatter: Option<PartialJavascriptFormatter>,
28-
pub(crate) json_formatter: Option<PartialJsonFormatter>,
29-
pub(crate) css_formatter: Option<PartialCssFormatter>,
30-
pub(crate) graphql_formatter: Option<PartialGraphqlFormatter>,
31-
pub(crate) formatter_configuration: Option<PartialFormatterConfiguration>,
32-
pub(crate) vcs_configuration: Option<PartialVcsConfiguration>,
33-
pub(crate) files_configuration: Option<PartialFilesConfiguration>,
27+
pub(crate) javascript_formatter: Option<JsFormatterConfiguration>,
28+
pub(crate) json_formatter: Option<JsonFormatterConfiguration>,
29+
pub(crate) css_formatter: Option<CssFormatterConfiguration>,
30+
pub(crate) graphql_formatter: Option<GraphqlFormatterConfiguration>,
31+
pub(crate) formatter_configuration: Option<FormatterConfiguration>,
32+
pub(crate) vcs_configuration: Option<VcsConfiguration>,
33+
pub(crate) files_configuration: Option<FilesConfiguration>,
3434
pub(crate) stdin_file_path: Option<String>,
3535
pub(crate) write: bool,
3636
pub(crate) fix: bool,
@@ -99,7 +99,8 @@ pub(crate) fn format(
9999
.as_ref()
100100
.and_then(|f| f.use_editorconfig)
101101
.unwrap_or_default(),
102-
);
102+
)
103+
.into();
103104
let mut fs_configuration = if should_use_editorconfig {
104105
let (editorconfig, editorconfig_diagnostics) = {
105106
let search_path = editorconfig_search_path.unwrap_or_else(|| {
@@ -185,14 +186,14 @@ pub(crate) fn format(
185186
if !configuration
186187
.formatter
187188
.as_ref()
188-
.is_some_and(PartialFormatterConfiguration::is_disabled)
189+
.is_some_and(FormatterConfiguration::is_disabled)
189190
{
190191
let formatter = configuration.formatter.get_or_insert_with(Default::default);
191192
if let Some(formatter_configuration) = formatter_configuration {
192193
formatter.merge_with(formatter_configuration);
193194
}
194195

195-
formatter.enabled = Some(true);
196+
formatter.enabled = Some(true.into());
196197
}
197198
if css_formatter.is_some() {
198199
let css = configuration.css.get_or_insert_with(Default::default);

crates/biome_cli/src/commands/init.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
use crate::{CliDiagnostic, CliSession};
2-
use biome_configuration::PartialConfiguration;
2+
use biome_configuration::Configuration;
33
use biome_console::{markup, ConsoleExt};
44
use biome_fs::ConfigName;
55
use biome_service::configuration::create_config;
66

77
pub(crate) fn init(mut session: CliSession, emit_jsonc: bool) -> Result<(), CliDiagnostic> {
88
let fs = &mut session.app.fs;
9-
create_config(fs, PartialConfiguration::init(), emit_jsonc)?;
9+
create_config(fs, Configuration::init(), emit_jsonc)?;
1010
let file_created = if emit_jsonc {
1111
ConfigName::biome_jsonc()
1212
} else {

crates/biome_cli/src/commands/lint.rs

+16-20
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,15 @@ use crate::execute::VcsTargeted;
66
use crate::{
77
execute_mode, setup_cli_subscriber, CliDiagnostic, CliSession, Execution, TraversalMode,
88
};
9-
use biome_configuration::css::PartialCssLinter;
10-
use biome_configuration::javascript::PartialJavascriptLinter;
11-
use biome_configuration::json::PartialJsonLinter;
9+
use biome_configuration::css::CssLinterConfiguration;
10+
use biome_configuration::graphql::GraphqlLinterConfiguration;
11+
use biome_configuration::javascript::JsLinterConfiguration;
12+
use biome_configuration::json::JsonLinterConfiguration;
1213
use biome_configuration::linter::RuleSelector;
13-
use biome_configuration::vcs::PartialVcsConfiguration;
14-
use biome_configuration::{
15-
PartialConfiguration, PartialFilesConfiguration, PartialGraphqlLinter,
16-
PartialLinterConfiguration,
17-
};
14+
use biome_configuration::vcs::VcsConfiguration;
15+
use biome_configuration::{Configuration, FilesConfiguration, LinterConfiguration};
1816
use biome_deserialize::Merge;
19-
use biome_service::configuration::{
20-
load_configuration, LoadedConfiguration, PartialConfigurationExt,
21-
};
17+
use biome_service::configuration::{load_configuration, ConfigurationExt, LoadedConfiguration};
2218
use biome_service::workspace::{RegisterProjectFolderParams, UpdateSettingsParams};
2319
use std::ffi::OsString;
2420

@@ -31,20 +27,20 @@ pub(crate) struct LintCommandPayload {
3127
pub(crate) fix: bool,
3228
pub(crate) unsafe_: bool,
3329
pub(crate) cli_options: CliOptions,
34-
pub(crate) linter_configuration: Option<PartialLinterConfiguration>,
35-
pub(crate) vcs_configuration: Option<PartialVcsConfiguration>,
36-
pub(crate) files_configuration: Option<PartialFilesConfiguration>,
30+
pub(crate) linter_configuration: Option<LinterConfiguration>,
31+
pub(crate) vcs_configuration: Option<VcsConfiguration>,
32+
pub(crate) files_configuration: Option<FilesConfiguration>,
3733
pub(crate) paths: Vec<OsString>,
3834
pub(crate) only: Vec<RuleSelector>,
3935
pub(crate) skip: Vec<RuleSelector>,
4036
pub(crate) stdin_file_path: Option<String>,
4137
pub(crate) staged: bool,
4238
pub(crate) changed: bool,
4339
pub(crate) since: Option<String>,
44-
pub(crate) javascript_linter: Option<PartialJavascriptLinter>,
45-
pub(crate) json_linter: Option<PartialJsonLinter>,
46-
pub(crate) css_linter: Option<PartialCssLinter>,
47-
pub(crate) graphql_linter: Option<PartialGraphqlLinter>,
40+
pub(crate) javascript_linter: Option<JsLinterConfiguration>,
41+
pub(crate) json_linter: Option<JsonLinterConfiguration>,
42+
pub(crate) css_linter: Option<CssLinterConfiguration>,
43+
pub(crate) graphql_linter: Option<GraphqlLinterConfiguration>,
4844
}
4945

5046
/// Handler for the "lint" command of the Biome CLI
@@ -98,11 +94,11 @@ pub(crate) fn lint(session: CliSession, payload: LintCommandPayload) -> Result<(
9894
directory_path: configuration_path,
9995
..
10096
} = loaded_configuration;
101-
fs_configuration.merge_with(PartialConfiguration {
97+
fs_configuration.merge_with(Configuration {
10298
linter: if fs_configuration
10399
.linter
104100
.as_ref()
105-
.is_some_and(PartialLinterConfiguration::is_disabled)
101+
.is_some_and(LinterConfiguration::is_disabled)
106102
{
107103
None
108104
} else {

0 commit comments

Comments
 (0)