--- /dev/null
+"use strict";
+
+const declarationValueIndex = require("../utils/declarationValueIndex");
+const report = require("../utils/report");
+const styleSearch = require("style-search");
+
+module.exports = function(opts) {
+ opts.root.walkDecls(function(decl) {
+ const indexOffset = declarationValueIndex(decl);
+ const declString = decl.toString();
+ const valueString = decl.toString().slice(indexOffset);
+ if (valueString.indexOf("!") === -1) {
+ return;
+ }
+
+ styleSearch({ source: valueString, target: "!" }, match => {
+ check(declString, match.startIndex + indexOffset, decl);
+ });
+ });
+
+ function check(source, index, node) {
+ opts.locationChecker({
+ source,
+ index,
+ err: m =>
+ report({
+ message: m,
+ node,
+ index,
+ result: opts.result,
+ ruleName: opts.checkedRuleName
+ })
+ });
+ }
+};