lib/rules/function-whitespace.js
function inspectCallExpression(emitted) {
            let node = emitted.node,
                callArgs = node.arguments;

            if (emitted.exit) {
                return;
            }

            let nodeCode = sourceCode.getText(node);

            //for a 0-argument call, ensure that name is followed by '()'
            if (!callArgs.length) {
                for (let i = nodeCode.length; i > 0; i--) {
                    if (nodeCode [i] === ")" && nodeCode [i-1] === "(") {
                        return;
                    }
                    if (/[\s\(\)]/.test(nodeCode [i])) {
                        break;
                    }
                }

                return context.report({
                    node: node,
                    message: "\"" + nodeCode + "\": " +
					"A call without arguments should have brackets without any whitespace between them, like 'functionName ()'."
                });
            }

            let lastCallArg = callArgs.slice(-1) [0];

            //if call spans over multiple lines (due to too many arguments), below rules don't apply
            if (sourceCode.getLine(node) !== sourceCode.getEndingLine(lastCallArg)) {
                return;
            }

            let charBeforeFirstArg = sourceCode.getPrevChar(callArgs [0]),
                charAfterLastCallArg = sourceCode.getNextChar(lastCallArg);

            (callArgs [0].type !== "NameValueAssignment" && charBeforeFirstArg !== "(") && context.report({
                node: callArgs [0],
                location: {
                    column: sourceCode.getColumn(callArgs [0]) - 1
                },
                message: "'" + node.callee.name + "': The first argument must not be preceded by any whitespace or comments (only '(')."
            });

            (lastCallArg.type !== "NameValueAssignment" && charAfterLastCallArg !== ")") && context.report({
                node: callArgs [0],
                location: {
                    column: sourceCode.getEndingColumn(lastCallArg) + 1
                },
                message: "'" + node.callee.name + "': The last argument must not be succeeded by any whitespace or comments (only ')')."
            });
        }
function inspectCallExpression(emitted) {
            let node = emitted.node,
                callArgs = node.arguments;

            if (emitted.exit) {
                return;
            }

            let nodeCode = sourceCode.getText(node);

            //for a 0-argument call, ensure that name is followed by '()'
            if (!callArgs.length) {
                for (let i = nodeCode.length; i > 0; i--) {
                    if (nodeCode [i] === ")" && nodeCode [i-1] === "(") {
                        return;
                    }
                    if (/[\s\(\)]/.test(nodeCode [i])) {
                        break;
                    }
                }

                return context.report({
                    node: node,
                    message: "\"" + nodeCode + "\": " +
					"A call without arguments should have brackets without any whitespace between them, like 'functionName ()'."
                });
            }

            let lastCallArg = callArgs.slice(-1) [0];

            //if call spans over multiple lines (due to too many arguments), below rules don't apply
            if (sourceCode.getLine(node) !== sourceCode.getEndingLine(lastCallArg)) {
                return;
            }

            let charBeforeFirstArg = sourceCode.getPrevChar(callArgs [0]),
                charAfterLastCallArg = sourceCode.getNextChar(lastCallArg);

            (callArgs [0].type !== "NameValueAssignment" && charBeforeFirstArg !== "(") && context.report({
                node: callArgs [0],
                location: {
                    column: sourceCode.getColumn(callArgs [0]) - 1
                },
                message: "'" + node.callee.name + "': The first argument must not be preceded by any whitespace or comments (only '(')."
            });

            (lastCallArg.type !== "NameValueAssignment" && charAfterLastCallArg !== ")") && context.report({
                node: callArgs [0],
                location: {
                    column: sourceCode.getEndingColumn(lastCallArg) + 1
                },
                message: "'" + node.callee.name + "': The last argument must not be succeeded by any whitespace or comments (only ')')."
            });
        }
same could potentially be applied to FunctionDeclaration