From 226b922ded2e29d0968857e4b5d547dbd47c76c8 Mon Sep 17 00:00:00 2001 From: Alban Auzeill Date: Tue, 24 Dec 2019 11:04:49 +0100 Subject: Add parameter for S4660 to define custom pseudo-elements (#220) --- .../rules/SelectorPseudoElementNoUnknown.java | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'sonar-css-plugin/src/main/java/org') diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/SelectorPseudoElementNoUnknown.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/SelectorPseudoElementNoUnknown.java index c26dfc2..8682859 100644 --- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/SelectorPseudoElementNoUnknown.java +++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/rules/SelectorPseudoElementNoUnknown.java @@ -19,13 +19,41 @@ */ package org.sonar.css.plugin.rules; +import java.util.Arrays; +import java.util.List; import org.sonar.check.Rule; +import org.sonar.check.RuleProperty; + +import static org.sonar.css.plugin.rules.RuleUtils.splitAndTrim; @Rule(key = "S4660") public class SelectorPseudoElementNoUnknown implements CssRule { + private static final String DEFAULT_IGNORE_PSEUDO_ELEMENTS = "ng-deep"; + @Override public String stylelintKey() { return "selector-pseudo-element-no-unknown"; } + + @RuleProperty( + key = "ignorePseudoElements", + description = "Comma-separated list of regular expressions or strings to ignore (e.g. /^custom-/).", + defaultValue = "" + DEFAULT_IGNORE_PSEUDO_ELEMENTS) + String ignorePseudoElements = DEFAULT_IGNORE_PSEUDO_ELEMENTS; + + @Override + public List stylelintOptions() { + return Arrays.asList(true, new StylelintIgnorePseudoElementsOption(splitAndTrim(ignorePseudoElements))); + } + + private static class StylelintIgnorePseudoElementsOption { + // Used by GSON serialization + private final List ignorePseudoElements; + + StylelintIgnorePseudoElementsOption(List ignorePseudoElements) { + this.ignorePseudoElements = ignorePseudoElements; + } + } + } -- cgit v1.2.3