From 5f4a8c5d30c23cfdf0a1352fc974c1dfb1829e90 Mon Sep 17 00:00:00 2001 From: ty <62130798+togami2864@users.noreply.github.com> Date: Fri, 6 Sep 2024 23:04:30 +0900 Subject: [PATCH] chore(linter): rename `useConsistentGridAreas` to `noInvalidGridAreas` (#3809) --- .../src/analyzer/linter/rules.rs | 148 +++++++++--------- crates/biome_css_analyze/src/lint/nursery.rs | 4 +- ...grid_areas.rs => no_invalid_grid_areas.rs} | 6 +- crates/biome_css_analyze/src/options.rs | 3 +- .../invalid.css | 0 .../invalid.css.snap | 20 +-- .../valid.css | 0 .../valid.css.snap | 0 .../src/categories.rs | 2 +- .../@biomejs/backend-jsonrpc/src/workspace.ts | 10 +- .../@biomejs/biome/configuration_schema.json | 14 +- 11 files changed, 104 insertions(+), 103 deletions(-) rename crates/biome_css_analyze/src/lint/nursery/{use_consistent_grid_areas.rs => no_invalid_grid_areas.rs} (98%) rename crates/biome_css_analyze/tests/specs/nursery/{useConsistentGridAreas => noInvalidGridAreas}/invalid.css (100%) rename crates/biome_css_analyze/tests/specs/nursery/{useConsistentGridAreas => noInvalidGridAreas}/invalid.css.snap (85%) rename crates/biome_css_analyze/tests/specs/nursery/{useConsistentGridAreas => noInvalidGridAreas}/valid.css (100%) rename crates/biome_css_analyze/tests/specs/nursery/{useConsistentGridAreas => noInvalidGridAreas}/valid.css.snap (100%) diff --git a/crates/biome_configuration/src/analyzer/linter/rules.rs b/crates/biome_configuration/src/analyzer/linter/rules.rs index e383a1117fa2..f2fefc237332 100644 --- a/crates/biome_configuration/src/analyzer/linter/rules.rs +++ b/crates/biome_configuration/src/analyzer/linter/rules.rs @@ -2920,6 +2920,10 @@ pub struct Nursery { #[serde(skip_serializing_if = "Option::is_none")] pub no_invalid_direction_in_linear_gradient: Option>, + #[doc = "Disallows invalid named grid areas in CSS Grid Layouts."] + #[serde(skip_serializing_if = "Option::is_none")] + pub no_invalid_grid_areas: + Option>, #[doc = "Disallow the use of @import at-rules in invalid positions."] #[serde(skip_serializing_if = "Option::is_none")] pub no_invalid_position_at_import_rule: @@ -3029,10 +3033,6 @@ pub struct Nursery { #[serde(skip_serializing_if = "Option::is_none")] pub use_consistent_curly_braces: Option>, - #[doc = "Disallows invalid named grid areas in CSS Grid Layouts."] - #[serde(skip_serializing_if = "Option::is_none")] - pub use_consistent_grid_areas: - Option>, #[doc = "Require consistent accessibility modifiers on class properties and methods."] #[serde(skip_serializing_if = "Option::is_none")] pub use_consistent_member_accessibility: @@ -3137,6 +3137,7 @@ impl Nursery { "noExportedImports", "noImportantInKeyframe", "noInvalidDirectionInLinearGradient", + "noInvalidGridAreas", "noInvalidPositionAtImportRule", "noIrregularWhitespace", "noLabelWithoutControl", @@ -3165,7 +3166,6 @@ impl Nursery { "useAriaPropsSupportedByRole", "useConsistentBuiltinInstantiation", "useConsistentCurlyBraces", - "useConsistentGridAreas", "useConsistentMemberAccessibility", "useDateNow", "useDefaultSwitchClause", @@ -3224,17 +3224,17 @@ impl Nursery { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[40]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[43]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[46]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[49]), @@ -3391,147 +3391,147 @@ impl Nursery { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); } } - if let Some(rule) = self.no_invalid_position_at_import_rule.as_ref() { + if let Some(rule) = self.no_invalid_grid_areas.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); } } - if let Some(rule) = self.no_irregular_whitespace.as_ref() { + if let Some(rule) = self.no_invalid_position_at_import_rule.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); } } - if let Some(rule) = self.no_label_without_control.as_ref() { + if let Some(rule) = self.no_irregular_whitespace.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); } } - if let Some(rule) = self.no_misplaced_assertion.as_ref() { + if let Some(rule) = self.no_label_without_control.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); } } - if let Some(rule) = self.no_react_specific_props.as_ref() { + if let Some(rule) = self.no_misplaced_assertion.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); } } - if let Some(rule) = self.no_restricted_imports.as_ref() { + if let Some(rule) = self.no_react_specific_props.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); } } - if let Some(rule) = self.no_restricted_types.as_ref() { + if let Some(rule) = self.no_restricted_imports.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); } } - if let Some(rule) = self.no_shorthand_property_overrides.as_ref() { + if let Some(rule) = self.no_restricted_types.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21])); } } - if let Some(rule) = self.no_static_element_interactions.as_ref() { + if let Some(rule) = self.no_shorthand_property_overrides.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22])); } } - if let Some(rule) = self.no_substr.as_ref() { + if let Some(rule) = self.no_static_element_interactions.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23])); } } - if let Some(rule) = self.no_undeclared_dependencies.as_ref() { + if let Some(rule) = self.no_substr.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[24])); } } - if let Some(rule) = self.no_unknown_function.as_ref() { + if let Some(rule) = self.no_undeclared_dependencies.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25])); } } - if let Some(rule) = self.no_unknown_media_feature_name.as_ref() { + if let Some(rule) = self.no_unknown_function.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26])); } } - if let Some(rule) = self.no_unknown_property.as_ref() { + if let Some(rule) = self.no_unknown_media_feature_name.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27])); } } - if let Some(rule) = self.no_unknown_pseudo_class_selector.as_ref() { + if let Some(rule) = self.no_unknown_property.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28])); } } - if let Some(rule) = self.no_unknown_selector_pseudo_element.as_ref() { + if let Some(rule) = self.no_unknown_pseudo_class_selector.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29])); } } - if let Some(rule) = self.no_unknown_unit.as_ref() { + if let Some(rule) = self.no_unknown_selector_pseudo_element.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30])); } } - if let Some(rule) = self.no_unmatchable_anb_selector.as_ref() { + if let Some(rule) = self.no_unknown_unit.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31])); } } - if let Some(rule) = self.no_unused_function_parameters.as_ref() { + if let Some(rule) = self.no_unmatchable_anb_selector.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32])); } } - if let Some(rule) = self.no_useless_escape_in_regex.as_ref() { + if let Some(rule) = self.no_unused_function_parameters.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33])); } } - if let Some(rule) = self.no_useless_string_concat.as_ref() { + if let Some(rule) = self.no_useless_escape_in_regex.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34])); } } - if let Some(rule) = self.no_useless_undefined_initialization.as_ref() { + if let Some(rule) = self.no_useless_string_concat.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35])); } } - if let Some(rule) = self.no_value_at_rule.as_ref() { + if let Some(rule) = self.no_useless_undefined_initialization.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36])); } } - if let Some(rule) = self.no_yoda_expression.as_ref() { + if let Some(rule) = self.no_value_at_rule.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[37])); } } - if let Some(rule) = self.use_adjacent_overload_signatures.as_ref() { + if let Some(rule) = self.no_yoda_expression.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[38])); } } - if let Some(rule) = self.use_aria_props_supported_by_role.as_ref() { + if let Some(rule) = self.use_adjacent_overload_signatures.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39])); } } - if let Some(rule) = self.use_consistent_builtin_instantiation.as_ref() { + if let Some(rule) = self.use_aria_props_supported_by_role.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[40])); } } - if let Some(rule) = self.use_consistent_curly_braces.as_ref() { + if let Some(rule) = self.use_consistent_builtin_instantiation.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[41])); } } - if let Some(rule) = self.use_consistent_grid_areas.as_ref() { + if let Some(rule) = self.use_consistent_curly_braces.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[42])); } @@ -3705,147 +3705,147 @@ impl Nursery { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); } } - if let Some(rule) = self.no_invalid_position_at_import_rule.as_ref() { + if let Some(rule) = self.no_invalid_grid_areas.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); } } - if let Some(rule) = self.no_irregular_whitespace.as_ref() { + if let Some(rule) = self.no_invalid_position_at_import_rule.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); } } - if let Some(rule) = self.no_label_without_control.as_ref() { + if let Some(rule) = self.no_irregular_whitespace.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); } } - if let Some(rule) = self.no_misplaced_assertion.as_ref() { + if let Some(rule) = self.no_label_without_control.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); } } - if let Some(rule) = self.no_react_specific_props.as_ref() { + if let Some(rule) = self.no_misplaced_assertion.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); } } - if let Some(rule) = self.no_restricted_imports.as_ref() { + if let Some(rule) = self.no_react_specific_props.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); } } - if let Some(rule) = self.no_restricted_types.as_ref() { + if let Some(rule) = self.no_restricted_imports.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); } } - if let Some(rule) = self.no_shorthand_property_overrides.as_ref() { + if let Some(rule) = self.no_restricted_types.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21])); } } - if let Some(rule) = self.no_static_element_interactions.as_ref() { + if let Some(rule) = self.no_shorthand_property_overrides.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22])); } } - if let Some(rule) = self.no_substr.as_ref() { + if let Some(rule) = self.no_static_element_interactions.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23])); } } - if let Some(rule) = self.no_undeclared_dependencies.as_ref() { + if let Some(rule) = self.no_substr.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[24])); } } - if let Some(rule) = self.no_unknown_function.as_ref() { + if let Some(rule) = self.no_undeclared_dependencies.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25])); } } - if let Some(rule) = self.no_unknown_media_feature_name.as_ref() { + if let Some(rule) = self.no_unknown_function.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26])); } } - if let Some(rule) = self.no_unknown_property.as_ref() { + if let Some(rule) = self.no_unknown_media_feature_name.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27])); } } - if let Some(rule) = self.no_unknown_pseudo_class_selector.as_ref() { + if let Some(rule) = self.no_unknown_property.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28])); } } - if let Some(rule) = self.no_unknown_selector_pseudo_element.as_ref() { + if let Some(rule) = self.no_unknown_pseudo_class_selector.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29])); } } - if let Some(rule) = self.no_unknown_unit.as_ref() { + if let Some(rule) = self.no_unknown_selector_pseudo_element.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30])); } } - if let Some(rule) = self.no_unmatchable_anb_selector.as_ref() { + if let Some(rule) = self.no_unknown_unit.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31])); } } - if let Some(rule) = self.no_unused_function_parameters.as_ref() { + if let Some(rule) = self.no_unmatchable_anb_selector.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32])); } } - if let Some(rule) = self.no_useless_escape_in_regex.as_ref() { + if let Some(rule) = self.no_unused_function_parameters.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33])); } } - if let Some(rule) = self.no_useless_string_concat.as_ref() { + if let Some(rule) = self.no_useless_escape_in_regex.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34])); } } - if let Some(rule) = self.no_useless_undefined_initialization.as_ref() { + if let Some(rule) = self.no_useless_string_concat.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35])); } } - if let Some(rule) = self.no_value_at_rule.as_ref() { + if let Some(rule) = self.no_useless_undefined_initialization.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36])); } } - if let Some(rule) = self.no_yoda_expression.as_ref() { + if let Some(rule) = self.no_value_at_rule.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[37])); } } - if let Some(rule) = self.use_adjacent_overload_signatures.as_ref() { + if let Some(rule) = self.no_yoda_expression.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[38])); } } - if let Some(rule) = self.use_aria_props_supported_by_role.as_ref() { + if let Some(rule) = self.use_adjacent_overload_signatures.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39])); } } - if let Some(rule) = self.use_consistent_builtin_instantiation.as_ref() { + if let Some(rule) = self.use_aria_props_supported_by_role.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[40])); } } - if let Some(rule) = self.use_consistent_curly_braces.as_ref() { + if let Some(rule) = self.use_consistent_builtin_instantiation.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[41])); } } - if let Some(rule) = self.use_consistent_grid_areas.as_ref() { + if let Some(rule) = self.use_consistent_curly_braces.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[42])); } @@ -4037,6 +4037,10 @@ impl Nursery { .no_invalid_direction_in_linear_gradient .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "noInvalidGridAreas" => self + .no_invalid_grid_areas + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "noInvalidPositionAtImportRule" => self .no_invalid_position_at_import_rule .as_ref() @@ -4149,10 +4153,6 @@ impl Nursery { .use_consistent_curly_braces .as_ref() .map(|conf| (conf.level(), conf.get_options())), - "useConsistentGridAreas" => self - .use_consistent_grid_areas - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), "useConsistentMemberAccessibility" => self .use_consistent_member_accessibility .as_ref() diff --git a/crates/biome_css_analyze/src/lint/nursery.rs b/crates/biome_css_analyze/src/lint/nursery.rs index 9f8756a5435d..8cb259df2a84 100644 --- a/crates/biome_css_analyze/src/lint/nursery.rs +++ b/crates/biome_css_analyze/src/lint/nursery.rs @@ -8,6 +8,7 @@ pub mod no_duplicate_selectors_keyframe_block; pub mod no_empty_block; pub mod no_important_in_keyframe; pub mod no_invalid_direction_in_linear_gradient; +pub mod no_invalid_grid_areas; pub mod no_invalid_position_at_import_rule; pub mod no_irregular_whitespace; pub mod no_shorthand_property_overrides; @@ -19,7 +20,6 @@ pub mod no_unknown_selector_pseudo_element; pub mod no_unknown_unit; pub mod no_unmatchable_anb_selector; pub mod no_value_at_rule; -pub mod use_consistent_grid_areas; pub mod use_generic_font_names; declare_lint_group! { @@ -32,6 +32,7 @@ declare_lint_group! { self :: no_empty_block :: NoEmptyBlock , self :: no_important_in_keyframe :: NoImportantInKeyframe , self :: no_invalid_direction_in_linear_gradient :: NoInvalidDirectionInLinearGradient , + self :: no_invalid_grid_areas :: NoInvalidGridAreas , self :: no_invalid_position_at_import_rule :: NoInvalidPositionAtImportRule , self :: no_irregular_whitespace :: NoIrregularWhitespace , self :: no_shorthand_property_overrides :: NoShorthandPropertyOverrides , @@ -43,7 +44,6 @@ declare_lint_group! { self :: no_unknown_unit :: NoUnknownUnit , self :: no_unmatchable_anb_selector :: NoUnmatchableAnbSelector , self :: no_value_at_rule :: NoValueAtRule , - self :: use_consistent_grid_areas :: UseConsistentGridAreas , self :: use_generic_font_names :: UseGenericFontNames , ] } diff --git a/crates/biome_css_analyze/src/lint/nursery/use_consistent_grid_areas.rs b/crates/biome_css_analyze/src/lint/nursery/no_invalid_grid_areas.rs similarity index 98% rename from crates/biome_css_analyze/src/lint/nursery/use_consistent_grid_areas.rs rename to crates/biome_css_analyze/src/lint/nursery/no_invalid_grid_areas.rs index 4fa6131cbb1c..c4a44b0766d4 100644 --- a/crates/biome_css_analyze/src/lint/nursery/use_consistent_grid_areas.rs +++ b/crates/biome_css_analyze/src/lint/nursery/no_invalid_grid_areas.rs @@ -48,9 +48,9 @@ declare_lint_rule! { /// "a a a"; } /// ``` /// - pub UseConsistentGridAreas { + pub NoInvalidGridAreas { version: "next", - name: "useConsistentGridAreas", + name: "noInvalidGridAreas", language: "css", recommended: false, sources: &[RuleSource::Stylelint("named-grid-areas-no-invalid")], @@ -73,7 +73,7 @@ pub struct UseConsistentGridAreasState { reason: GridAreaValidationError, } -impl Rule for UseConsistentGridAreas { +impl Rule for NoInvalidGridAreas { type Query = Ast; type State = UseConsistentGridAreasState; type Signals = Option; diff --git a/crates/biome_css_analyze/src/options.rs b/crates/biome_css_analyze/src/options.rs index 5b7f7b1810e1..6ae5fc95211d 100644 --- a/crates/biome_css_analyze/src/options.rs +++ b/crates/biome_css_analyze/src/options.rs @@ -10,6 +10,8 @@ pub type NoEmptyBlock = ::Options; pub type NoImportantInKeyframe = < lint :: nursery :: no_important_in_keyframe :: NoImportantInKeyframe as biome_analyze :: Rule > :: Options ; pub type NoInvalidDirectionInLinearGradient = < lint :: nursery :: no_invalid_direction_in_linear_gradient :: NoInvalidDirectionInLinearGradient as biome_analyze :: Rule > :: Options ; +pub type NoInvalidGridAreas = + ::Options; pub type NoInvalidPositionAtImportRule = < lint :: nursery :: no_invalid_position_at_import_rule :: NoInvalidPositionAtImportRule as biome_analyze :: Rule > :: Options ; pub type NoIrregularWhitespace = ::Options; @@ -26,6 +28,5 @@ pub type NoUnknownUnit = pub type NoUnmatchableAnbSelector = < lint :: nursery :: no_unmatchable_anb_selector :: NoUnmatchableAnbSelector as biome_analyze :: Rule > :: Options ; pub type NoValueAtRule = ::Options; -pub type UseConsistentGridAreas = < lint :: nursery :: use_consistent_grid_areas :: UseConsistentGridAreas as biome_analyze :: Rule > :: Options ; pub type UseGenericFontNames = ::Options; diff --git a/crates/biome_css_analyze/tests/specs/nursery/useConsistentGridAreas/invalid.css b/crates/biome_css_analyze/tests/specs/nursery/noInvalidGridAreas/invalid.css similarity index 100% rename from crates/biome_css_analyze/tests/specs/nursery/useConsistentGridAreas/invalid.css rename to crates/biome_css_analyze/tests/specs/nursery/noInvalidGridAreas/invalid.css diff --git a/crates/biome_css_analyze/tests/specs/nursery/useConsistentGridAreas/invalid.css.snap b/crates/biome_css_analyze/tests/specs/nursery/noInvalidGridAreas/invalid.css.snap similarity index 85% rename from crates/biome_css_analyze/tests/specs/nursery/useConsistentGridAreas/invalid.css.snap rename to crates/biome_css_analyze/tests/specs/nursery/noInvalidGridAreas/invalid.css.snap index 16c8e4b54ce5..90975df85f82 100644 --- a/crates/biome_css_analyze/tests/specs/nursery/useConsistentGridAreas/invalid.css.snap +++ b/crates/biome_css_analyze/tests/specs/nursery/noInvalidGridAreas/invalid.css.snap @@ -37,7 +37,7 @@ a { grid-template-areas: "a a a" # Diagnostics ``` -invalid.css:1:26 lint/nursery/useConsistentGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:1:26 lint/nursery/noInvalidGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Empty grid areas are not allowed. @@ -52,7 +52,7 @@ invalid.css:1:26 lint/nursery/useConsistentGridAreas ━━━━━━━━━ ``` ``` -invalid.css:2:26 lint/nursery/useConsistentGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:2:26 lint/nursery/noInvalidGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Inconsistent cell count in grid areas are not allowed. @@ -68,7 +68,7 @@ invalid.css:2:26 lint/nursery/useConsistentGridAreas ━━━━━━━━━ ``` ``` -invalid.css:4:33 lint/nursery/useConsistentGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:4:33 lint/nursery/noInvalidGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Empty grid areas are not allowed. @@ -87,7 +87,7 @@ invalid.css:4:33 lint/nursery/useConsistentGridAreas ━━━━━━━━━ ``` ``` -invalid.css:6:33 lint/nursery/useConsistentGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:6:33 lint/nursery/noInvalidGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Duplicate filled in rectangle are not allowed. @@ -106,7 +106,7 @@ invalid.css:6:33 lint/nursery/useConsistentGridAreas ━━━━━━━━━ ``` ``` -invalid.css:11:33 lint/nursery/useConsistentGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:11:33 lint/nursery/noInvalidGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Duplicate filled in rectangle are not allowed. @@ -125,7 +125,7 @@ invalid.css:11:33 lint/nursery/useConsistentGridAreas ━━━━━━━━ ``` ``` -invalid.css:15:33 lint/nursery/useConsistentGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:15:33 lint/nursery/noInvalidGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Duplicate filled in rectangle are not allowed. @@ -144,7 +144,7 @@ invalid.css:15:33 lint/nursery/useConsistentGridAreas ━━━━━━━━ ``` ``` -invalid.css:17:35 lint/nursery/useConsistentGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:17:35 lint/nursery/noInvalidGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Duplicate filled in rectangle are not allowed. @@ -163,7 +163,7 @@ invalid.css:17:35 lint/nursery/useConsistentGridAreas ━━━━━━━━ ``` ``` -invalid.css:21:35 lint/nursery/useConsistentGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:21:35 lint/nursery/noInvalidGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Inconsistent cell count in grid areas are not allowed. @@ -182,7 +182,7 @@ invalid.css:21:35 lint/nursery/useConsistentGridAreas ━━━━━━━━ ``` ``` -invalid.css:24:33 lint/nursery/useConsistentGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:24:33 lint/nursery/noInvalidGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Duplicate filled in rectangle are not allowed. @@ -201,7 +201,7 @@ invalid.css:24:33 lint/nursery/useConsistentGridAreas ━━━━━━━━ ``` ``` -invalid.css:27:33 lint/nursery/useConsistentGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:27:33 lint/nursery/noInvalidGridAreas ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Duplicate filled in rectangle are not allowed. diff --git a/crates/biome_css_analyze/tests/specs/nursery/useConsistentGridAreas/valid.css b/crates/biome_css_analyze/tests/specs/nursery/noInvalidGridAreas/valid.css similarity index 100% rename from crates/biome_css_analyze/tests/specs/nursery/useConsistentGridAreas/valid.css rename to crates/biome_css_analyze/tests/specs/nursery/noInvalidGridAreas/valid.css diff --git a/crates/biome_css_analyze/tests/specs/nursery/useConsistentGridAreas/valid.css.snap b/crates/biome_css_analyze/tests/specs/nursery/noInvalidGridAreas/valid.css.snap similarity index 100% rename from crates/biome_css_analyze/tests/specs/nursery/useConsistentGridAreas/valid.css.snap rename to crates/biome_css_analyze/tests/specs/nursery/noInvalidGridAreas/valid.css.snap diff --git a/crates/biome_diagnostics_categories/src/categories.rs b/crates/biome_diagnostics_categories/src/categories.rs index 32392bbdb70b..8a3f64bd526c 100644 --- a/crates/biome_diagnostics_categories/src/categories.rs +++ b/crates/biome_diagnostics_categories/src/categories.rs @@ -159,7 +159,7 @@ define_categories! { "lint/nursery/useBiomeSuppressionComment": "https://biomejs.dev/linter/rules/use-biome-suppression-comment", "lint/nursery/useConsistentBuiltinInstantiation": "https://biomejs.dev/linter/rules/use-consistent-new-builtin", "lint/nursery/useConsistentCurlyBraces": "https://biomejs.dev/linter/rules/use-consistent-curly-braces", - "lint/nursery/useConsistentGridAreas": "https://biomejs.dev/linter/rules/use-consistent-grid-areas", + "lint/nursery/noInvalidGridAreas": "https://biomejs.dev/linter/rules/use-consistent-grid-areas", "lint/nursery/useConsistentMemberAccessibility": "https://biomejs.dev/linter/rules/use-consistent-member-accessibility", "lint/nursery/useDateNow": "https://biomejs.dev/linter/rules/use-date-now", "lint/nursery/useDefaultSwitchClause": "https://biomejs.dev/linter/rules/use-default-switch-clause", diff --git a/packages/@biomejs/backend-jsonrpc/src/workspace.ts b/packages/@biomejs/backend-jsonrpc/src/workspace.ts index 7a5f8934758e..59adadd7bc7d 100644 --- a/packages/@biomejs/backend-jsonrpc/src/workspace.ts +++ b/packages/@biomejs/backend-jsonrpc/src/workspace.ts @@ -1203,6 +1203,10 @@ export interface Nursery { * Disallow non-standard direction values for linear gradient functions. */ noInvalidDirectionInLinearGradient?: RuleConfiguration_for_Null; + /** + * Disallows invalid named grid areas in CSS Grid Layouts. + */ + noInvalidGridAreas?: RuleConfiguration_for_Null; /** * Disallow the use of @import at-rules in invalid positions. */ @@ -1319,10 +1323,6 @@ export interface Nursery { * This rule enforces consistent use of curly braces inside JSX attributes and JSX children. */ useConsistentCurlyBraces?: RuleFixConfiguration_for_Null; - /** - * Disallows invalid named grid areas in CSS Grid Layouts. - */ - useConsistentGridAreas?: RuleConfiguration_for_Null; /** * Require consistent accessibility modifiers on class properties and methods. */ @@ -2784,7 +2784,7 @@ export type Category = | "lint/nursery/useBiomeSuppressionComment" | "lint/nursery/useConsistentBuiltinInstantiation" | "lint/nursery/useConsistentCurlyBraces" - | "lint/nursery/useConsistentGridAreas" + | "lint/nursery/noInvalidGridAreas" | "lint/nursery/useConsistentMemberAccessibility" | "lint/nursery/useDateNow" | "lint/nursery/useDefaultSwitchClause" diff --git a/packages/@biomejs/biome/configuration_schema.json b/packages/@biomejs/biome/configuration_schema.json index 2e096a5ac1b0..a99dee8534d6 100644 --- a/packages/@biomejs/biome/configuration_schema.json +++ b/packages/@biomejs/biome/configuration_schema.json @@ -2035,6 +2035,13 @@ { "type": "null" } ] }, + "noInvalidGridAreas": { + "description": "Disallows invalid named grid areas in CSS Grid Layouts.", + "anyOf": [ + { "$ref": "#/definitions/RuleConfiguration" }, + { "type": "null" } + ] + }, "noInvalidPositionAtImportRule": { "description": "Disallow the use of @import at-rules in invalid positions.", "anyOf": [ @@ -2235,13 +2242,6 @@ { "type": "null" } ] }, - "useConsistentGridAreas": { - "description": "Disallows invalid named grid areas in CSS Grid Layouts.", - "anyOf": [ - { "$ref": "#/definitions/RuleConfiguration" }, - { "type": "null" } - ] - }, "useConsistentMemberAccessibility": { "description": "Require consistent accessibility modifiers on class properties and methods.", "anyOf": [