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 ')')."
            });
        }
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
same could potentially be applied to FunctionDeclaration