UNPKG

textlint-filter-rule-comments

Version:
71 lines (61 loc) 3.26 kB
// LICENSE : MIT "use strict"; var _StatusManager = require("./StatusManager"); var _StatusManager2 = _interopRequireDefault(_StatusManager); var _parseComment = require("./parse-comment"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var defaultOptions = { // enable comment directive // if comment has the value, then enable textlint rule "enablingComment": "textlint-enable", // disable comment directive // if comment has the value, then disable textlint rule "disablingComment": "textlint-disable" }; module.exports = function (context) { var _ref; var options = arguments.length <= 1 || arguments[1] === undefined ? defaultOptions : arguments[1]; var Syntax = context.Syntax; var shouldIgnore = context.shouldIgnore; var getSource = context.getSource; var enablingComment = options.enablingComment || defaultOptions.enablingComment; var disablingComment = options.disablingComment || defaultOptions.disablingComment; var content = getSource(); var statusManager = new _StatusManager2.default(content.length); // Get comment value return _ref = {}, _defineProperty(_ref, Syntax.Html, function (node) { var nodeValue = getSource(node); if (!(0, _parseComment.isHTMLComment)(nodeValue)) { return; } var comments = (0, _parseComment.getValuesFromHTMLComment)(nodeValue); comments.forEach(function (commentValue) { if (commentValue.indexOf(enablingComment) !== -1) { var configValue = commentValue.replace(enablingComment, ""); statusManager.enableReporting(node, (0, _parseComment.parseRuleIds)(configValue)); } else if (commentValue.indexOf(disablingComment) !== -1) { var _configValue = commentValue.replace(disablingComment, ""); statusManager.disableReporting(node, (0, _parseComment.parseRuleIds)(_configValue)); } }); }), _defineProperty(_ref, Syntax.Comment, function (node) { var commentValue = node.value || ""; if (commentValue.indexOf(enablingComment) !== -1) { var configValue = commentValue.replace(enablingComment, ""); statusManager.enableReporting(node, (0, _parseComment.parseRuleIds)(configValue)); } else if (commentValue.indexOf(disablingComment) !== -1) { var _configValue2 = commentValue.replace(disablingComment, ""); statusManager.disableReporting(node, (0, _parseComment.parseRuleIds)(_configValue2)); } }), _defineProperty(_ref, Syntax.Document + ":exit", function undefined() { var ignoringMessages = statusManager.getIgnoringMessages(); ignoringMessages.forEach(function (message) { var range = [message.startIndex, message.endIndex]; shouldIgnore(range, { ruleId: message.ruleId || "*" }); }); }), _ref; }; //# sourceMappingURL=textlint-filter-rule-comments.js.map