Skip to content

Commit e80407f

Browse files
committed
refactor(parse/css): change fields in CssParserSettings to Option
1 parent 7935235 commit e80407f

File tree

4 files changed

+39
-30
lines changed

4 files changed

+39
-30
lines changed

crates/biome_css_parser/tests/spec_test.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,11 @@ pub fn run(test_case: &str, _snapshot_name: &str, test_directory: &str, outcome_
6060

6161
let settings = settings.languages.css.parser;
6262

63-
if settings.css_modules {
63+
if settings.css_modules.unwrap_or_default() {
6464
options = options.allow_css_modules();
6565
}
6666

67-
if settings.allow_wrong_line_comments {
67+
if settings.allow_wrong_line_comments.unwrap_or_default() {
6868
options = options.allow_wrong_line_comments();
6969
}
7070

crates/biome_service/src/file_handlers/css.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ impl Default for CssLinterSettings {
8181
#[derive(Debug, Clone, Default, serde::Serialize, serde::Deserialize)]
8282
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8383
pub struct CssParserSettings {
84-
pub allow_wrong_line_comments: bool,
85-
pub css_modules: bool,
84+
pub allow_wrong_line_comments: Option<bool>,
85+
pub css_modules: Option<bool>,
8686
}
8787

8888
impl ServiceLanguage for CssLanguage {
@@ -217,10 +217,10 @@ fn parse(
217217
) -> ParseResult {
218218
let mut options = CssParserOptions {
219219
allow_wrong_line_comments: settings
220-
.map(|s| s.languages.css.parser.allow_wrong_line_comments)
220+
.and_then(|s| s.languages.css.parser.allow_wrong_line_comments)
221221
.unwrap_or_default(),
222222
css_modules: settings
223-
.map(|s| s.languages.css.parser.css_modules)
223+
.and_then(|s| s.languages.css.parser.css_modules)
224224
.unwrap_or_default(),
225225
};
226226
if let Some(settings) = settings {

crates/biome_service/src/settings.rs

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ use biome_configuration::diagnostics::InvalidIgnorePattern;
55
use biome_configuration::javascript::JsxRuntime;
66
use biome_configuration::organize_imports::OrganizeImports;
77
use biome_configuration::{
8-
push_to_analyzer_rules, BiomeDiagnostic, CssConfiguration, FilesConfiguration,
9-
FormatterConfiguration, JavascriptConfiguration, LinterConfiguration,
10-
OverrideFormatterConfiguration, OverrideLinterConfiguration,
11-
OverrideOrganizeImportsConfiguration, Overrides, PartialConfiguration, PartialCssConfiguration,
12-
PartialJavascriptConfiguration, PartialJsonConfiguration, PlainIndentStyle, Rules,
8+
push_to_analyzer_rules, BiomeDiagnostic, FilesConfiguration, FormatterConfiguration,
9+
JavascriptConfiguration, LinterConfiguration, OverrideFormatterConfiguration,
10+
OverrideLinterConfiguration, OverrideOrganizeImportsConfiguration, Overrides,
11+
PartialConfiguration, PartialCssConfiguration, PartialJavascriptConfiguration,
12+
PartialJsonConfiguration, PlainIndentStyle, Rules,
1313
};
1414
use biome_css_formatter::context::CssFormatOptions;
1515
use biome_css_parser::CssParserOptions;
@@ -216,7 +216,7 @@ impl Settings {
216216
}
217217
// css settings
218218
if let Some(css) = configuration.css {
219-
self.languages.css = CssConfiguration::from(css).into();
219+
self.languages.css = css.into();
220220
}
221221

222222
// NOTE: keep this last. Computing the overrides require reading the settings computed by the parent settings.
@@ -494,20 +494,25 @@ impl From<PartialJsonConfiguration> for LanguageSettings<JsonLanguage> {
494494
}
495495
}
496496

497-
impl From<CssConfiguration> for LanguageSettings<CssLanguage> {
498-
fn from(css: CssConfiguration) -> Self {
497+
impl From<PartialCssConfiguration> for LanguageSettings<CssLanguage> {
498+
fn from(css: PartialCssConfiguration) -> Self {
499499
let mut language_setting: LanguageSettings<CssLanguage> = LanguageSettings::default();
500500

501-
language_setting.parser.allow_wrong_line_comments = css.parser.allow_wrong_line_comments;
502-
language_setting.parser.css_modules = css.parser.css_modules;
503-
504-
language_setting.formatter.enabled = Some(css.formatter.enabled);
505-
language_setting.formatter.indent_width = css.formatter.indent_width;
506-
language_setting.formatter.indent_style = css.formatter.indent_style.map(Into::into);
507-
language_setting.formatter.line_width = css.formatter.line_width;
508-
language_setting.formatter.line_ending = css.formatter.line_ending;
509-
language_setting.formatter.quote_style = Some(css.formatter.quote_style);
510-
language_setting.linter.enabled = Some(css.linter.enabled);
501+
if let Some(parser) = css.parser {
502+
language_setting.parser.allow_wrong_line_comments = parser.allow_wrong_line_comments;
503+
language_setting.parser.css_modules = parser.css_modules;
504+
}
505+
if let Some(formatter) = css.formatter {
506+
language_setting.formatter.enabled = formatter.enabled;
507+
language_setting.formatter.indent_width = formatter.indent_width;
508+
language_setting.formatter.indent_style = formatter.indent_style.map(Into::into);
509+
language_setting.formatter.line_width = formatter.line_width;
510+
language_setting.formatter.line_ending = formatter.line_ending;
511+
language_setting.formatter.quote_style = formatter.quote_style;
512+
}
513+
if let Some(linter) = css.linter {
514+
language_setting.linter.enabled = linter.enabled;
515+
}
511516

512517
language_setting
513518
}
@@ -1130,8 +1135,12 @@ impl OverrideSettingPattern {
11301135

11311136
let css_parser = &self.languages.css.parser;
11321137

1133-
options.allow_wrong_line_comments = css_parser.allow_wrong_line_comments;
1134-
options.css_modules = css_parser.css_modules;
1138+
if let Some(allow_wrong_line_comments) = css_parser.allow_wrong_line_comments {
1139+
options.allow_wrong_line_comments = allow_wrong_line_comments;
1140+
}
1141+
if let Some(css_modules) = css_parser.css_modules {
1142+
options.css_modules = css_modules;
1143+
}
11351144

11361145
if let Ok(mut writeonly_cache) = self.cached_css_parser_options.write() {
11371146
let options = *options;
@@ -1365,8 +1374,8 @@ fn to_css_language_settings(
13651374
let parent_parser = &parent_settings.parser;
13661375
language_setting.parser.allow_wrong_line_comments = parser
13671376
.allow_wrong_line_comments
1368-
.unwrap_or(parent_parser.allow_wrong_line_comments);
1369-
language_setting.parser.css_modules = parser.css_modules.unwrap_or(parent_parser.css_modules);
1377+
.or(parent_parser.allow_wrong_line_comments);
1378+
language_setting.parser.css_modules = parser.css_modules.or(parent_parser.css_modules);
13701379

13711380
language_setting
13721381
}

crates/biome_unicode_table/src/tables.rs

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)