UNPKG

lesslint

Version:
79 lines (63 loc) 6.42 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.check = undefined; var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk); var _postcss = require('postcss'); var _postcss2 = _interopRequireDefault(_postcss); var _util = require('../util'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 'use strict'; /** * 规则名称 * * @const * @type {string} */ /** * @file 注释检验 * 单行注释尽量使用 // 方式 * https://github.com/ecomfe/spec/blob/master/less-code-style.md#%E6%B3%A8%E9%87%8A * @author ielgnaw(wuji0223@gmail.com) */ var RULENAME = 'single-comment'; /** * 具体的检测逻辑 * * @param {Object} opts 参数 * @param {*} opts.ruleVal 当前规则具体配置的值 * @param {string} opts.fileContent 文件内容 * @param {string} opts.filePath 文件路径 */ var check = exports.check = _postcss2.default.plugin(RULENAME, function (opts) { return function (css, result) { if (!opts.ruleVal) { return; } css.walkComments(function (comment) { // 排除单行注释 if (comment.inline) { return; } var source = comment.source; var startLine = source.start.line; var endLine = source.end.line; if (startLine === endLine) { var lineContent = (0, _util.getLineContent)(startLine, opts.fileContent); result.warn(RULENAME, { node: comment, ruleName: RULENAME, line: startLine, col: source.start.column, message: '`' + lineContent + '` Single Comment should be use `//`', colorMessage: '`' + lineContent.replace(lineContent, function ($1) { return _chalk2.default.magenta($1); }) + '` ' + _chalk2.default.grey('Single Comment should be use `//`') }); } }); }; }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlL3NpbmdsZS1jb21tZW50LmpzIl0sIm5hbWVzIjpbIlJVTEVOQU1FIiwiY2hlY2siLCJwb3N0Y3NzIiwicGx1Z2luIiwiY3NzIiwicmVzdWx0Iiwib3B0cyIsInJ1bGVWYWwiLCJ3YWxrQ29tbWVudHMiLCJjb21tZW50IiwiaW5saW5lIiwic291cmNlIiwic3RhcnRMaW5lIiwic3RhcnQiLCJsaW5lIiwiZW5kTGluZSIsImVuZCIsImxpbmVDb250ZW50IiwiZmlsZUNvbnRlbnQiLCJ3YXJuIiwibm9kZSIsInJ1bGVOYW1lIiwiY29sIiwiY29sdW1uIiwibWVzc2FnZSIsImNvbG9yTWVzc2FnZSIsInJlcGxhY2UiLCJjaGFsayIsIm1hZ2VudGEiLCIkMSIsImdyZXkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFPQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFFQTs7QUFFQTs7Ozs7O0FBYkE7Ozs7Ozs7QUFtQkEsSUFBTUEsV0FBVyxnQkFBakI7O0FBRUE7Ozs7Ozs7O0FBUU8sSUFBTUMsd0JBQVFDLGtCQUFRQyxNQUFSLENBQWVILFFBQWYsRUFBeUI7QUFBQSxXQUMxQyxVQUFDSSxHQUFELEVBQU1DLE1BQU4sRUFBaUI7QUFDYixZQUFJLENBQUNDLEtBQUtDLE9BQVYsRUFBbUI7QUFDZjtBQUNIOztBQUVESCxZQUFJSSxZQUFKLENBQWlCLG1CQUFXO0FBQ3hCO0FBQ0EsZ0JBQUlDLFFBQVFDLE1BQVosRUFBb0I7QUFDaEI7QUFDSDs7QUFKdUIsZ0JBTWpCQyxNQU5pQixHQU1QRixPQU5PLENBTWpCRSxNQU5pQjs7O0FBUXhCLGdCQUFNQyxZQUFZRCxPQUFPRSxLQUFQLENBQWFDLElBQS9CO0FBQ0EsZ0JBQU1DLFVBQVVKLE9BQU9LLEdBQVAsQ0FBV0YsSUFBM0I7QUFDQSxnQkFBSUYsY0FBY0csT0FBbEIsRUFBMkI7QUFDdkIsb0JBQU1FLGNBQWMsMEJBQWVMLFNBQWYsRUFBMEJOLEtBQUtZLFdBQS9CLENBQXBCOztBQUVBYix1QkFBT2MsSUFBUCxDQUFZbkIsUUFBWixFQUFzQjtBQUNsQm9CLDBCQUFNWCxPQURZO0FBRWxCWSw4QkFBVXJCLFFBRlE7QUFHbEJjLDBCQUFNRixTQUhZO0FBSWxCVSx5QkFBS1gsT0FBT0UsS0FBUCxDQUFhVSxNQUpBO0FBS2xCQyxtQ0FBY1AsV0FBZCx3Q0FMa0I7QUFNbEJRLGtDQUFjLE1BQ1JSLFlBQVlTLE9BQVosQ0FDRVQsV0FERixFQUVFO0FBQUEsK0JBQU1VLGdCQUFNQyxPQUFOLENBQWNDLEVBQWQsQ0FBTjtBQUFBLHFCQUZGLENBRFEsR0FLUixJQUxRLEdBTVJGLGdCQUFNRyxJQUFOLENBQVcsbUNBQVg7QUFaWSxpQkFBdEI7QUFjSDtBQUNKLFNBNUJEO0FBNkJILEtBbkN5QztBQUFBLENBQXpCLENBQWQiLCJmaWxlIjoic2luZ2xlLWNvbW1lbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlIOazqOmHiuajgOmqjFxuICogICAgICAg5Y2V6KGM5rOo6YeK5bC96YeP5L2/55SoIC8vIOaWueW8j1xuICogICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2Vjb21mZS9zcGVjL2Jsb2IvbWFzdGVyL2xlc3MtY29kZS1zdHlsZS5tZCMlRTYlQjMlQTglRTklODclOEFcbiAqIEBhdXRob3IgaWVsZ25hdyh3dWppMDIyM0BnbWFpbC5jb20pXG4gKi9cblxuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCBwb3N0Y3NzIGZyb20gJ3Bvc3Rjc3MnO1xuaW1wb3J0IHtnZXRMaW5lQ29udGVudH0gZnJvbSAnLi4vdXRpbCc7XG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiDop4TliJnlkI3np7BcbiAqXG4gKiBAY29uc3RcbiAqIEB0eXBlIHtzdHJpbmd9XG4gKi9cbmNvbnN0IFJVTEVOQU1FID0gJ3NpbmdsZS1jb21tZW50JztcblxuLyoqXG4gKiDlhbfkvZPnmoTmo4DmtYvpgLvovpFcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0cyDlj4LmlbBcbiAqIEBwYXJhbSB7Kn0gb3B0cy5ydWxlVmFsIOW9k+WJjeinhOWImeWFt+S9k+mFjee9rueahOWAvFxuICogQHBhcmFtIHtzdHJpbmd9IG9wdHMuZmlsZUNvbnRlbnQg5paH5Lu25YaF5a65XG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5maWxlUGF0aCDmlofku7bot6/lvoRcbiAqL1xuZXhwb3J0IGNvbnN0IGNoZWNrID0gcG9zdGNzcy5wbHVnaW4oUlVMRU5BTUUsIG9wdHMgPT5cbiAgICAoY3NzLCByZXN1bHQpID0+IHtcbiAgICAgICAgaWYgKCFvcHRzLnJ1bGVWYWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNzcy53YWxrQ29tbWVudHMoY29tbWVudCA9PiB7XG4gICAgICAgICAgICAvLyDmjpLpmaTljZXooYzms6jph4pcbiAgICAgICAgICAgIGlmIChjb21tZW50LmlubGluZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qge3NvdXJjZX0gPSBjb21tZW50O1xuXG4gICAgICAgICAgICBjb25zdCBzdGFydExpbmUgPSBzb3VyY2Uuc3RhcnQubGluZTtcbiAgICAgICAgICAgIGNvbnN0IGVuZExpbmUgPSBzb3VyY2UuZW5kLmxpbmU7XG4gICAgICAgICAgICBpZiAoc3RhcnRMaW5lID09PSBlbmRMaW5lKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGluZUNvbnRlbnQgPSBnZXRMaW5lQ29udGVudChzdGFydExpbmUsIG9wdHMuZmlsZUNvbnRlbnQpO1xuXG4gICAgICAgICAgICAgICAgcmVzdWx0Lndhcm4oUlVMRU5BTUUsIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZTogY29tbWVudCxcbiAgICAgICAgICAgICAgICAgICAgcnVsZU5hbWU6IFJVTEVOQU1FLFxuICAgICAgICAgICAgICAgICAgICBsaW5lOiBzdGFydExpbmUsXG4gICAgICAgICAgICAgICAgICAgIGNvbDogc291cmNlLnN0YXJ0LmNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogYFxcYCR7bGluZUNvbnRlbnR9XFxgIFNpbmdsZSBDb21tZW50IHNob3VsZCBiZSB1c2UgXFxgLy9cXGBgLFxuICAgICAgICAgICAgICAgICAgICBjb2xvck1lc3NhZ2U6ICdgJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKyBsaW5lQ29udGVudC5yZXBsYWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQxID0+IGNoYWxrLm1hZ2VudGEoJDEpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICArICdgICdcbiAgICAgICAgICAgICAgICAgICAgICAgICsgY2hhbGsuZ3JleSgnU2luZ2xlIENvbW1lbnQgc2hvdWxkIGJlIHVzZSBgLy9gJylcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuKTtcbiJdfQ==