UNPKG

stylelint-sassdoc

Version:

stylelint plugin to check scss files for a valid sassdoc documentation Credits to https://github.com/anneangersbach

39 lines (33 loc) 1.27 kB
const stylelint = require('stylelint'); const isVariableDeclaration = require('../../utils/isVariableDeclaration'); const adjacentLineIsSCSSComment = require('../../utils/adjacentLineIsSCSSComment'); const ruleName = 'sassdoc/variable-is-documented'; const messages = stylelint.utils.ruleMessages(ruleName, { expected: (node) => `Sassdoc: Expected variable "${node.prop}" 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.walkDecls((decl) => { // declaration is not a variable // or is nested in a code block (function, mixin, etc) // or it is private if (!isVariableDeclaration(decl) || decl.parent !== root || decl.prop[1] === '_') { return; } if (!adjacentLineIsSCSSComment(decl)) { stylelint.utils.report({ message: messages.expected(decl), node: decl, result, ruleName, }); } }); }); module.exports.ruleName = ruleName; module.exports.messages = messages;