+++ /dev/null
-"use strict";
-
-const isStandardSyntaxRule = require("../utils/isStandardSyntaxRule");
-const parseSelector = require("../utils/parseSelector");
-const report = require("../utils/report");
-const styleSearch = require("style-search");
-
-module.exports = function(options) {
- options.root.walkRules(rule => {
- if (!isStandardSyntaxRule(rule)) {
- return;
- }
- if (
- rule.selector.indexOf("[") === -1 ||
- rule.selector.indexOf("=") === -1
- ) {
- return;
- }
-
- parseSelector(rule.selector, options.result, rule, selectorTree => {
- selectorTree.walkAttributes(attributeNode => {
- const operator = attributeNode.operator;
-
- if (!operator) {
- return;
- }
-
- const attributeNodeString = attributeNode.toString();
-
- styleSearch(
- { source: attributeNodeString, target: operator },
- match => {
- const index = options.checkBeforeOperator
- ? match.startIndex
- : match.endIndex - 1;
- checkOperator(
- attributeNodeString,
- index,
- rule,
- attributeNode.sourceIndex,
- operator
- );
- }
- );
- });
- });
-
- function checkOperator(source, index, node, attributeIndex, operator) {
- options.locationChecker({
- source,
- index,
- err: m =>
- report({
- message: m.replace(
- options.checkBeforeOperator
- ? operator[0]
- : operator[operator.length - 1],
- operator
- ),
- node,
- index: attributeIndex + index,
- result: options.result,
- ruleName: options.checkedRuleName
- })
- });
- }
- });
-};