lesslint
Version:
lint your less code
79 lines (63 loc) • 6.42 kB
JavaScript
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 }; }
;
/**
* 规则名称
*
* @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==
;