summaryrefslogtreecommitdiff
path: root/scripts/frontend/stylelint/stylelint_duplicate_selectors.js
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/frontend/stylelint/stylelint_duplicate_selectors.js')
-rw-r--r--scripts/frontend/stylelint/stylelint_duplicate_selectors.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/scripts/frontend/stylelint/stylelint_duplicate_selectors.js b/scripts/frontend/stylelint/stylelint_duplicate_selectors.js
new file mode 100644
index 00000000000..77c1f1292b7
--- /dev/null
+++ b/scripts/frontend/stylelint/stylelint_duplicate_selectors.js
@@ -0,0 +1,25 @@
+const stylelint = require('stylelint');
+const utils = require('./stylelint_utils');
+
+const ruleName = 'stylelint-gitlab/duplicate-selectors';
+
+const messages = stylelint.utils.ruleMessages(ruleName, {
+ expected: (selector1, selector2) => {
+ return `"${selector1}" and "${selector2}" have the same properties.`;
+ },
+});
+
+module.exports = stylelint.createPlugin(ruleName, (enabled) => {
+ if (!enabled) {
+ return;
+ }
+
+ // eslint-disable-next-line consistent-return
+ return (root, result) => {
+ const selectorGroups = {};
+ utils.createPropertiesHashmap(root, result, ruleName, messages, selectorGroups, true);
+ };
+});
+
+module.exports.ruleName = ruleName;
+module.exports.messages = messages;