tools: remove custom align-function-arguments rule
ESLint `indent` rule now has options that duplicate functionality in our custom `align-function-arguments` rule. Remove `align-function-arguments` custom rule. PR-URL: https://github.com/nodejs/node/pull/10561 Reviewed-By: Teddy Katz <teddy.katz@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
This commit is contained in:
parent
f44969a5ab
commit
33cd0aa70c
@ -124,7 +124,6 @@ rules:
|
|||||||
template-curly-spacing: 2
|
template-curly-spacing: 2
|
||||||
|
|
||||||
# Custom rules in tools/eslint-rules
|
# Custom rules in tools/eslint-rules
|
||||||
align-function-arguments: 2
|
|
||||||
align-multiline-assignment: 2
|
align-multiline-assignment: 2
|
||||||
assert-fail-single-argument: 2
|
assert-fail-single-argument: 2
|
||||||
assert-throws-arguments: [2, { requireTwo: false }]
|
assert-throws-arguments: [2, { requireTwo: false }]
|
||||||
|
@ -1,76 +0,0 @@
|
|||||||
/**
|
|
||||||
* @fileoverview Align arguments in multiline function calls
|
|
||||||
* @author Rich Trott
|
|
||||||
*/
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
// Rule Definition
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
function checkArgumentAlignment(context, node) {
|
|
||||||
|
|
||||||
function isNodeFirstInLine(node, byEndLocation) {
|
|
||||||
const firstToken = byEndLocation === true ? context.getLastToken(node, 1) :
|
|
||||||
context.getTokenBefore(node);
|
|
||||||
const startLine = byEndLocation === true ? node.loc.end.line :
|
|
||||||
node.loc.start.line;
|
|
||||||
const endLine = firstToken ? firstToken.loc.end.line : -1;
|
|
||||||
|
|
||||||
return startLine !== endLine;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (node.arguments.length === 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var msg = '';
|
|
||||||
const first = node.arguments[0];
|
|
||||||
var currentLine = first.loc.start.line;
|
|
||||||
const firstColumn = first.loc.start.column;
|
|
||||||
|
|
||||||
const ignoreTypes = [
|
|
||||||
'ArrowFunctionExpression',
|
|
||||||
'FunctionExpression',
|
|
||||||
'ObjectExpression',
|
|
||||||
];
|
|
||||||
|
|
||||||
const args = node.arguments;
|
|
||||||
|
|
||||||
// For now, don't bother trying to validate potentially complicating things
|
|
||||||
// like closures. Different people will have very different ideas and it's
|
|
||||||
// probably best to implement configuration options.
|
|
||||||
if (args.some((node) => { return ignoreTypes.indexOf(node.type) !== -1; })) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isNodeFirstInLine(node)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var misaligned;
|
|
||||||
|
|
||||||
args.slice(1).forEach((argument) => {
|
|
||||||
if (!misaligned) {
|
|
||||||
if (argument.loc.start.line === currentLine + 1) {
|
|
||||||
if (argument.loc.start.column !== firstColumn) {
|
|
||||||
if (isNodeFirstInLine(argument)) {
|
|
||||||
msg = 'Function argument in column ' +
|
|
||||||
`${argument.loc.start.column + 1}, ` +
|
|
||||||
`expected in ${firstColumn + 1}`;
|
|
||||||
misaligned = argument;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
currentLine = argument.loc.start.line;
|
|
||||||
});
|
|
||||||
|
|
||||||
if (msg)
|
|
||||||
context.report(misaligned, msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = function(context) {
|
|
||||||
return {
|
|
||||||
'CallExpression': (node) => checkArgumentAlignment(context, node)
|
|
||||||
};
|
|
||||||
};
|
|
Loading…
x
Reference in New Issue
Block a user