stylelint-sassdoc
Version:
stylelint plugin to check scss files for a valid sassdoc documentation Credits to https://github.com/anneangersbach
37 lines (31 loc) • 1.21 kB
JavaScript
const stylelint = require('stylelint');
const adjacentLineIsSCSSComment = require('../../utils/adjacentLineIsSCSSComment');
const ruleName = 'sassdoc/function-is-documented';
const messages = stylelint.utils.ruleMessages(ruleName, {
expected: (node) => `Sassdoc: Expected function "${node.params.split(/\(/)[0]}(...)" to be documented by preceding Sassdoc comment.`,
});
module.exports = stylelint.createPlugin(ruleName, (actual) => (root, result) => {
const validOptions = stylelint.utils.validateOptions(result, ruleName, {
actual,
});
if (!validOptions) {
return;
}
root.walkAtRules('function', (atRule) => {
// node is nested in a code block (function, mixin, etc)
// or it is private (params is the name of the function)
if (atRule.parent !== root || atRule.params[0] === '_') {
return;
}
if (!adjacentLineIsSCSSComment(atRule)) {
stylelint.utils.report({
message: messages.expected(atRule),
node: atRule,
result,
ruleName,
});
}
});
});
module.exports.ruleName = ruleName;
module.exports.messages = messages;