UNPKG

2.48 kBJavaScriptView Raw
1/**
2 * @fileoverview Rule to check that spaced function application
3 * @author Matt DuVall <http://www.mattduvall.com>
4 * @deprecated in ESLint v3.3.0
5 */
6
7"use strict";
8
9//------------------------------------------------------------------------------
10// Rule Definition
11//------------------------------------------------------------------------------
12
13module.exports = {
14 meta: {
15 type: "layout",
16
17 docs: {
18 description: "disallow spacing between function identifiers and their applications (deprecated)",
19 category: "Stylistic Issues",
20 recommended: false,
21 url: "https://eslint.org/docs/rules/no-spaced-func"
22 },
23
24 deprecated: true,
25
26 replacedBy: ["func-call-spacing"],
27
28 fixable: "whitespace",
29 schema: [],
30
31 messages: {
32 noSpacedFunction: "Unexpected space between function name and paren."
33 }
34 },
35
36 create(context) {
37
38 const sourceCode = context.getSourceCode();
39
40 /**
41 * Check if open space is present in a function name
42 * @param {ASTNode} node node to evaluate
43 * @returns {void}
44 * @private
45 */
46 function detectOpenSpaces(node) {
47 const lastCalleeToken = sourceCode.getLastToken(node.callee);
48 let prevToken = lastCalleeToken,
49 parenToken = sourceCode.getTokenAfter(lastCalleeToken);
50
51 // advances to an open parenthesis.
52 while (
53 parenToken &&
54 parenToken.range[1] < node.range[1] &&
55 parenToken.value !== "("
56 ) {
57 prevToken = parenToken;
58 parenToken = sourceCode.getTokenAfter(parenToken);
59 }
60
61 // look for a space between the callee and the open paren
62 if (parenToken &&
63 parenToken.range[1] < node.range[1] &&
64 sourceCode.isSpaceBetweenTokens(prevToken, parenToken)
65 ) {
66 context.report({
67 node,
68 loc: lastCalleeToken.loc.start,
69 messageId: "noSpacedFunction",
70 fix(fixer) {
71 return fixer.removeRange([prevToken.range[1], parenToken.range[0]]);
72 }
73 });
74 }
75 }
76
77 return {
78 CallExpression: detectOpenSpaces,
79 NewExpression: detectOpenSpaces
80 };
81
82 }
83};