aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--its/plugin/projects/issues-project/src/file1.css4
-rw-r--r--sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/SelectorTypeNoUnknown.java12
-rw-r--r--sonar-css-plugin/src/test/java/org/sonar/css/plugin/rules/CssRuleTest.java9
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\"]}]");