3 const hasBlock = require("../../utils/hasBlock");
4 const rawNodeString = require("../../utils/rawNodeString");
5 const report = require("../../utils/report");
6 const ruleMessages = require("../../utils/ruleMessages");
7 const validateOptions = require("../../utils/validateOptions");
8 const whitespaceChecker = require("../../utils/whitespaceChecker");
10 const ruleName = "at-rule-semicolon-space-before";
12 const messages = ruleMessages(ruleName, {
13 expectedBefore: () => 'Expected single space before ";"',
14 rejectedBefore: () => 'Unexpected whitespace before ";"'
17 const rule = function(expectation) {
18 const checker = whitespaceChecker("space", expectation, messages);
20 return (root, result) => {
21 const validOptions = validateOptions(result, ruleName, {
23 possible: ["always", "never"]
29 root.walkAtRules(atRule => {
30 if (hasBlock(atRule)) {
33 const nodeString = rawNodeString(atRule);
37 index: nodeString.length,
42 index: nodeString.length - 1,
52 rule.ruleName = ruleName;
53 rule.messages = messages;
54 module.exports = rule;