Edit File by line
/home/barbar84/www/wp-inclu.../js/codemirr...
File: csslint.js
parser.addListener("endstylesheet", function() {
[9500] Fix | Delete
[9501] Fix | Delete
var prop;
[9502] Fix | Delete
for (prop in classes) {
[9503] Fix | Delete
if (classes.hasOwnProperty(prop)) {
[9504] Fix | Delete
[9505] Fix | Delete
// one use means that this is overqualified
[9506] Fix | Delete
if (classes[prop].length === 1 && classes[prop][0].part.elementName) {
[9507] Fix | Delete
reporter.report("Element (" + classes[prop][0].part + ") is overqualified, just use " + classes[prop][0].modifier + " without element name.", classes[prop][0].part.line, classes[prop][0].part.col, rule);
[9508] Fix | Delete
}
[9509] Fix | Delete
}
[9510] Fix | Delete
}
[9511] Fix | Delete
});
[9512] Fix | Delete
}
[9513] Fix | Delete
[9514] Fix | Delete
});
[9515] Fix | Delete
[9516] Fix | Delete
/*
[9517] Fix | Delete
* Rule: Headings (h1-h6) should not be qualified (namespaced).
[9518] Fix | Delete
*/
[9519] Fix | Delete
[9520] Fix | Delete
CSSLint.addRule({
[9521] Fix | Delete
[9522] Fix | Delete
// rule information
[9523] Fix | Delete
id: "qualified-headings",
[9524] Fix | Delete
name: "Disallow qualified headings",
[9525] Fix | Delete
desc: "Headings should not be qualified (namespaced).",
[9526] Fix | Delete
url: "https://github.com/CSSLint/csslint/wiki/Disallow-qualified-headings",
[9527] Fix | Delete
browsers: "All",
[9528] Fix | Delete
[9529] Fix | Delete
// initialization
[9530] Fix | Delete
init: function(parser, reporter) {
[9531] Fix | Delete
"use strict";
[9532] Fix | Delete
var rule = this;
[9533] Fix | Delete
[9534] Fix | Delete
parser.addListener("startrule", function(event) {
[9535] Fix | Delete
var selectors = event.selectors,
[9536] Fix | Delete
selector,
[9537] Fix | Delete
part,
[9538] Fix | Delete
i, j;
[9539] Fix | Delete
[9540] Fix | Delete
for (i=0; i < selectors.length; i++) {
[9541] Fix | Delete
selector = selectors[i];
[9542] Fix | Delete
[9543] Fix | Delete
for (j=0; j < selector.parts.length; j++) {
[9544] Fix | Delete
part = selector.parts[j];
[9545] Fix | Delete
if (part.type === parser.SELECTOR_PART_TYPE) {
[9546] Fix | Delete
if (part.elementName && /h[1-6]/.test(part.elementName.toString()) && j > 0) {
[9547] Fix | Delete
reporter.report("Heading (" + part.elementName + ") should not be qualified.", part.line, part.col, rule);
[9548] Fix | Delete
}
[9549] Fix | Delete
}
[9550] Fix | Delete
}
[9551] Fix | Delete
}
[9552] Fix | Delete
});
[9553] Fix | Delete
}
[9554] Fix | Delete
[9555] Fix | Delete
});
[9556] Fix | Delete
[9557] Fix | Delete
/*
[9558] Fix | Delete
* Rule: Selectors that look like regular expressions are slow and should be avoided.
[9559] Fix | Delete
*/
[9560] Fix | Delete
[9561] Fix | Delete
CSSLint.addRule({
[9562] Fix | Delete
[9563] Fix | Delete
// rule information
[9564] Fix | Delete
id: "regex-selectors",
[9565] Fix | Delete
name: "Disallow selectors that look like regexs",
[9566] Fix | Delete
desc: "Selectors that look like regular expressions are slow and should be avoided.",
[9567] Fix | Delete
url: "https://github.com/CSSLint/csslint/wiki/Disallow-selectors-that-look-like-regular-expressions",
[9568] Fix | Delete
browsers: "All",
[9569] Fix | Delete
[9570] Fix | Delete
// initialization
[9571] Fix | Delete
init: function(parser, reporter) {
[9572] Fix | Delete
"use strict";
[9573] Fix | Delete
var rule = this;
[9574] Fix | Delete
[9575] Fix | Delete
parser.addListener("startrule", function(event) {
[9576] Fix | Delete
var selectors = event.selectors,
[9577] Fix | Delete
selector,
[9578] Fix | Delete
part,
[9579] Fix | Delete
modifier,
[9580] Fix | Delete
i, j, k;
[9581] Fix | Delete
[9582] Fix | Delete
for (i=0; i < selectors.length; i++) {
[9583] Fix | Delete
selector = selectors[i];
[9584] Fix | Delete
for (j=0; j < selector.parts.length; j++) {
[9585] Fix | Delete
part = selector.parts[j];
[9586] Fix | Delete
if (part.type === parser.SELECTOR_PART_TYPE) {
[9587] Fix | Delete
for (k=0; k < part.modifiers.length; k++) {
[9588] Fix | Delete
modifier = part.modifiers[k];
[9589] Fix | Delete
if (modifier.type === "attribute") {
[9590] Fix | Delete
if (/([~\|\^\$\*]=)/.test(modifier)) {
[9591] Fix | Delete
reporter.report("Attribute selectors with " + RegExp.$1 + " are slow!", modifier.line, modifier.col, rule);
[9592] Fix | Delete
}
[9593] Fix | Delete
}
[9594] Fix | Delete
[9595] Fix | Delete
}
[9596] Fix | Delete
}
[9597] Fix | Delete
}
[9598] Fix | Delete
}
[9599] Fix | Delete
});
[9600] Fix | Delete
}
[9601] Fix | Delete
[9602] Fix | Delete
});
[9603] Fix | Delete
[9604] Fix | Delete
/*
[9605] Fix | Delete
* Rule: Total number of rules should not exceed x.
[9606] Fix | Delete
*/
[9607] Fix | Delete
[9608] Fix | Delete
CSSLint.addRule({
[9609] Fix | Delete
[9610] Fix | Delete
// rule information
[9611] Fix | Delete
id: "rules-count",
[9612] Fix | Delete
name: "Rules Count",
[9613] Fix | Delete
desc: "Track how many rules there are.",
[9614] Fix | Delete
browsers: "All",
[9615] Fix | Delete
[9616] Fix | Delete
// initialization
[9617] Fix | Delete
init: function(parser, reporter) {
[9618] Fix | Delete
"use strict";
[9619] Fix | Delete
var count = 0;
[9620] Fix | Delete
[9621] Fix | Delete
// count each rule
[9622] Fix | Delete
parser.addListener("startrule", function() {
[9623] Fix | Delete
count++;
[9624] Fix | Delete
});
[9625] Fix | Delete
[9626] Fix | Delete
parser.addListener("endstylesheet", function() {
[9627] Fix | Delete
reporter.stat("rule-count", count);
[9628] Fix | Delete
});
[9629] Fix | Delete
}
[9630] Fix | Delete
[9631] Fix | Delete
});
[9632] Fix | Delete
[9633] Fix | Delete
/*
[9634] Fix | Delete
* Rule: Warn people with approaching the IE 4095 limit
[9635] Fix | Delete
*/
[9636] Fix | Delete
[9637] Fix | Delete
CSSLint.addRule({
[9638] Fix | Delete
[9639] Fix | Delete
// rule information
[9640] Fix | Delete
id: "selector-max-approaching",
[9641] Fix | Delete
name: "Warn when approaching the 4095 selector limit for IE",
[9642] Fix | Delete
desc: "Will warn when selector count is >= 3800 selectors.",
[9643] Fix | Delete
browsers: "IE",
[9644] Fix | Delete
[9645] Fix | Delete
// initialization
[9646] Fix | Delete
init: function(parser, reporter) {
[9647] Fix | Delete
"use strict";
[9648] Fix | Delete
var rule = this, count = 0;
[9649] Fix | Delete
[9650] Fix | Delete
parser.addListener("startrule", function(event) {
[9651] Fix | Delete
count += event.selectors.length;
[9652] Fix | Delete
});
[9653] Fix | Delete
[9654] Fix | Delete
parser.addListener("endstylesheet", function() {
[9655] Fix | Delete
if (count >= 3800) {
[9656] Fix | Delete
reporter.report("You have " + count + " selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.", 0, 0, rule);
[9657] Fix | Delete
}
[9658] Fix | Delete
});
[9659] Fix | Delete
}
[9660] Fix | Delete
[9661] Fix | Delete
});
[9662] Fix | Delete
[9663] Fix | Delete
/*
[9664] Fix | Delete
* Rule: Warn people past the IE 4095 limit
[9665] Fix | Delete
*/
[9666] Fix | Delete
[9667] Fix | Delete
CSSLint.addRule({
[9668] Fix | Delete
[9669] Fix | Delete
// rule information
[9670] Fix | Delete
id: "selector-max",
[9671] Fix | Delete
name: "Error when past the 4095 selector limit for IE",
[9672] Fix | Delete
desc: "Will error when selector count is > 4095.",
[9673] Fix | Delete
browsers: "IE",
[9674] Fix | Delete
[9675] Fix | Delete
// initialization
[9676] Fix | Delete
init: function(parser, reporter) {
[9677] Fix | Delete
"use strict";
[9678] Fix | Delete
var rule = this, count = 0;
[9679] Fix | Delete
[9680] Fix | Delete
parser.addListener("startrule", function(event) {
[9681] Fix | Delete
count += event.selectors.length;
[9682] Fix | Delete
});
[9683] Fix | Delete
[9684] Fix | Delete
parser.addListener("endstylesheet", function() {
[9685] Fix | Delete
if (count > 4095) {
[9686] Fix | Delete
reporter.report("You have " + count + " selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.", 0, 0, rule);
[9687] Fix | Delete
}
[9688] Fix | Delete
});
[9689] Fix | Delete
}
[9690] Fix | Delete
[9691] Fix | Delete
});
[9692] Fix | Delete
[9693] Fix | Delete
/*
[9694] Fix | Delete
* Rule: Avoid new-line characters in selectors.
[9695] Fix | Delete
*/
[9696] Fix | Delete
[9697] Fix | Delete
CSSLint.addRule({
[9698] Fix | Delete
[9699] Fix | Delete
// rule information
[9700] Fix | Delete
id: "selector-newline",
[9701] Fix | Delete
name: "Disallow new-line characters in selectors",
[9702] Fix | Delete
desc: "New-line characters in selectors are usually a forgotten comma and not a descendant combinator.",
[9703] Fix | Delete
browsers: "All",
[9704] Fix | Delete
[9705] Fix | Delete
// initialization
[9706] Fix | Delete
init: function(parser, reporter) {
[9707] Fix | Delete
"use strict";
[9708] Fix | Delete
var rule = this;
[9709] Fix | Delete
[9710] Fix | Delete
function startRule(event) {
[9711] Fix | Delete
var i, len, selector, p, n, pLen, part, part2, type, currentLine, nextLine,
[9712] Fix | Delete
selectors = event.selectors;
[9713] Fix | Delete
[9714] Fix | Delete
for (i = 0, len = selectors.length; i < len; i++) {
[9715] Fix | Delete
selector = selectors[i];
[9716] Fix | Delete
for (p = 0, pLen = selector.parts.length; p < pLen; p++) {
[9717] Fix | Delete
for (n = p + 1; n < pLen; n++) {
[9718] Fix | Delete
part = selector.parts[p];
[9719] Fix | Delete
part2 = selector.parts[n];
[9720] Fix | Delete
type = part.type;
[9721] Fix | Delete
currentLine = part.line;
[9722] Fix | Delete
nextLine = part2.line;
[9723] Fix | Delete
[9724] Fix | Delete
if (type === "descendant" && nextLine > currentLine) {
[9725] Fix | Delete
reporter.report("newline character found in selector (forgot a comma?)", currentLine, selectors[i].parts[0].col, rule);
[9726] Fix | Delete
}
[9727] Fix | Delete
}
[9728] Fix | Delete
}
[9729] Fix | Delete
[9730] Fix | Delete
}
[9731] Fix | Delete
}
[9732] Fix | Delete
[9733] Fix | Delete
parser.addListener("startrule", startRule);
[9734] Fix | Delete
[9735] Fix | Delete
}
[9736] Fix | Delete
});
[9737] Fix | Delete
[9738] Fix | Delete
/*
[9739] Fix | Delete
* Rule: Use shorthand properties where possible.
[9740] Fix | Delete
*
[9741] Fix | Delete
*/
[9742] Fix | Delete
[9743] Fix | Delete
CSSLint.addRule({
[9744] Fix | Delete
[9745] Fix | Delete
// rule information
[9746] Fix | Delete
id: "shorthand",
[9747] Fix | Delete
name: "Require shorthand properties",
[9748] Fix | Delete
desc: "Use shorthand properties where possible.",
[9749] Fix | Delete
url: "https://github.com/CSSLint/csslint/wiki/Require-shorthand-properties",
[9750] Fix | Delete
browsers: "All",
[9751] Fix | Delete
[9752] Fix | Delete
// initialization
[9753] Fix | Delete
init: function(parser, reporter) {
[9754] Fix | Delete
"use strict";
[9755] Fix | Delete
var rule = this,
[9756] Fix | Delete
prop, i, len,
[9757] Fix | Delete
propertiesToCheck = {},
[9758] Fix | Delete
properties,
[9759] Fix | Delete
mapping = {
[9760] Fix | Delete
"margin": [
[9761] Fix | Delete
"margin-top",
[9762] Fix | Delete
"margin-bottom",
[9763] Fix | Delete
"margin-left",
[9764] Fix | Delete
"margin-right"
[9765] Fix | Delete
],
[9766] Fix | Delete
"padding": [
[9767] Fix | Delete
"padding-top",
[9768] Fix | Delete
"padding-bottom",
[9769] Fix | Delete
"padding-left",
[9770] Fix | Delete
"padding-right"
[9771] Fix | Delete
]
[9772] Fix | Delete
};
[9773] Fix | Delete
[9774] Fix | Delete
// initialize propertiesToCheck
[9775] Fix | Delete
for (prop in mapping) {
[9776] Fix | Delete
if (mapping.hasOwnProperty(prop)) {
[9777] Fix | Delete
for (i=0, len=mapping[prop].length; i < len; i++) {
[9778] Fix | Delete
propertiesToCheck[mapping[prop][i]] = prop;
[9779] Fix | Delete
}
[9780] Fix | Delete
}
[9781] Fix | Delete
}
[9782] Fix | Delete
[9783] Fix | Delete
function startRule() {
[9784] Fix | Delete
properties = {};
[9785] Fix | Delete
}
[9786] Fix | Delete
[9787] Fix | Delete
// event handler for end of rules
[9788] Fix | Delete
function endRule(event) {
[9789] Fix | Delete
[9790] Fix | Delete
var prop, i, len, total;
[9791] Fix | Delete
[9792] Fix | Delete
// check which properties this rule has
[9793] Fix | Delete
for (prop in mapping) {
[9794] Fix | Delete
if (mapping.hasOwnProperty(prop)) {
[9795] Fix | Delete
total=0;
[9796] Fix | Delete
[9797] Fix | Delete
for (i=0, len=mapping[prop].length; i < len; i++) {
[9798] Fix | Delete
total += properties[mapping[prop][i]] ? 1 : 0;
[9799] Fix | Delete
}
[9800] Fix | Delete
[9801] Fix | Delete
if (total === mapping[prop].length) {
[9802] Fix | Delete
reporter.report("The properties " + mapping[prop].join(", ") + " can be replaced by " + prop + ".", event.line, event.col, rule);
[9803] Fix | Delete
}
[9804] Fix | Delete
}
[9805] Fix | Delete
}
[9806] Fix | Delete
}
[9807] Fix | Delete
[9808] Fix | Delete
parser.addListener("startrule", startRule);
[9809] Fix | Delete
parser.addListener("startfontface", startRule);
[9810] Fix | Delete
[9811] Fix | Delete
// check for use of "font-size"
[9812] Fix | Delete
parser.addListener("property", function(event) {
[9813] Fix | Delete
var name = event.property.toString().toLowerCase();
[9814] Fix | Delete
[9815] Fix | Delete
if (propertiesToCheck[name]) {
[9816] Fix | Delete
properties[name] = 1;
[9817] Fix | Delete
}
[9818] Fix | Delete
});
[9819] Fix | Delete
[9820] Fix | Delete
parser.addListener("endrule", endRule);
[9821] Fix | Delete
parser.addListener("endfontface", endRule);
[9822] Fix | Delete
[9823] Fix | Delete
}
[9824] Fix | Delete
[9825] Fix | Delete
});
[9826] Fix | Delete
[9827] Fix | Delete
/*
[9828] Fix | Delete
* Rule: Don't use properties with a star prefix.
[9829] Fix | Delete
*
[9830] Fix | Delete
*/
[9831] Fix | Delete
[9832] Fix | Delete
CSSLint.addRule({
[9833] Fix | Delete
[9834] Fix | Delete
// rule information
[9835] Fix | Delete
id: "star-property-hack",
[9836] Fix | Delete
name: "Disallow properties with a star prefix",
[9837] Fix | Delete
desc: "Checks for the star property hack (targets IE6/7)",
[9838] Fix | Delete
url: "https://github.com/CSSLint/csslint/wiki/Disallow-star-hack",
[9839] Fix | Delete
browsers: "All",
[9840] Fix | Delete
[9841] Fix | Delete
// initialization
[9842] Fix | Delete
init: function(parser, reporter) {
[9843] Fix | Delete
"use strict";
[9844] Fix | Delete
var rule = this;
[9845] Fix | Delete
[9846] Fix | Delete
// check if property name starts with "*"
[9847] Fix | Delete
parser.addListener("property", function(event) {
[9848] Fix | Delete
var property = event.property;
[9849] Fix | Delete
[9850] Fix | Delete
if (property.hack === "*") {
[9851] Fix | Delete
reporter.report("Property with star prefix found.", event.property.line, event.property.col, rule);
[9852] Fix | Delete
}
[9853] Fix | Delete
});
[9854] Fix | Delete
}
[9855] Fix | Delete
});
[9856] Fix | Delete
[9857] Fix | Delete
/*
[9858] Fix | Delete
* Rule: Don't use text-indent for image replacement if you need to support rtl.
[9859] Fix | Delete
*
[9860] Fix | Delete
*/
[9861] Fix | Delete
[9862] Fix | Delete
CSSLint.addRule({
[9863] Fix | Delete
[9864] Fix | Delete
// rule information
[9865] Fix | Delete
id: "text-indent",
[9866] Fix | Delete
name: "Disallow negative text-indent",
[9867] Fix | Delete
desc: "Checks for text indent less than -99px",
[9868] Fix | Delete
url: "https://github.com/CSSLint/csslint/wiki/Disallow-negative-text-indent",
[9869] Fix | Delete
browsers: "All",
[9870] Fix | Delete
[9871] Fix | Delete
// initialization
[9872] Fix | Delete
init: function(parser, reporter) {
[9873] Fix | Delete
"use strict";
[9874] Fix | Delete
var rule = this,
[9875] Fix | Delete
textIndent,
[9876] Fix | Delete
direction;
[9877] Fix | Delete
[9878] Fix | Delete
[9879] Fix | Delete
function startRule() {
[9880] Fix | Delete
textIndent = false;
[9881] Fix | Delete
direction = "inherit";
[9882] Fix | Delete
}
[9883] Fix | Delete
[9884] Fix | Delete
// event handler for end of rules
[9885] Fix | Delete
function endRule() {
[9886] Fix | Delete
if (textIndent && direction !== "ltr") {
[9887] Fix | Delete
reporter.report("Negative text-indent doesn't work well with RTL. If you use text-indent for image replacement explicitly set direction for that item to ltr.", textIndent.line, textIndent.col, rule);
[9888] Fix | Delete
}
[9889] Fix | Delete
}
[9890] Fix | Delete
[9891] Fix | Delete
parser.addListener("startrule", startRule);
[9892] Fix | Delete
parser.addListener("startfontface", startRule);
[9893] Fix | Delete
[9894] Fix | Delete
// check for use of "font-size"
[9895] Fix | Delete
parser.addListener("property", function(event) {
[9896] Fix | Delete
var name = event.property.toString().toLowerCase(),
[9897] Fix | Delete
value = event.value;
[9898] Fix | Delete
[9899] Fix | Delete
if (name === "text-indent" && value.parts[0].value < -99) {
[9900] Fix | Delete
textIndent = event.property;
[9901] Fix | Delete
} else if (name === "direction" && value.toString() === "ltr") {
[9902] Fix | Delete
direction = "ltr";
[9903] Fix | Delete
}
[9904] Fix | Delete
});
[9905] Fix | Delete
[9906] Fix | Delete
parser.addListener("endrule", endRule);
[9907] Fix | Delete
parser.addListener("endfontface", endRule);
[9908] Fix | Delete
[9909] Fix | Delete
}
[9910] Fix | Delete
[9911] Fix | Delete
});
[9912] Fix | Delete
[9913] Fix | Delete
/*
[9914] Fix | Delete
* Rule: Don't use properties with a underscore prefix.
[9915] Fix | Delete
*
[9916] Fix | Delete
*/
[9917] Fix | Delete
[9918] Fix | Delete
CSSLint.addRule({
[9919] Fix | Delete
[9920] Fix | Delete
// rule information
[9921] Fix | Delete
id: "underscore-property-hack",
[9922] Fix | Delete
name: "Disallow properties with an underscore prefix",
[9923] Fix | Delete
desc: "Checks for the underscore property hack (targets IE6)",
[9924] Fix | Delete
url: "https://github.com/CSSLint/csslint/wiki/Disallow-underscore-hack",
[9925] Fix | Delete
browsers: "All",
[9926] Fix | Delete
[9927] Fix | Delete
// initialization
[9928] Fix | Delete
init: function(parser, reporter) {
[9929] Fix | Delete
"use strict";
[9930] Fix | Delete
var rule = this;
[9931] Fix | Delete
[9932] Fix | Delete
// check if property name starts with "_"
[9933] Fix | Delete
parser.addListener("property", function(event) {
[9934] Fix | Delete
var property = event.property;
[9935] Fix | Delete
[9936] Fix | Delete
if (property.hack === "_") {
[9937] Fix | Delete
reporter.report("Property with underscore prefix found.", event.property.line, event.property.col, rule);
[9938] Fix | Delete
}
[9939] Fix | Delete
});
[9940] Fix | Delete
}
[9941] Fix | Delete
});
[9942] Fix | Delete
[9943] Fix | Delete
/*
[9944] Fix | Delete
* Rule: Headings (h1-h6) should be defined only once.
[9945] Fix | Delete
*/
[9946] Fix | Delete
[9947] Fix | Delete
CSSLint.addRule({
[9948] Fix | Delete
[9949] Fix | Delete
// rule information
[9950] Fix | Delete
id: "unique-headings",
[9951] Fix | Delete
name: "Headings should only be defined once",
[9952] Fix | Delete
desc: "Headings should be defined only once.",
[9953] Fix | Delete
url: "https://github.com/CSSLint/csslint/wiki/Headings-should-only-be-defined-once",
[9954] Fix | Delete
browsers: "All",
[9955] Fix | Delete
[9956] Fix | Delete
// initialization
[9957] Fix | Delete
init: function(parser, reporter) {
[9958] Fix | Delete
"use strict";
[9959] Fix | Delete
var rule = this;
[9960] Fix | Delete
[9961] Fix | Delete
var headings = {
[9962] Fix | Delete
h1: 0,
[9963] Fix | Delete
h2: 0,
[9964] Fix | Delete
h3: 0,
[9965] Fix | Delete
h4: 0,
[9966] Fix | Delete
h5: 0,
[9967] Fix | Delete
h6: 0
[9968] Fix | Delete
};
[9969] Fix | Delete
[9970] Fix | Delete
parser.addListener("startrule", function(event) {
[9971] Fix | Delete
var selectors = event.selectors,
[9972] Fix | Delete
selector,
[9973] Fix | Delete
part,
[9974] Fix | Delete
pseudo,
[9975] Fix | Delete
i, j;
[9976] Fix | Delete
[9977] Fix | Delete
for (i=0; i < selectors.length; i++) {
[9978] Fix | Delete
selector = selectors[i];
[9979] Fix | Delete
part = selector.parts[selector.parts.length-1];
[9980] Fix | Delete
[9981] Fix | Delete
if (part.elementName && /(h[1-6])/i.test(part.elementName.toString())) {
[9982] Fix | Delete
[9983] Fix | Delete
for (j=0; j < part.modifiers.length; j++) {
[9984] Fix | Delete
if (part.modifiers[j].type === "pseudo") {
[9985] Fix | Delete
pseudo = true;
[9986] Fix | Delete
break;
[9987] Fix | Delete
}
[9988] Fix | Delete
}
[9989] Fix | Delete
[9990] Fix | Delete
if (!pseudo) {
[9991] Fix | Delete
headings[RegExp.$1]++;
[9992] Fix | Delete
if (headings[RegExp.$1] > 1) {
[9993] Fix | Delete
reporter.report("Heading (" + part.elementName + ") has already been defined.", part.line, part.col, rule);
[9994] Fix | Delete
}
[9995] Fix | Delete
}
[9996] Fix | Delete
}
[9997] Fix | Delete
}
[9998] Fix | Delete
});
[9999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function