minor adjustment to readme
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / stylelint / lib / rules / at-rule-semicolon-space-before / index.js
1 "use strict";
2
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");
9
10 const ruleName = "at-rule-semicolon-space-before";
11
12 const messages = ruleMessages(ruleName, {
13   expectedBefore: () => 'Expected single space before ";"',
14   rejectedBefore: () => 'Unexpected whitespace before ";"'
15 });
16
17 const rule = function(expectation) {
18   const checker = whitespaceChecker("space", expectation, messages);
19
20   return (root, result) => {
21     const validOptions = validateOptions(result, ruleName, {
22       actual: expectation,
23       possible: ["always", "never"]
24     });
25     if (!validOptions) {
26       return;
27     }
28
29     root.walkAtRules(atRule => {
30       if (hasBlock(atRule)) {
31         return;
32       }
33       const nodeString = rawNodeString(atRule);
34
35       checker.before({
36         source: nodeString,
37         index: nodeString.length,
38         err: m => {
39           report({
40             message: m,
41             node: atRule,
42             index: nodeString.length - 1,
43             result,
44             ruleName
45           });
46         }
47       });
48     });
49   };
50 };
51
52 rule.ruleName = ruleName;
53 rule.messages = messages;
54 module.exports = rule;