diff options
3 files changed, 24 insertions, 1 deletions
diff --git a/its/plugin/projects/issues-project/src/file1.css b/its/plugin/projects/issues-project/src/file1.css index 972e4c3..d2c3b6b 100644 --- a/its/plugin/projects/issues-project/src/file1.css +++ b/its/plugin/projects/issues-project/src/file1.css @@ -66,3 +66,7 @@ unknown {                                                     /* S4670 | selecto  :global(.nestedClassParent) {                                 /* ignored by S4659 | selector-pseudo-class-no-unknown */     color: blue;  } + +mat-form-field {                                              /* Angular Material, ignored by S4670 | selector-type-no-unknown */ +  width: 100%; +} diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/SelectorTypeNoUnknown.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/SelectorTypeNoUnknown.java index 9511d1b..a42fa9a 100644 --- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/SelectorTypeNoUnknown.java +++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/SelectorTypeNoUnknown.java @@ -19,6 +19,8 @@   */  package org.sonar.css.plugin.rules; +import java.util.Arrays; +import java.util.List;  import org.sonar.check.Rule;  @Rule(key = "S4670") @@ -28,4 +30,14 @@ public class SelectorTypeNoUnknown implements CssRule {    public String stylelintKey() {      return "selector-type-no-unknown";    } + +  @Override +  public List<Object> stylelintOptions() { +    return Arrays.asList(true, new StylelintIgnoreOption()); +  } + +  private static class StylelintIgnoreOption { +    // Used by GSON serialization +    private final String[] ignoreTypes = {"/^mat-/"}; +  }  } diff --git a/sonar-css-plugin/src/test/java/org/sonar/css/plugin/rules/CssRuleTest.java b/sonar-css-plugin/src/test/java/org/sonar/css/plugin/rules/CssRuleTest.java index feca51e..9016115 100644 --- a/sonar-css-plugin/src/test/java/org/sonar/css/plugin/rules/CssRuleTest.java +++ b/sonar-css-plugin/src/test/java/org/sonar/css/plugin/rules/CssRuleTest.java @@ -45,7 +45,8 @@ public class CssRuleTest {        AtRuleNoUnknown.class,        DeclarationBlockNoDuplicateProperties.class,        PropertyNoUnknown.class, -      SelectorPseudoClassNoUnknown.class); +      SelectorPseudoClassNoUnknown.class, +      SelectorTypeNoUnknown.class);      for (Class ruleClass : CssRules.getRuleClasses()) {        CssRule rule = (CssRule)ruleClass.getConstructor().newInstance(); @@ -70,6 +71,12 @@ public class CssRuleTest {    }    @Test +  public void selector_type_no_unknown_options() { +    String optionsAsJson = new Gson().toJson(new SelectorTypeNoUnknown().stylelintOptions()); +    assertThat(optionsAsJson).isEqualTo("[true,{\"ignoreTypes\":[\"/^mat-/\"]}]"); +  } + +  @Test    public void at_rule_unknown_default() {      String optionsAsJson = new Gson().toJson(new AtRuleNoUnknown().stylelintOptions());      assertThat(optionsAsJson).isEqualTo("[true,{\"ignoreAtRules\":[\"value\",\"at-root\",\"content\",\"debug\",\"each\",\"else\",\"error\",\"for\",\"function\",\"if\",\"include\",\"mixin\",\"return\",\"warn\",\"while\",\"extend\"]}]");  | 
