Make no-unused-requires rule fixable
This commit is contained in:
@@ -29,6 +29,7 @@ exports.rule = {
|
|||||||
docs: {
|
docs: {
|
||||||
description: 'disallow unused goog.require() calls'
|
description: 'disallow unused goog.require() calls'
|
||||||
},
|
},
|
||||||
|
fixable: 'code',
|
||||||
schema: []
|
schema: []
|
||||||
},
|
},
|
||||||
create: function(context) {
|
create: function(context) {
|
||||||
@@ -55,7 +56,15 @@ exports.rule = {
|
|||||||
if (name in requireNodes) {
|
if (name in requireNodes) {
|
||||||
return context.report(node, `Duplicate goog.require('${name}')`);
|
return context.report(node, `Duplicate goog.require('${name}')`);
|
||||||
}
|
}
|
||||||
requireNodes[name] = node;
|
const ancestors = context.getAncestors();
|
||||||
|
const parent = ancestors[ancestors.length - 1];
|
||||||
|
if (!parent || parent.type !== 'ExpressionStatement') {
|
||||||
|
return context.report(node, 'Expected goog.require() to be in an expression statement');
|
||||||
|
}
|
||||||
|
requireNodes[name] = {
|
||||||
|
expression: node,
|
||||||
|
statement: parent
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
@@ -90,7 +99,18 @@ exports.rule = {
|
|||||||
for (let name in requireNodes) {
|
for (let name in requireNodes) {
|
||||||
if (!usedNames[name]) {
|
if (!usedNames[name]) {
|
||||||
const unusedRequire = requireNodes[name];
|
const unusedRequire = requireNodes[name];
|
||||||
context.report(unusedRequire, `Unused ${source.getText(unusedRequire)}`);
|
context.report({
|
||||||
|
node: unusedRequire.expression,
|
||||||
|
message: `Unused ${source.getText(unusedRequire.expression)}`,
|
||||||
|
fix: function(fixer) {
|
||||||
|
const afterToken = source.getTokenAfter(unusedRequire.statement);
|
||||||
|
const range = [
|
||||||
|
unusedRequire.statement.range[0],
|
||||||
|
afterToken ? afterToken.range[0] : unusedRequire.statement.range[1]
|
||||||
|
];
|
||||||
|
return fixer.removeRange(range);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user