X-Git-Url: https://git.josue.xyz/?a=blobdiff_plain;f=.config%2Fcoc%2Fextensions%2Fnode_modules%2Fcoc-prettier%2Fnode_modules%2Fstylelint%2Flib%2Frules%2Fblock-closing-brace-space-before%2Findex.js;fp=.config%2Fcoc%2Fextensions%2Fnode_modules%2Fcoc-prettier%2Fnode_modules%2Fstylelint%2Flib%2Frules%2Fblock-closing-brace-space-before%2Findex.js;h=e9410ba98ae125a3f2dd41a72d3bd5b0c4477cc0;hb=3c06164f15bd10aed7d66b6314764a2961a14762;hp=0000000000000000000000000000000000000000;hpb=0e9c3ceb40901f4d44981c1376cb9e23a248e006;p=dotfiles%2F.git diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/stylelint/lib/rules/block-closing-brace-space-before/index.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/stylelint/lib/rules/block-closing-brace-space-before/index.js new file mode 100644 index 00000000..e9410ba9 --- /dev/null +++ b/.config/coc/extensions/node_modules/coc-prettier/node_modules/stylelint/lib/rules/block-closing-brace-space-before/index.js @@ -0,0 +1,82 @@ +"use strict"; + +const blockString = require("../../utils/blockString"); +const hasBlock = require("../../utils/hasBlock"); +const hasEmptyBlock = require("../../utils/hasEmptyBlock"); +const report = require("../../utils/report"); +const ruleMessages = require("../../utils/ruleMessages"); +const validateOptions = require("../../utils/validateOptions"); +const whitespaceChecker = require("../../utils/whitespaceChecker"); + +const ruleName = "block-closing-brace-space-before"; + +const messages = ruleMessages(ruleName, { + expectedBefore: () => 'Expected single space before "}"', + rejectedBefore: () => 'Unexpected whitespace before "}"', + expectedBeforeSingleLine: () => + 'Expected single space before "}" of a single-line block', + rejectedBeforeSingleLine: () => + 'Unexpected whitespace before "}" of a single-line block', + expectedBeforeMultiLine: () => + 'Expected single space before "}" of a multi-line block', + rejectedBeforeMultiLine: () => + 'Unexpected whitespace before "}" of a multi-line block' +}); + +const rule = function(expectation) { + const checker = whitespaceChecker("space", expectation, messages); + + return (root, result) => { + const validOptions = validateOptions(result, ruleName, { + actual: expectation, + possible: [ + "always", + "never", + "always-single-line", + "never-single-line", + "always-multi-line", + "never-multi-line" + ] + }); + if (!validOptions) { + return; + } + + // Check both kinds of statement: rules and at-rules + root.walkRules(check); + root.walkAtRules(check); + + function check(statement) { + // Return early if blockless or has empty block + if (!hasBlock(statement) || hasEmptyBlock(statement)) { + return; + } + + const source = blockString(statement); + const statementString = statement.toString(); + + let index = statementString.length - 2; + if (statementString[index - 1] === "\r") { + index -= 1; + } + + checker.before({ + source, + index: source.length - 1, + err: msg => { + report({ + message: msg, + node: statement, + index, + result, + ruleName + }); + } + }); + } + }; +}; + +rule.ruleName = ruleName; +rule.messages = messages; +module.exports = rule;