MidnightRiders/MemberPortal

View on GitHub
app/javascript/vendor/foundation/foundation.clearing.js

Summary

Maintainability
D
2 days
Test Coverage

File foundation.clearing.js has 462 lines of code (exceeds 250 allowed). Consider refactoring.
Open

;(function ($, window, document, undefined) {
  'use strict';

  Foundation.libs.clearing = {
    name : 'clearing',
Severity: Minor
Found in app/javascript/vendor/foundation/foundation.clearing.js - About 7 hrs to fix

    Function open has 58 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

        open : function ($image, current, target) {
          var self = this,
              body = $(document.body),
              root = target.closest('.clearing-assembled'),
              container = self.S('div', root).first(),
    Severity: Major
    Found in app/javascript/vendor/foundation/foundation.clearing.js - About 2 hrs to fix

      Function swipe_events has 44 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

          swipe_events : function (scope) {
            var self = this,
            S = self.S;
      
            S(this.scope)
      Severity: Minor
      Found in app/javascript/vendor/foundation/foundation.clearing.js - About 1 hr to fix

        Function events has 40 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

            events : function (scope) {
              var self = this,
                  S = self.S,
                  $scroll_container = $('.scroll-container');
        
        
        Severity: Minor
        Found in app/javascript/vendor/foundation/foundation.clearing.js - About 1 hr to fix

          Function shift has 30 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

              shift : function (current, target, callback) {
                var clearing = target.parent(),
                    old_index = this.settings.prev_index || target.index(),
                    direction = this.direction(clearing, current, target),
                    dir = this.rtl ? 'right' : 'left',
          Severity: Minor
          Found in app/javascript/vendor/foundation/foundation.clearing.js - About 1 hr to fix

            Unnecessary semicolon.
            Open

            ;(function ($, window, document, undefined) {

            disallow unnecessary semicolons (no-extra-semi)

            Typing mistakes and misunderstandings about where semicolons are required can lead to semicolons that are unnecessary. While not technically an error, extra semicolons can cause confusion when reading code.

            Rule Details

            This rule disallows unnecessary semicolons.

            Examples of incorrect code for this rule:

            /*eslint no-extra-semi: "error"*/
            
            var x = 5;;
            
            function foo() {
                // code
            };

            Examples of correct code for this rule:

            /*eslint no-extra-semi: "error"*/
            
            var x = 5;
            
            var foo = function() {
                // code
            };

            When Not To Use It

            If you intentionally use extra semicolons then you can disable this rule.

            Related Rules

            'Foundation' is not defined.
            Open

                  Foundation.inherit(this, 'throttle image_loaded');

            Disallow Undeclared Variables (no-undef)

            This rule can help you locate potential ReferenceErrors resulting from misspellings of variable and parameter names, or accidental implicit globals (for example, from forgetting the var keyword in a for loop initializer).

            Rule Details

            Any reference to an undeclared variable causes a warning, unless the variable is explicitly mentioned in a /*global ...*/ comment.

            Examples of incorrect code for this rule:

            /*eslint no-undef: "error"*/
            
            var a = someFunction();
            b = 10;

            Examples of correct code for this rule with global declaration:

            /*global someFunction b:true*/
            /*eslint no-undef: "error"*/
            
            var a = someFunction();
            b = 10;

            The b:true syntax in /*global */ indicates that assignment to b is correct.

            Examples of incorrect code for this rule with global declaration:

            /*global b*/
            /*eslint no-undef: "error"*/
            
            b = 10;

            By default, variables declared in /*global */ are read-only, therefore assignment is incorrect.

            Options

            • typeof set to true will warn for variables used inside typeof check (Default false).

            typeof

            Examples of correct code for the default { "typeof": false } option:

            /*eslint no-undef: "error"*/
            
            if (typeof UndefinedIdentifier === "undefined") {
                // do something ...
            }

            You can use this option if you want to prevent typeof check on a variable which has not been declared.

            Examples of incorrect code for the { "typeof": true } option:

            /*eslint no-undef: ["error", { "typeof": true }] */
            
            if(typeof a === "string"){}

            Examples of correct code for the { "typeof": true } option with global declaration:

            /*global a*/
            /*eslint no-undef: ["error", { "typeof": true }] */
            
            if(typeof a === "string"){}

            Environments

            For convenience, ESLint provides shortcuts that pre-define global variables exposed by popular libraries and runtime environments. This rule supports these environments, as listed in Specifying Environments. A few examples are given below.

            browser

            Examples of correct code for this rule with browser environment:

            /*eslint no-undef: "error"*/
            /*eslint-env browser*/
            
            setTimeout(function() {
                alert("Hello");
            });

            node

            Examples of correct code for this rule with node environment:

            /*eslint no-undef: "error"*/
            /*eslint-env node*/
            
            var fs = require("fs");
            module.exports = function() {
                console.log(fs);
            };

            When Not To Use It

            If explicit declaration of global variables is not to your taste.

            Compatibility

            This rule provides compatibility with treatment of global variables in JSHint and JSLint. Source: http://eslint.org/docs/rules/

            'Foundation' is not defined.
            Open

              Foundation.libs.clearing = {

            Disallow Undeclared Variables (no-undef)

            This rule can help you locate potential ReferenceErrors resulting from misspellings of variable and parameter names, or accidental implicit globals (for example, from forgetting the var keyword in a for loop initializer).

            Rule Details

            Any reference to an undeclared variable causes a warning, unless the variable is explicitly mentioned in a /*global ...*/ comment.

            Examples of incorrect code for this rule:

            /*eslint no-undef: "error"*/
            
            var a = someFunction();
            b = 10;

            Examples of correct code for this rule with global declaration:

            /*global someFunction b:true*/
            /*eslint no-undef: "error"*/
            
            var a = someFunction();
            b = 10;

            The b:true syntax in /*global */ indicates that assignment to b is correct.

            Examples of incorrect code for this rule with global declaration:

            /*global b*/
            /*eslint no-undef: "error"*/
            
            b = 10;

            By default, variables declared in /*global */ are read-only, therefore assignment is incorrect.

            Options

            • typeof set to true will warn for variables used inside typeof check (Default false).

            typeof

            Examples of correct code for the default { "typeof": false } option:

            /*eslint no-undef: "error"*/
            
            if (typeof UndefinedIdentifier === "undefined") {
                // do something ...
            }

            You can use this option if you want to prevent typeof check on a variable which has not been declared.

            Examples of incorrect code for the { "typeof": true } option:

            /*eslint no-undef: ["error", { "typeof": true }] */
            
            if(typeof a === "string"){}

            Examples of correct code for the { "typeof": true } option with global declaration:

            /*global a*/
            /*eslint no-undef: ["error", { "typeof": true }] */
            
            if(typeof a === "string"){}

            Environments

            For convenience, ESLint provides shortcuts that pre-define global variables exposed by popular libraries and runtime environments. This rule supports these environments, as listed in Specifying Environments. A few examples are given below.

            browser

            Examples of correct code for this rule with browser environment:

            /*eslint no-undef: "error"*/
            /*eslint-env browser*/
            
            setTimeout(function() {
                alert("Hello");
            });

            node

            Examples of correct code for this rule with node environment:

            /*eslint no-undef: "error"*/
            /*eslint-env node*/
            
            var fs = require("fs");
            module.exports = function() {
                console.log(fs);
            };

            When Not To Use It

            If explicit declaration of global variables is not to your taste.

            Compatibility

            This rule provides compatibility with treatment of global variables in JSHint and JSLint. Source: http://eslint.org/docs/rules/

            'Foundation' is not defined.
            Open

                      if (Foundation.rtl) {

            Disallow Undeclared Variables (no-undef)

            This rule can help you locate potential ReferenceErrors resulting from misspellings of variable and parameter names, or accidental implicit globals (for example, from forgetting the var keyword in a for loop initializer).

            Rule Details

            Any reference to an undeclared variable causes a warning, unless the variable is explicitly mentioned in a /*global ...*/ comment.

            Examples of incorrect code for this rule:

            /*eslint no-undef: "error"*/
            
            var a = someFunction();
            b = 10;

            Examples of correct code for this rule with global declaration:

            /*global someFunction b:true*/
            /*eslint no-undef: "error"*/
            
            var a = someFunction();
            b = 10;

            The b:true syntax in /*global */ indicates that assignment to b is correct.

            Examples of incorrect code for this rule with global declaration:

            /*global b*/
            /*eslint no-undef: "error"*/
            
            b = 10;

            By default, variables declared in /*global */ are read-only, therefore assignment is incorrect.

            Options

            • typeof set to true will warn for variables used inside typeof check (Default false).

            typeof

            Examples of correct code for the default { "typeof": false } option:

            /*eslint no-undef: "error"*/
            
            if (typeof UndefinedIdentifier === "undefined") {
                // do something ...
            }

            You can use this option if you want to prevent typeof check on a variable which has not been declared.

            Examples of incorrect code for the { "typeof": true } option:

            /*eslint no-undef: ["error", { "typeof": true }] */
            
            if(typeof a === "string"){}

            Examples of correct code for the { "typeof": true } option with global declaration:

            /*global a*/
            /*eslint no-undef: ["error", { "typeof": true }] */
            
            if(typeof a === "string"){}

            Environments

            For convenience, ESLint provides shortcuts that pre-define global variables exposed by popular libraries and runtime environments. This rule supports these environments, as listed in Specifying Environments. A few examples are given below.

            browser

            Examples of correct code for this rule with browser environment:

            /*eslint no-undef: "error"*/
            /*eslint-env browser*/
            
            setTimeout(function() {
                alert("Hello");
            });

            node

            Examples of correct code for this rule with node environment:

            /*eslint no-undef: "error"*/
            /*eslint-env node*/
            
            var fs = require("fs");
            module.exports = function() {
                console.log(fs);
            };

            When Not To Use It

            If explicit declaration of global variables is not to your taste.

            Compatibility

            This rule provides compatibility with treatment of global variables in JSHint and JSLint. Source: http://eslint.org/docs/rules/

            'scope' is defined but never used.
            Open

                swipe_events : function (scope) {

            Disallow Unused Variables (no-unused-vars)

            Variables that are declared and not used anywhere in the code are most likely an error due to incomplete refactoring. Such variables take up space in the code and can lead to confusion by readers.

            Rule Details

            This rule is aimed at eliminating unused variables, functions, and parameters of functions.

            A variable is considered to be used if any of the following are true:

            • It represents a function that is called (doSomething())
            • It is read (var y = x)
            • It is passed into a function as an argument (doSomething(x))
            • It is read inside of a function that is passed to another function (doSomething(function() { foo(); }))

            A variable is not considered to be used if it is only ever assigned to (var x = 5) or declared.

            Examples of incorrect code for this rule:

            /*eslint no-unused-vars: "error"*/
            /*global some_unused_var*/
            
            // It checks variables you have defined as global
            some_unused_var = 42;
            
            var x;
            
            // Write-only variables are not considered as used.
            var y = 10;
            y = 5;
            
            // A read for a modification of itself is not considered as used.
            var z = 0;
            z = z + 1;
            
            // By default, unused arguments cause warnings.
            (function(foo) {
                return 5;
            })();
            
            // Unused recursive functions also cause warnings.
            function fact(n) {
                if (n < 2) return 1;
                return n * fact(n - 1);
            }
            
            // When a function definition destructures an array, unused entries from the array also cause warnings.
            function getY([x, y]) {
                return y;
            }

            Examples of correct code for this rule:

            /*eslint no-unused-vars: "error"*/
            
            var x = 10;
            alert(x);
            
            // foo is considered used here
            myFunc(function foo() {
                // ...
            }.bind(this));
            
            (function(foo) {
                return foo;
            })();
            
            var myFunc;
            myFunc = setTimeout(function() {
                // myFunc is considered used
                myFunc();
            }, 50);
            
            // Only the second argument from the descructured array is used.
            function getY([, y]) {
                return y;
            }

            exported

            In environments outside of CommonJS or ECMAScript modules, you may use var to create a global variable that may be used by other scripts. You can use the /* exported variableName */ comment block to indicate that this variable is being exported and therefore should not be considered unused.

            Note that /* exported */ has no effect for any of the following:

            • when the environment is node or commonjs
            • when parserOptions.sourceType is module
            • when ecmaFeatures.globalReturn is true

            The line comment // exported variableName will not work as exported is not line-specific.

            Examples of correct code for /* exported variableName */ operation:

            /* exported global_var */
            
            var global_var = 42;

            Options

            This rule takes one argument which can be a string or an object. The string settings are the same as those of the vars property (explained below).

            By default this rule is enabled with all option for variables and after-used for arguments.

            {
                "rules": {
                    "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": false }]
                }
            }

            vars

            The vars option has two settings:

            • all checks all variables for usage, including those in the global scope. This is the default setting.
            • local checks only that locally-declared variables are used but will allow global variables to be unused.

            vars: local

            Examples of correct code for the { "vars": "local" } option:

            /*eslint no-unused-vars: ["error", { "vars": "local" }]*/
            /*global some_unused_var */
            
            some_unused_var = 42;

            varsIgnorePattern

            The varsIgnorePattern option specifies exceptions not to check for usage: variables whose names match a regexp pattern. For example, variables whose names contain ignored or Ignored.

            Examples of correct code for the { "varsIgnorePattern": "[iI]gnored" } option:

            /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/
            
            var firstVarIgnored = 1;
            var secondVar = 2;
            console.log(secondVar);

            args

            The args option has three settings:

            • after-used - only the last argument must be used. This allows you, for instance, to have two named parameters to a function and as long as you use the second argument, ESLint will not warn you about the first. This is the default setting.
            • all - all named arguments must be used.
            • none - do not check arguments.

            args: after-used

            Examples of incorrect code for the default { "args": "after-used" } option:

            /*eslint no-unused-vars: ["error", { "args": "after-used" }]*/
            
            // 1 error
            // "baz" is defined but never used
            (function(foo, bar, baz) {
                return bar;
            })();

            Examples of correct code for the default { "args": "after-used" } option:

            /*eslint no-unused-vars: ["error", {"args": "after-used"}]*/
            
            (function(foo, bar, baz) {
                return baz;
            })();

            args: all

            Examples of incorrect code for the { "args": "all" } option:

            /*eslint no-unused-vars: ["error", { "args": "all" }]*/
            
            // 2 errors
            // "foo" is defined but never used
            // "baz" is defined but never used
            (function(foo, bar, baz) {
                return bar;
            })();

            args: none

            Examples of correct code for the { "args": "none" } option:

            /*eslint no-unused-vars: ["error", { "args": "none" }]*/
            
            (function(foo, bar, baz) {
                return bar;
            })();

            ignoreRestSiblings

            The ignoreRestSiblings option is a boolean (default: false). Using a Rest Property it is possible to "omit" properties from an object, but by default the sibling properties are marked as "unused". With this option enabled the rest property's siblings are ignored.

            Examples of correct code for the { "ignoreRestSiblings": true } option:

            /*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
            // 'type' is ignored because it has a rest property sibling.
            var { type, ...coords } = data;

            argsIgnorePattern

            The argsIgnorePattern option specifies exceptions not to check for usage: arguments whose names match a regexp pattern. For example, variables whose names begin with an underscore.

            Examples of correct code for the { "argsIgnorePattern": "^_" } option:

            /*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/
            
            function foo(x, _y) {
                return x + 1;
            }
            foo();

            caughtErrors

            The caughtErrors option is used for catch block arguments validation.

            It has two settings:

            • none - do not check error objects. This is the default setting.
            • all - all named arguments must be used.

            caughtErrors: none

            Not specifying this rule is equivalent of assigning it to none.

            Examples of correct code for the { "caughtErrors": "none" } option:

            /*eslint no-unused-vars: ["error", { "caughtErrors": "none" }]*/
            
            try {
                //...
            } catch (err) {
                console.error("errors");
            }

            caughtErrors: all

            Examples of incorrect code for the { "caughtErrors": "all" } option:

            /*eslint no-unused-vars: ["error", { "caughtErrors": "all" }]*/
            
            // 1 error
            // "err" is defined but never used
            try {
                //...
            } catch (err) {
                console.error("errors");
            }

            caughtErrorsIgnorePattern

            The caughtErrorsIgnorePattern option specifies exceptions not to check for usage: catch arguments whose names match a regexp pattern. For example, variables whose names begin with a string 'ignore'.

            Examples of correct code for the { "caughtErrorsIgnorePattern": "^ignore" } option:

            /*eslint no-unused-vars: ["error", { "caughtErrorsIgnorePattern": "^ignore" }]*/
            
            try {
                //...
            } catch (ignoreErr) {
                console.error("errors");
            }

            When Not To Use It

            If you don't want to be notified about unused variables or function arguments, you can safely turn this rule off. Source: http://eslint.org/docs/rules/

            'Foundation' is not defined.
            Open

                      function (e) { Foundation.libs.clearing.close(e, this) });

            Disallow Undeclared Variables (no-undef)

            This rule can help you locate potential ReferenceErrors resulting from misspellings of variable and parameter names, or accidental implicit globals (for example, from forgetting the var keyword in a for loop initializer).

            Rule Details

            Any reference to an undeclared variable causes a warning, unless the variable is explicitly mentioned in a /*global ...*/ comment.

            Examples of incorrect code for this rule:

            /*eslint no-undef: "error"*/
            
            var a = someFunction();
            b = 10;

            Examples of correct code for this rule with global declaration:

            /*global someFunction b:true*/
            /*eslint no-undef: "error"*/
            
            var a = someFunction();
            b = 10;

            The b:true syntax in /*global */ indicates that assignment to b is correct.

            Examples of incorrect code for this rule with global declaration:

            /*global b*/
            /*eslint no-undef: "error"*/
            
            b = 10;

            By default, variables declared in /*global */ are read-only, therefore assignment is incorrect.

            Options

            • typeof set to true will warn for variables used inside typeof check (Default false).

            typeof

            Examples of correct code for the default { "typeof": false } option:

            /*eslint no-undef: "error"*/
            
            if (typeof UndefinedIdentifier === "undefined") {
                // do something ...
            }

            You can use this option if you want to prevent typeof check on a variable which has not been declared.

            Examples of incorrect code for the { "typeof": true } option:

            /*eslint no-undef: ["error", { "typeof": true }] */
            
            if(typeof a === "string"){}

            Examples of correct code for the { "typeof": true } option with global declaration:

            /*global a*/
            /*eslint no-undef: ["error", { "typeof": true }] */
            
            if(typeof a === "string"){}

            Environments

            For convenience, ESLint provides shortcuts that pre-define global variables exposed by popular libraries and runtime environments. This rule supports these environments, as listed in Specifying Environments. A few examples are given below.

            browser

            Examples of correct code for this rule with browser environment:

            /*eslint no-undef: "error"*/
            /*eslint-env browser*/
            
            setTimeout(function() {
                alert("Hello");
            });

            node

            Examples of correct code for this rule with node environment:

            /*eslint no-undef: "error"*/
            /*eslint-env node*/
            
            var fs = require("fs");
            module.exports = function() {
                console.log(fs);
            };

            When Not To Use It

            If explicit declaration of global variables is not to your taste.

            Compatibility

            This rule provides compatibility with treatment of global variables in JSHint and JSLint. Source: http://eslint.org/docs/rules/

            'target' is already defined.
            Open

                            target = target || current,

            disallow variable redeclaration (no-redeclare)

            In JavaScript, it's possible to redeclare the same variable name using var. This can lead to confusion as to where the variable is actually declared and initialized.

            Rule Details

            This rule is aimed at eliminating variables that have multiple declarations in the same scope.

            Examples of incorrect code for this rule:

            /*eslint no-redeclare: "error"*/
            
            var a = 3;
            var a = 10;

            Examples of correct code for this rule:

            /*eslint no-redeclare: "error"*/
            
            var a = 3;
            // ...
            a = 10;

            Options

            This rule takes one optional argument, an object with a boolean property "builtinGlobals". It defaults to false. If set to true, this rule also checks redeclaration of built-in globals, such as Object, Array, Number...

            builtinGlobals

            Examples of incorrect code for the { "builtinGlobals": true } option:

            /*eslint no-redeclare: ["error", { "builtinGlobals": true }]*/
            
            var Object = 0;

            Examples of incorrect code for the { "builtinGlobals": true } option and the browser environment:

            /*eslint no-redeclare: ["error", { "builtinGlobals": true }]*/
            /*eslint-env browser*/
            
            var top = 0;

            The browser environment has many built-in global variables (for example, top). Some of built-in global variables cannot be redeclared. Source: http://eslint.org/docs/rules/

            'Modernizr' is not defined.
            Open

                  if (Modernizr.touch) {

            Disallow Undeclared Variables (no-undef)

            This rule can help you locate potential ReferenceErrors resulting from misspellings of variable and parameter names, or accidental implicit globals (for example, from forgetting the var keyword in a for loop initializer).

            Rule Details

            Any reference to an undeclared variable causes a warning, unless the variable is explicitly mentioned in a /*global ...*/ comment.

            Examples of incorrect code for this rule:

            /*eslint no-undef: "error"*/
            
            var a = someFunction();
            b = 10;

            Examples of correct code for this rule with global declaration:

            /*global someFunction b:true*/
            /*eslint no-undef: "error"*/
            
            var a = someFunction();
            b = 10;

            The b:true syntax in /*global */ indicates that assignment to b is correct.

            Examples of incorrect code for this rule with global declaration:

            /*global b*/
            /*eslint no-undef: "error"*/
            
            b = 10;

            By default, variables declared in /*global */ are read-only, therefore assignment is incorrect.

            Options

            • typeof set to true will warn for variables used inside typeof check (Default false).

            typeof

            Examples of correct code for the default { "typeof": false } option:

            /*eslint no-undef: "error"*/
            
            if (typeof UndefinedIdentifier === "undefined") {
                // do something ...
            }

            You can use this option if you want to prevent typeof check on a variable which has not been declared.

            Examples of incorrect code for the { "typeof": true } option:

            /*eslint no-undef: ["error", { "typeof": true }] */
            
            if(typeof a === "string"){}

            Examples of correct code for the { "typeof": true } option with global declaration:

            /*global a*/
            /*eslint no-undef: ["error", { "typeof": true }] */
            
            if(typeof a === "string"){}

            Environments

            For convenience, ESLint provides shortcuts that pre-define global variables exposed by popular libraries and runtime environments. This rule supports these environments, as listed in Specifying Environments. A few examples are given below.

            browser

            Examples of correct code for this rule with browser environment:

            /*eslint no-undef: "error"*/
            /*eslint-env browser*/
            
            setTimeout(function() {
                alert("Hello");
            });

            node

            Examples of correct code for this rule with node environment:

            /*eslint no-undef: "error"*/
            /*eslint-env node*/
            
            var fs = require("fs");
            module.exports = function() {
                console.log(fs);
            };

            When Not To Use It

            If explicit declaration of global variables is not to your taste.

            Compatibility

            This rule provides compatibility with treatment of global variables in JSHint and JSLint. Source: http://eslint.org/docs/rules/

            'current' is already defined.
            Open

                        var current = current || S(this),

            disallow variable redeclaration (no-redeclare)

            In JavaScript, it's possible to redeclare the same variable name using var. This can lead to confusion as to where the variable is actually declared and initialized.

            Rule Details

            This rule is aimed at eliminating variables that have multiple declarations in the same scope.

            Examples of incorrect code for this rule:

            /*eslint no-redeclare: "error"*/
            
            var a = 3;
            var a = 10;

            Examples of correct code for this rule:

            /*eslint no-redeclare: "error"*/
            
            var a = 3;
            // ...
            a = 10;

            Options

            This rule takes one optional argument, an object with a boolean property "builtinGlobals". It defaults to false. If set to true, this rule also checks redeclaration of built-in globals, such as Object, Array, Number...

            builtinGlobals

            Examples of incorrect code for the { "builtinGlobals": true } option:

            /*eslint no-redeclare: ["error", { "builtinGlobals": true }]*/
            
            var Object = 0;

            Examples of incorrect code for the { "builtinGlobals": true } option and the browser environment:

            /*eslint no-redeclare: ["error", { "builtinGlobals": true }]*/
            /*eslint-env browser*/
            
            var top = 0;

            The browser environment has many built-in global variables (for example, top). Some of built-in global variables cannot be redeclared. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                  if (self.S(this.scope).is('[' + this.attr_name() + ']')) {

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                    this.assemble(self.S('li', this.scope));

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier '$scroll_container' is not in camel case.
            Open

                    this.scope = $scroll_container;

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                  S(this.scope)

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Expected indentation of 12 spaces but found 16.
            Open

                            start_time : (new Date()).getTime(),

            enforce consistent indentation (indent)

            There are several common guidelines which require specific indentation of nested blocks and statements, like:

            function hello(indentSize, type) {
                if (indentSize === 4 && type !== 'tab') {
                    console.log('Each next indentation will increase on 4 spaces');
                }
            }

            These are the most common scenarios recommended in different style guides:

            • Two spaces, not longer and no tabs: Google, npm, Node.js, Idiomatic, Felix
            • Tabs: jQuery
            • Four spaces: Crockford

            Rule Details

            This rule enforces a consistent indentation style. The default style is 4 spaces.

            Options

            This rule has a mixed option:

            For example, for 2-space indentation:

            {
                "indent": ["error", 2]
            }

            Or for tabbed indentation:

            {
                "indent": ["error", "tab"]
            }

            Examples of incorrect code for this rule with the default options:

            /*eslint indent: "error"*/
            
            if (a) {
              b=c;
              function foo(d) {
                e=f;
              }
            }

            Examples of correct code for this rule with the default options:

            /*eslint indent: "error"*/
            
            if (a) {
                b=c;
                function foo(d) {
                    e=f;
                }
            }

            This rule has an object option:

            • "SwitchCase" (default: 0) enforces indentation level for case clauses in switch statements
            • "VariableDeclarator" (default: 1) enforces indentation level for var declarators; can also take an object to define separate rules for var, let and const declarations.
            • "outerIIFEBody" (default: 1) enforces indentation level for file-level IIFEs.
            • "MemberExpression" (off by default) enforces indentation level for multi-line property chains (except in variable declarations and assignments)
            • "FunctionDeclaration" takes an object to define rules for function declarations.
              • parameters (off by default) enforces indentation level for parameters in a function declaration. This can either be a number indicating indentation level, or the string "first" indicating that all parameters of the declaration must be aligned with the first parameter.
              • body (default: 1) enforces indentation level for the body of a function declaration.
            • "FunctionExpression" takes an object to define rules for function expressions.
              • parameters (off by default) enforces indentation level for parameters in a function expression. This can either be a number indicating indentation level, or the string "first" indicating that all parameters of the expression must be aligned with the first parameter.
              • body (default: 1) enforces indentation level for the body of a function expression.
            • "CallExpression" takes an object to define rules for function call expressions.
              • arguments (off by default) enforces indentation level for arguments in a call expression. This can either be a number indicating indentation level, or the string "first" indicating that all arguments of the expression must be aligned with the first argument.
            • "ArrayExpression" (default: 1) enforces indentation level for elements in arrays. It can also be set to the string "first", indicating that all the elements in the array should be aligned with the first element.
            • "ObjectExpression" (default: 1) enforces indentation level for properties in objects. It can be set to the string "first", indicating that all properties in the object should be aligned with the first property.

            Level of indentation denotes the multiple of the indent specified. Example:

            • Indent of 4 spaces with VariableDeclarator set to 2 will indent the multi-line variable declarations with 8 spaces.
            • Indent of 2 spaces with VariableDeclarator set to 2 will indent the multi-line variable declarations with 4 spaces.
            • Indent of 2 spaces with VariableDeclarator set to {"var": 2, "let": 2, "const": 3} will indent the multi-line variable declarations with 4 spaces for var and let, 6 spaces for const statements.
            • Indent of tab with VariableDeclarator set to 2 will indent the multi-line variable declarations with 2 tabs.
            • Indent of 2 spaces with SwitchCase set to 0 will not indent case clauses with respect to switch statements.
            • Indent of 2 spaces with SwitchCase set to 1 will indent case clauses with 2 spaces with respect to switch statements.
            • Indent of 2 spaces with SwitchCase set to 2 will indent case clauses with 4 spaces with respect to switch statements.
            • Indent of tab with SwitchCase set to 2 will indent case clauses with 2 tabs with respect to switch statements.
            • Indent of 2 spaces with MemberExpression set to 0 will indent the multi-line property chains with 0 spaces.
            • Indent of 2 spaces with MemberExpression set to 1 will indent the multi-line property chains with 2 spaces.
            • Indent of 2 spaces with MemberExpression set to 2 will indent the multi-line property chains with 4 spaces.
            • Indent of 4 spaces with MemberExpression set to 0 will indent the multi-line property chains with 0 spaces.
            • Indent of 4 spaces with MemberExpression set to 1 will indent the multi-line property chains with 4 spaces.
            • Indent of 4 spaces with MemberExpression set to 2 will indent the multi-line property chains with 8 spaces.

            tab

            Examples of incorrect code for this rule with the "tab" option:

            /*eslint indent: ["error", "tab"]*/
            
            if (a) {
                 b=c;
            function foo(d) {
                       e=f;
             }
            }

            Examples of correct code for this rule with the "tab" option:

            /*eslint indent: ["error", "tab"]*/
            
            if (a) {
            /*tab*/b=c;
            /*tab*/function foo(d) {
            /*tab*//*tab*/e=f;
            /*tab*/}
            }

            SwitchCase

            Examples of incorrect code for this rule with the 2, { "SwitchCase": 1 } options:

            /*eslint indent: ["error", 2, { "SwitchCase": 1 }]*/
            
            switch(a){
            case "a":
                break;
            case "b":
                break;
            }

            Examples of correct code for this rule with the 2, { "SwitchCase": 1 } option:

            /*eslint indent: ["error", 2, { "SwitchCase": 1 }]*/
            
            switch(a){
              case "a":
                break;
              case "b":
                break;
            }

            VariableDeclarator

            Examples of incorrect code for this rule with the 2, { "VariableDeclarator": 1 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 1 }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                b = 2,
                c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": 1 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 1 }]*/
            /*eslint-env es6*/
            
            var a,
              b,
              c;
            let a,
              b,
              c;
            const a = 1,
              b = 2,
              c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": 2 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 2 }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                b = 2,
                c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                  b = 2,
                  c = 3;

            outerIIFEBody

            Examples of incorrect code for this rule with the options 2, { "outerIIFEBody": 0 }:

            /*eslint indent: ["error", 2, { "outerIIFEBody": 0 }]*/
            
            (function() {
            
              function foo(x) {
                return x + 1;
              }
            
            })();
            
            
            if(y) {
            console.log('foo');
            }

            Examples of correct code for this rule with the options 2, {"outerIIFEBody": 0}:

            /*eslint indent: ["error", 2, { "outerIIFEBody": 0 }]*/
            
            (function() {
            
            function foo(x) {
              return x + 1;
            }
            
            })();
            
            
            if(y) {
               console.log('foo');
            }

            MemberExpression

            Examples of incorrect code for this rule with the 2, { "MemberExpression": 1 } options:

            /*eslint indent: ["error", 2, { "MemberExpression": 1 }]*/
            
            foo
            .bar
            .baz()

            Examples of correct code for this rule with the 2, { "MemberExpression": 1 } option:

            /*eslint indent: ["error", 2, { "MemberExpression": 1 }]*/
            
            foo
              .bar
              .baz();
            
            // Any indentation is permitted in variable declarations and assignments.
            var bip = aardvark.badger
                              .coyote;

            FunctionDeclaration

            Examples of incorrect code for this rule with the 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
            
            function foo(bar,
              baz,
              qux) {
                qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
            
            function foo(bar,
                baz,
                qux) {
              qux();
            }

            Examples of incorrect code for this rule with the 2, { "FunctionDeclaration": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
            
            function foo(bar, baz,
              qux, boop) {
              qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionDeclaration": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
            
            function foo(bar, baz,
                         qux, boop) {
              qux();
            }

            FunctionExpression

            Examples of incorrect code for this rule with the 2, { "FunctionExpression": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
            
            var foo = function(bar,
              baz,
              qux) {
                qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionExpression": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
            
            var foo = function(bar,
                baz,
                qux) {
              qux();
            }

            Examples of incorrect code for this rule with the 2, { "FunctionExpression": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
            
            var foo = function(bar, baz,
              qux, boop) {
              qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionExpression": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
            
            var foo = function(bar, baz,
                               qux, boop) {
              qux();
            }

            CallExpression

            Examples of incorrect code for this rule with the 2, { "CallExpression": {"arguments": 1} } option:

            /*eslint indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
            
            foo(bar,
                baz,
                  qux
            );

            Examples of correct code for this rule with the 2, { "CallExpression": {"arguments": 1} } option:

            /*eslint indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
            
            foo(bar,
              baz,
              qux
            );

            Examples of incorrect code for this rule with the 2, { "CallExpression": {"arguments": "first"} } option:

            /*eslint indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
            
            foo(bar, baz,
              baz, boop, beep);

            Examples of correct code for this rule with the 2, { "CallExpression": {"arguments": "first"} } option:

            /*eslint indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
            
            foo(bar, baz,
                baz, boop, beep);

            ArrayExpression

            Examples of incorrect code for this rule with the 2, { "ArrayExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ArrayExpression": 1 }]*/
            
            var foo = [
                bar,
            baz,
                  qux
            ];

            Examples of correct code for this rule with the 2, { "ArrayExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ArrayExpression": 1 }]*/
            
            var foo = [
              bar,
              baz,
              qux
            ];

            Examples of incorrect code for this rule with the 2, { "ArrayExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ArrayExpression": "first"}]*/
            
            var foo = [bar,
              baz,
              qux
            ];

            Examples of correct code for this rule with the 2, { "ArrayExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ArrayExpression": "first"}]*/
            
            var foo = [bar,
                       baz,
                       qux
            ];

            ObjectExpression

            Examples of incorrect code for this rule with the 2, { "ObjectExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ObjectExpression": 1 }]*/
            
            var foo = {
                bar: 1,
            baz: 2,
                  qux: 3
            };

            Examples of correct code for this rule with the 2, { "ObjectExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ObjectExpression": 1 }]*/
            
            var foo = {
              bar: 1,
              baz: 2,
              qux: 3
            };

            Examples of incorrect code for this rule with the 2, { "ObjectExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ObjectExpression": "first"}]*/
            
            var foo = { bar: 1,
              baz: 2 };

            Examples of correct code for this rule with the 2, { "ObjectExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ObjectExpression": "first"}]*/
            
            var foo = { bar: 1,
                        baz: 2 };

            Compatibility

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                      var data = S(this).data('swipe-transition');

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                      label = self.S('.clearing-touch-label', container),

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'new_a' is not in camel case.
            Open

                        new_a = this.S('a', img),

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                  var current = this.S('.visible', $ul),

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'li_width' is not in camel case.
            Open

                      li_width = lis.outerWidth() + (lis.outerWidth() / 4),

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Missing semicolon.
            Open

                      function (e) { Foundation.libs.clearing.close(e, this) });

            require or disallow semicolons instead of ASI (semi)

            JavaScript is unique amongst the C-like languages in that it doesn't require semicolons at the end of each statement. In many cases, the JavaScript engine can determine that a semicolon should be in a certain spot and will automatically add it. This feature is known as automatic semicolon insertion (ASI) and is considered one of the more controversial features of JavaScript. For example, the following lines are both valid:

            var name = "ESLint"
            var website = "eslint.org";

            On the first line, the JavaScript engine will automatically insert a semicolon, so this is not considered a syntax error. The JavaScript engine still knows how to interpret the line and knows that the line end indicates the end of the statement.

            In the debate over ASI, there are generally two schools of thought. The first is that we should treat ASI as if it didn't exist and always include semicolons manually. The rationale is that it's easier to always include semicolons than to try to remember when they are or are not required, and thus decreases the possibility of introducing an error.

            However, the ASI mechanism can sometimes be tricky to people who are using semicolons. For example, consider this code:

            return
            {
                name: "ESLint"
            };

            This may look like a return statement that returns an object literal, however, the JavaScript engine will interpret this code as:

            return;
            {
                name: "ESLint";
            }

            Effectively, a semicolon is inserted after the return statement, causing the code below it (a labeled literal inside a block) to be unreachable. This rule and the [no-unreachable](no-unreachable.md) rule will protect your code from such cases.

            On the other side of the argument are those who says that since semicolons are inserted automatically, they are optional and do not need to be inserted manually. However, the ASI mechanism can also be tricky to people who don't use semicolons. For example, consider this code:

            var globalCounter = { }
            
            (function () {
                var n = 0
                globalCounter.increment = function () {
                    return ++n
                }
            })()

            In this example, a semicolon will not be inserted after the first line, causing a run-time error (because an empty object is called as if it's a function). The [no-unexpected-multiline](no-unexpected-multiline.md) rule can protect your code from such cases.

            Although ASI allows for more freedom over your coding style, it can also make your code behave in an unexpected way, whether you use semicolons or not. Therefore, it is best to know when ASI takes place and when it does not, and have ESLint protect your code from these potentially unexpected cases. In short, as once described by Isaac Schlueter, a \n character always ends a statement (just like a semicolon) unless one of the following is true:

            1. The statement has an unclosed paren, array literal, or object literal or ends in some other way that is not a valid way to end a statement. (For instance, ending with . or ,.)
            2. The line is -- or ++ (in which case it will decrement/increment the next token.)
            3. It is a for(), while(), do, if(), or else, and there is no {
            4. The next line starts with [, (, +, *, /, -, ,, ., or some other binary operator that can only be found between two tokens in a single expression.

            Rule Details

            This rule enforces consistent use of semicolons.

            Options

            This rule has two options, a string option and an object option.

            String option:

            • "always" (default) requires semicolons at the end of statements
            • "never" disallows semicolons as the end of statements (except to disambiguate statements beginning with [, (, /, +, or -)

            Object option:

            • "omitLastInOneLineBlock": true ignores the last semicolon in a block in which its braces (and therefore the content of the block) are in the same line

            always

            Examples of incorrect code for this rule with the default "always" option:

            /*eslint semi: ["error", "always"]*/
            
            var name = "ESLint"
            
            object.method = function() {
                // ...
            }

            Examples of correct code for this rule with the default "always" option:

            /*eslint semi: "error"*/
            
            var name = "ESLint";
            
            object.method = function() {
                // ...
            };

            never

            Examples of incorrect code for this rule with the "never" option:

            /*eslint semi: ["error", "never"]*/
            
            var name = "ESLint";
            
            object.method = function() {
                // ...
            };

            Examples of correct code for this rule with the "never" option:

            /*eslint semi: ["error", "never"]*/
            
            var name = "ESLint"
            
            object.method = function() {
                // ...
            }
            
            var name = "ESLint"
            
            ;(function() {
                // ...
            })()

            omitLastInOneLineBlock

            Examples of additional correct code for this rule with the "always", { "omitLastInOneLineBlock": true } options:

            /*eslint semi: ["error", "always", { "omitLastInOneLineBlock": true}] */
            
            if (foo) { bar() }
            
            if (foo) { bar(); baz() }

            When Not To Use It

            If you do not want to enforce semicolon usage (or omission) in any particular way, then you can turn this rule off.

            Further Reading

            Related Rules

            • [no-extra-semi](no-extra-semi.md)
            • [no-unexpected-multiline](no-unexpected-multiline.md)
            • [semi-spacing](semi-spacing.md) Source: http://eslint.org/docs/rules/

            Identifier 'visible_image' is not in camel case.
            Open

                      visible_image = self.S('.visible-img', container),

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'old_index' is not in camel case.
            Open

                      old_index = this.settings.prev_index || target.index(),

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'dir_obj' is not in camel case.
            Open

                  var dir_obj = {};

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'target_index' is not in camel case.
            Open

                    } else if ((target_index > up_count - 1) && target_index <= this.settings.prev_index) {

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                  S(this.scope)

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                            image = S(e.target);

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Missing semicolon.
            Open

                    function () { self.resize() });

            require or disallow semicolons instead of ASI (semi)

            JavaScript is unique amongst the C-like languages in that it doesn't require semicolons at the end of each statement. In many cases, the JavaScript engine can determine that a semicolon should be in a certain spot and will automatically add it. This feature is known as automatic semicolon insertion (ASI) and is considered one of the more controversial features of JavaScript. For example, the following lines are both valid:

            var name = "ESLint"
            var website = "eslint.org";

            On the first line, the JavaScript engine will automatically insert a semicolon, so this is not considered a syntax error. The JavaScript engine still knows how to interpret the line and knows that the line end indicates the end of the statement.

            In the debate over ASI, there are generally two schools of thought. The first is that we should treat ASI as if it didn't exist and always include semicolons manually. The rationale is that it's easier to always include semicolons than to try to remember when they are or are not required, and thus decreases the possibility of introducing an error.

            However, the ASI mechanism can sometimes be tricky to people who are using semicolons. For example, consider this code:

            return
            {
                name: "ESLint"
            };

            This may look like a return statement that returns an object literal, however, the JavaScript engine will interpret this code as:

            return;
            {
                name: "ESLint";
            }

            Effectively, a semicolon is inserted after the return statement, causing the code below it (a labeled literal inside a block) to be unreachable. This rule and the [no-unreachable](no-unreachable.md) rule will protect your code from such cases.

            On the other side of the argument are those who says that since semicolons are inserted automatically, they are optional and do not need to be inserted manually. However, the ASI mechanism can also be tricky to people who don't use semicolons. For example, consider this code:

            var globalCounter = { }
            
            (function () {
                var n = 0
                globalCounter.increment = function () {
                    return ++n
                }
            })()

            In this example, a semicolon will not be inserted after the first line, causing a run-time error (because an empty object is called as if it's a function). The [no-unexpected-multiline](no-unexpected-multiline.md) rule can protect your code from such cases.

            Although ASI allows for more freedom over your coding style, it can also make your code behave in an unexpected way, whether you use semicolons or not. Therefore, it is best to know when ASI takes place and when it does not, and have ESLint protect your code from these potentially unexpected cases. In short, as once described by Isaac Schlueter, a \n character always ends a statement (just like a semicolon) unless one of the following is true:

            1. The statement has an unclosed paren, array literal, or object literal or ends in some other way that is not a valid way to end a statement. (For instance, ending with . or ,.)
            2. The line is -- or ++ (in which case it will decrement/increment the next token.)
            3. It is a for(), while(), do, if(), or else, and there is no {
            4. The next line starts with [, (, +, *, /, -, ,, ., or some other binary operator that can only be found between two tokens in a single expression.

            Rule Details

            This rule enforces consistent use of semicolons.

            Options

            This rule has two options, a string option and an object option.

            String option:

            • "always" (default) requires semicolons at the end of statements
            • "never" disallows semicolons as the end of statements (except to disambiguate statements beginning with [, (, /, +, or -)

            Object option:

            • "omitLastInOneLineBlock": true ignores the last semicolon in a block in which its braces (and therefore the content of the block) are in the same line

            always

            Examples of incorrect code for this rule with the default "always" option:

            /*eslint semi: ["error", "always"]*/
            
            var name = "ESLint"
            
            object.method = function() {
                // ...
            }

            Examples of correct code for this rule with the default "always" option:

            /*eslint semi: "error"*/
            
            var name = "ESLint";
            
            object.method = function() {
                // ...
            };

            never

            Examples of incorrect code for this rule with the "never" option:

            /*eslint semi: ["error", "never"]*/
            
            var name = "ESLint";
            
            object.method = function() {
                // ...
            };

            Examples of correct code for this rule with the "never" option:

            /*eslint semi: ["error", "never"]*/
            
            var name = "ESLint"
            
            object.method = function() {
                // ...
            }
            
            var name = "ESLint"
            
            ;(function() {
                // ...
            })()

            omitLastInOneLineBlock

            Examples of additional correct code for this rule with the "always", { "omitLastInOneLineBlock": true } options:

            /*eslint semi: ["error", "always", { "omitLastInOneLineBlock": true}] */
            
            if (foo) { bar() }
            
            if (foo) { bar(); baz() }

            When Not To Use It

            If you do not want to enforce semicolon usage (or omission) in any particular way, then you can turn this rule off.

            Further Reading

            Related Rules

            • [no-extra-semi](no-extra-semi.md)
            • [no-unexpected-multiline](no-unexpected-multiline.md)
            • [semi-spacing](semi-spacing.md) Source: http://eslint.org/docs/rules/

            Identifier 'visible_image' is not in camel case.
            Open

                      body = $(document.body), container, visible_image;

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'closest_a' is not in camel case.
            Open

                      closest_a;

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Unnecessarily quoted property 'interchange' found.
            Open

                    'interchange': href ? interchange : $image.data('clearing-interchange')

            require quotes around object literal property names (quote-props)

            Object literal property names can be defined in two ways: using literals or using strings. For example, these two objects are equivalent:

            var object1 = {
                property: true
            };
            
            var object2 = {
                "property": true
            };

            In many cases, it doesn't matter if you choose to use an identifier instead of a string or vice-versa. Even so, you might decide to enforce a consistent style in your code.

            There are, however, some occasions when you must use quotes:

            1. If you are using an ECMAScript 3 JavaScript engine (such as IE8) and you want to use a keyword (such as if) as a property name. This restriction was removed in ECMAScript 5.
            2. You want to use a non-identifier character in your property name, such as having a property with a space like "one two".

            Another example where quotes do matter is when using numeric literals as property keys:

            var object = {
                1e2: 1,
                100: 2
            };

            This may look alright at first sight, but this code in fact throws a syntax error in ECMAScript 5 strict mode. This happens because 1e2 and 100 are coerced into strings before getting used as the property name. Both String(1e2) and String(100) happen to be equal to "100", which causes the "Duplicate data property in object literal not allowed in strict mode" error. Issues like that can be tricky to debug, so some prefer to require quotes around all property names.

            Rule Details

            This rule requires quotes around object literal property names.

            Options

            This rule has two options, a string option and an object option.

            String option:

            • "always" (default) requires quotes around all object literal property names
            • "as-needed" disallows quotes around object literal property names that are not strictly required
            • "consistent" enforces a consistent quote style requires quotes around object literal property names
            • "consistent-as-needed" requires quotes around all object literal property names if any name strictly requires quotes, otherwise disallows quotes around object property names

            Object option:

            • "keywords": true requires quotes around language keywords used as object property names (only applies when using as-needed or consistent-as-needed)
            • "unnecessary": true (default) disallows quotes around object literal property names that are not strictly required (only applies when using as-needed)
            • "unnecessary": false allows quotes around object literal property names that are not strictly required (only applies when using as-needed)
            • "numbers": true requires quotes around numbers used as object property names (only applies when using as-needed)

            always

            Examples of incorrect code for this rule with the default "always" option:

            /*eslint quote-props: ["error", "always"]*/
            
            var object = {
                foo: "bar",
                baz: 42,
                "qux-lorem": true
            };

            Examples of correct code for this rule with the default "always" option:

            /*eslint quote-props: ["error", "always"]*/
            /*eslint-env es6*/
            
            var object1 = {
                "foo": "bar",
                "baz": 42,
                "qux-lorem": true
            };
            
            var object2 = {
                'foo': 'bar',
                'baz': 42,
                'qux-lorem': true
            };
            
            var object3 = {
                foo() {
                    return;
                }
            };

            as-needed

            Examples of incorrect code for this rule with the "as-needed" option:

            /*eslint quote-props: ["error", "as-needed"]*/
            
            var object = {
                "a": 0,
                "0": 0,
                "true": 0,
                "null": 0
            };

            Examples of correct code for this rule with the "as-needed" option:

            /*eslint quote-props: ["error", "as-needed"]*/
            /*eslint-env es6*/
            
            var object1 = {
                "a-b": 0,
                "0x0": 0,
                "1e2": 0
            };
            
            var object2 = {
                foo: 'bar',
                baz: 42,
                true: 0,
                0: 0,
                'qux-lorem': true
            };
            
            var object3 = {
                foo() {
                    return;
                }
            };

            consistent

            Examples of incorrect code for this rule with the "consistent" option:

            /*eslint quote-props: ["error", "consistent"]*/
            
            var object1 = {
                foo: "bar",
                "baz": 42,
                "qux-lorem": true
            };
            
            var object2 = {
                'foo': 'bar',
                baz: 42
            };

            Examples of correct code for this rule with the "consistent" option:

            /*eslint quote-props: ["error", "consistent"]*/
            
            var object1 = {
                "foo": "bar",
                "baz": 42,
                "qux-lorem": true
            };
            
            var object2 = {
                'foo': 'bar',
                'baz': 42
            };
            
            var object3 = {
                foo: 'bar',
                baz: 42
            };

            consistent-as-needed

            Examples of incorrect code for this rule with the "consistent-as-needed" option:

            /*eslint quote-props: ["error", "consistent-as-needed"]*/
            
            var object1 = {
                foo: "bar",
                "baz": 42,
                "qux-lorem": true
            };
            
            var object2 = {
                'foo': 'bar',
                'baz': 42
            };

            Examples of correct code for this rule with the "consistent-as-needed" option:

            /*eslint quote-props: ["error", "consistent-as-needed"]*/
            
            var object1 = {
                "foo": "bar",
                "baz": 42,
                "qux-lorem": true
            };
            
            var object2 = {
                foo: 'bar',
                baz: 42
            };

            keywords

            Examples of additional incorrect code for this rule with the "as-needed", { "keywords": true } options:

            /*eslint quote-props: ["error", "as-needed", { "keywords": true }]*/
            
            var x = {
                while: 1,
                volatile: "foo"
            };

            Examples of additional incorrect code for this rule with the "consistent-as-needed", { "keywords": true } options:

            /*eslint quote-props: ["error", "consistent-as-needed", { "keywords": true }]*/
            
            var x = {
                "prop": 1,
                "bar": "foo"
            };

            unnecessary

            Examples of additional correct code for this rule with the "as-needed", { "unnecessary": false } options:

            /*eslint quote-props: ["error", "as-needed", { "keywords": true, "unnecessary": false }]*/
            
            var x = {
                "while": 1,
                "foo": "bar"  // Would normally have caused a warning
            };

            numbers

            Examples of additional incorrect code for this rule with the "as-needed", { "numbers": true } options:

            /*eslint quote-props: ["error", "as-needed", { "numbers": true }]*/
            
            var x = {
                100: 1
            }

            When Not To Use It

            If you don't care if property names are consistently wrapped in quotes or not, and you don't target legacy ES3 environments, turn this rule off.

            Further Reading

            Identifier 'sibling_type' is not in camel case.
            Open

                    var preload_img = $('.clearing-preload-' + sibling_type),

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'target_index' is not in camel case.
            Open

                      target_index = lis.index(target),

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                    self.S('[' + this.attr_name() + ']', this.scope).each(function () {

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Missing semicolon.
            Open

                      function (e) { self.nav(e, 'next') })

            require or disallow semicolons instead of ASI (semi)

            JavaScript is unique amongst the C-like languages in that it doesn't require semicolons at the end of each statement. In many cases, the JavaScript engine can determine that a semicolon should be in a certain spot and will automatically add it. This feature is known as automatic semicolon insertion (ASI) and is considered one of the more controversial features of JavaScript. For example, the following lines are both valid:

            var name = "ESLint"
            var website = "eslint.org";

            On the first line, the JavaScript engine will automatically insert a semicolon, so this is not considered a syntax error. The JavaScript engine still knows how to interpret the line and knows that the line end indicates the end of the statement.

            In the debate over ASI, there are generally two schools of thought. The first is that we should treat ASI as if it didn't exist and always include semicolons manually. The rationale is that it's easier to always include semicolons than to try to remember when they are or are not required, and thus decreases the possibility of introducing an error.

            However, the ASI mechanism can sometimes be tricky to people who are using semicolons. For example, consider this code:

            return
            {
                name: "ESLint"
            };

            This may look like a return statement that returns an object literal, however, the JavaScript engine will interpret this code as:

            return;
            {
                name: "ESLint";
            }

            Effectively, a semicolon is inserted after the return statement, causing the code below it (a labeled literal inside a block) to be unreachable. This rule and the [no-unreachable](no-unreachable.md) rule will protect your code from such cases.

            On the other side of the argument are those who says that since semicolons are inserted automatically, they are optional and do not need to be inserted manually. However, the ASI mechanism can also be tricky to people who don't use semicolons. For example, consider this code:

            var globalCounter = { }
            
            (function () {
                var n = 0
                globalCounter.increment = function () {
                    return ++n
                }
            })()

            In this example, a semicolon will not be inserted after the first line, causing a run-time error (because an empty object is called as if it's a function). The [no-unexpected-multiline](no-unexpected-multiline.md) rule can protect your code from such cases.

            Although ASI allows for more freedom over your coding style, it can also make your code behave in an unexpected way, whether you use semicolons or not. Therefore, it is best to know when ASI takes place and when it does not, and have ESLint protect your code from these potentially unexpected cases. In short, as once described by Isaac Schlueter, a \n character always ends a statement (just like a semicolon) unless one of the following is true:

            1. The statement has an unclosed paren, array literal, or object literal or ends in some other way that is not a valid way to end a statement. (For instance, ending with . or ,.)
            2. The line is -- or ++ (in which case it will decrement/increment the next token.)
            3. It is a for(), while(), do, if(), or else, and there is no {
            4. The next line starts with [, (, +, *, /, -, ,, ., or some other binary operator that can only be found between two tokens in a single expression.

            Rule Details

            This rule enforces consistent use of semicolons.

            Options

            This rule has two options, a string option and an object option.

            String option:

            • "always" (default) requires semicolons at the end of statements
            • "never" disallows semicolons as the end of statements (except to disambiguate statements beginning with [, (, /, +, or -)

            Object option:

            • "omitLastInOneLineBlock": true ignores the last semicolon in a block in which its braces (and therefore the content of the block) are in the same line

            always

            Examples of incorrect code for this rule with the default "always" option:

            /*eslint semi: ["error", "always"]*/
            
            var name = "ESLint"
            
            object.method = function() {
                // ...
            }

            Examples of correct code for this rule with the default "always" option:

            /*eslint semi: "error"*/
            
            var name = "ESLint";
            
            object.method = function() {
                // ...
            };

            never

            Examples of incorrect code for this rule with the "never" option:

            /*eslint semi: ["error", "never"]*/
            
            var name = "ESLint";
            
            object.method = function() {
                // ...
            };

            Examples of correct code for this rule with the "never" option:

            /*eslint semi: ["error", "never"]*/
            
            var name = "ESLint"
            
            object.method = function() {
                // ...
            }
            
            var name = "ESLint"
            
            ;(function() {
                // ...
            })()

            omitLastInOneLineBlock

            Examples of additional correct code for this rule with the "always", { "omitLastInOneLineBlock": true } options:

            /*eslint semi: ["error", "always", { "omitLastInOneLineBlock": true}] */
            
            if (foo) { bar() }
            
            if (foo) { bar(); baz() }

            When Not To Use It

            If you do not want to enforce semicolon usage (or omission) in any particular way, then you can turn this rule off.

            Further Reading

            Related Rules

            • [no-extra-semi](no-extra-semi.md)
            • [no-unexpected-multiline](no-unexpected-multiline.md)
            • [semi-spacing](semi-spacing.md) Source: http://eslint.org/docs/rules/

            Expected indentation of 10 spaces but found 6.
            Open

                  S = self.S;

            enforce consistent indentation (indent)

            There are several common guidelines which require specific indentation of nested blocks and statements, like:

            function hello(indentSize, type) {
                if (indentSize === 4 && type !== 'tab') {
                    console.log('Each next indentation will increase on 4 spaces');
                }
            }

            These are the most common scenarios recommended in different style guides:

            • Two spaces, not longer and no tabs: Google, npm, Node.js, Idiomatic, Felix
            • Tabs: jQuery
            • Four spaces: Crockford

            Rule Details

            This rule enforces a consistent indentation style. The default style is 4 spaces.

            Options

            This rule has a mixed option:

            For example, for 2-space indentation:

            {
                "indent": ["error", 2]
            }

            Or for tabbed indentation:

            {
                "indent": ["error", "tab"]
            }

            Examples of incorrect code for this rule with the default options:

            /*eslint indent: "error"*/
            
            if (a) {
              b=c;
              function foo(d) {
                e=f;
              }
            }

            Examples of correct code for this rule with the default options:

            /*eslint indent: "error"*/
            
            if (a) {
                b=c;
                function foo(d) {
                    e=f;
                }
            }

            This rule has an object option:

            • "SwitchCase" (default: 0) enforces indentation level for case clauses in switch statements
            • "VariableDeclarator" (default: 1) enforces indentation level for var declarators; can also take an object to define separate rules for var, let and const declarations.
            • "outerIIFEBody" (default: 1) enforces indentation level for file-level IIFEs.
            • "MemberExpression" (off by default) enforces indentation level for multi-line property chains (except in variable declarations and assignments)
            • "FunctionDeclaration" takes an object to define rules for function declarations.
              • parameters (off by default) enforces indentation level for parameters in a function declaration. This can either be a number indicating indentation level, or the string "first" indicating that all parameters of the declaration must be aligned with the first parameter.
              • body (default: 1) enforces indentation level for the body of a function declaration.
            • "FunctionExpression" takes an object to define rules for function expressions.
              • parameters (off by default) enforces indentation level for parameters in a function expression. This can either be a number indicating indentation level, or the string "first" indicating that all parameters of the expression must be aligned with the first parameter.
              • body (default: 1) enforces indentation level for the body of a function expression.
            • "CallExpression" takes an object to define rules for function call expressions.
              • arguments (off by default) enforces indentation level for arguments in a call expression. This can either be a number indicating indentation level, or the string "first" indicating that all arguments of the expression must be aligned with the first argument.
            • "ArrayExpression" (default: 1) enforces indentation level for elements in arrays. It can also be set to the string "first", indicating that all the elements in the array should be aligned with the first element.
            • "ObjectExpression" (default: 1) enforces indentation level for properties in objects. It can be set to the string "first", indicating that all properties in the object should be aligned with the first property.

            Level of indentation denotes the multiple of the indent specified. Example:

            • Indent of 4 spaces with VariableDeclarator set to 2 will indent the multi-line variable declarations with 8 spaces.
            • Indent of 2 spaces with VariableDeclarator set to 2 will indent the multi-line variable declarations with 4 spaces.
            • Indent of 2 spaces with VariableDeclarator set to {"var": 2, "let": 2, "const": 3} will indent the multi-line variable declarations with 4 spaces for var and let, 6 spaces for const statements.
            • Indent of tab with VariableDeclarator set to 2 will indent the multi-line variable declarations with 2 tabs.
            • Indent of 2 spaces with SwitchCase set to 0 will not indent case clauses with respect to switch statements.
            • Indent of 2 spaces with SwitchCase set to 1 will indent case clauses with 2 spaces with respect to switch statements.
            • Indent of 2 spaces with SwitchCase set to 2 will indent case clauses with 4 spaces with respect to switch statements.
            • Indent of tab with SwitchCase set to 2 will indent case clauses with 2 tabs with respect to switch statements.
            • Indent of 2 spaces with MemberExpression set to 0 will indent the multi-line property chains with 0 spaces.
            • Indent of 2 spaces with MemberExpression set to 1 will indent the multi-line property chains with 2 spaces.
            • Indent of 2 spaces with MemberExpression set to 2 will indent the multi-line property chains with 4 spaces.
            • Indent of 4 spaces with MemberExpression set to 0 will indent the multi-line property chains with 0 spaces.
            • Indent of 4 spaces with MemberExpression set to 1 will indent the multi-line property chains with 4 spaces.
            • Indent of 4 spaces with MemberExpression set to 2 will indent the multi-line property chains with 8 spaces.

            tab

            Examples of incorrect code for this rule with the "tab" option:

            /*eslint indent: ["error", "tab"]*/
            
            if (a) {
                 b=c;
            function foo(d) {
                       e=f;
             }
            }

            Examples of correct code for this rule with the "tab" option:

            /*eslint indent: ["error", "tab"]*/
            
            if (a) {
            /*tab*/b=c;
            /*tab*/function foo(d) {
            /*tab*//*tab*/e=f;
            /*tab*/}
            }

            SwitchCase

            Examples of incorrect code for this rule with the 2, { "SwitchCase": 1 } options:

            /*eslint indent: ["error", 2, { "SwitchCase": 1 }]*/
            
            switch(a){
            case "a":
                break;
            case "b":
                break;
            }

            Examples of correct code for this rule with the 2, { "SwitchCase": 1 } option:

            /*eslint indent: ["error", 2, { "SwitchCase": 1 }]*/
            
            switch(a){
              case "a":
                break;
              case "b":
                break;
            }

            VariableDeclarator

            Examples of incorrect code for this rule with the 2, { "VariableDeclarator": 1 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 1 }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                b = 2,
                c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": 1 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 1 }]*/
            /*eslint-env es6*/
            
            var a,
              b,
              c;
            let a,
              b,
              c;
            const a = 1,
              b = 2,
              c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": 2 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 2 }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                b = 2,
                c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                  b = 2,
                  c = 3;

            outerIIFEBody

            Examples of incorrect code for this rule with the options 2, { "outerIIFEBody": 0 }:

            /*eslint indent: ["error", 2, { "outerIIFEBody": 0 }]*/
            
            (function() {
            
              function foo(x) {
                return x + 1;
              }
            
            })();
            
            
            if(y) {
            console.log('foo');
            }

            Examples of correct code for this rule with the options 2, {"outerIIFEBody": 0}:

            /*eslint indent: ["error", 2, { "outerIIFEBody": 0 }]*/
            
            (function() {
            
            function foo(x) {
              return x + 1;
            }
            
            })();
            
            
            if(y) {
               console.log('foo');
            }

            MemberExpression

            Examples of incorrect code for this rule with the 2, { "MemberExpression": 1 } options:

            /*eslint indent: ["error", 2, { "MemberExpression": 1 }]*/
            
            foo
            .bar
            .baz()

            Examples of correct code for this rule with the 2, { "MemberExpression": 1 } option:

            /*eslint indent: ["error", 2, { "MemberExpression": 1 }]*/
            
            foo
              .bar
              .baz();
            
            // Any indentation is permitted in variable declarations and assignments.
            var bip = aardvark.badger
                              .coyote;

            FunctionDeclaration

            Examples of incorrect code for this rule with the 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
            
            function foo(bar,
              baz,
              qux) {
                qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
            
            function foo(bar,
                baz,
                qux) {
              qux();
            }

            Examples of incorrect code for this rule with the 2, { "FunctionDeclaration": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
            
            function foo(bar, baz,
              qux, boop) {
              qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionDeclaration": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
            
            function foo(bar, baz,
                         qux, boop) {
              qux();
            }

            FunctionExpression

            Examples of incorrect code for this rule with the 2, { "FunctionExpression": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
            
            var foo = function(bar,
              baz,
              qux) {
                qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionExpression": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
            
            var foo = function(bar,
                baz,
                qux) {
              qux();
            }

            Examples of incorrect code for this rule with the 2, { "FunctionExpression": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
            
            var foo = function(bar, baz,
              qux, boop) {
              qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionExpression": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
            
            var foo = function(bar, baz,
                               qux, boop) {
              qux();
            }

            CallExpression

            Examples of incorrect code for this rule with the 2, { "CallExpression": {"arguments": 1} } option:

            /*eslint indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
            
            foo(bar,
                baz,
                  qux
            );

            Examples of correct code for this rule with the 2, { "CallExpression": {"arguments": 1} } option:

            /*eslint indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
            
            foo(bar,
              baz,
              qux
            );

            Examples of incorrect code for this rule with the 2, { "CallExpression": {"arguments": "first"} } option:

            /*eslint indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
            
            foo(bar, baz,
              baz, boop, beep);

            Examples of correct code for this rule with the 2, { "CallExpression": {"arguments": "first"} } option:

            /*eslint indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
            
            foo(bar, baz,
                baz, boop, beep);

            ArrayExpression

            Examples of incorrect code for this rule with the 2, { "ArrayExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ArrayExpression": 1 }]*/
            
            var foo = [
                bar,
            baz,
                  qux
            ];

            Examples of correct code for this rule with the 2, { "ArrayExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ArrayExpression": 1 }]*/
            
            var foo = [
              bar,
              baz,
              qux
            ];

            Examples of incorrect code for this rule with the 2, { "ArrayExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ArrayExpression": "first"}]*/
            
            var foo = [bar,
              baz,
              qux
            ];

            Examples of correct code for this rule with the 2, { "ArrayExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ArrayExpression": "first"}]*/
            
            var foo = [bar,
                       baz,
                       qux
            ];

            ObjectExpression

            Examples of incorrect code for this rule with the 2, { "ObjectExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ObjectExpression": 1 }]*/
            
            var foo = {
                bar: 1,
            baz: 2,
                  qux: 3
            };

            Examples of correct code for this rule with the 2, { "ObjectExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ObjectExpression": 1 }]*/
            
            var foo = {
              bar: 1,
              baz: 2,
              qux: 3
            };

            Examples of incorrect code for this rule with the 2, { "ObjectExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ObjectExpression": "first"}]*/
            
            var foo = { bar: 1,
              baz: 2 };

            Examples of correct code for this rule with the 2, { "ObjectExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ObjectExpression": "first"}]*/
            
            var foo = { bar: 1,
                        baz: 2 };

            Compatibility

            Identifier 'grid_outerHTML' is not in camel case.
            Open

                    grid_outerHTML = grid[0].outerHTML;

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Mixed spaces and tabs.
            Open

                      containerPlain.innerHTML = caption;

            disallow mixed spaces and tabs for indentation (no-mixed-spaces-and-tabs)

            Most code conventions require either tabs or spaces be used for indentation. As such, it's usually an error if a single line of code is indented with both tabs and spaces.

            Rule Details

            This rule disallows mixed spaces and tabs for indentation.

            Examples of incorrect code for this rule:

            /*eslint no-mixed-spaces-and-tabs: "error"*/
            
            function add(x, y) {
            // --->..return x + y;
            
                  return x + y;
            }
            
            function main() {
            // --->var x = 5,
            // --->....y = 7;
            
                var x = 5,
                    y = 7;
            }

            Examples of correct code for this rule:

            /*eslint no-mixed-spaces-and-tabs: "error"*/
            
            function add(x, y) {
            // --->return x + y;
                return x + y;
            }

            Options

            This rule has a string option.

            • "smart-tabs" allows mixed spaces and tabs when the latter are used for alignment.

            smart-tabs

            Examples of correct code for this rule with the "smart-tabs" option:

            /*eslint no-mixed-spaces-and-tabs: ["error", "smart-tabs"]*/
            
            function main() {
            // --->var x = 5,
            // --->....y = 7;
            
                var x = 5,
                    y = 7;
            }

            Further Reading

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                          image = S('img', target);

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Unnecessarily quoted property 'src' found.
            Open

                    'src': href ? href : $image.attr('src'),

            require quotes around object literal property names (quote-props)

            Object literal property names can be defined in two ways: using literals or using strings. For example, these two objects are equivalent:

            var object1 = {
                property: true
            };
            
            var object2 = {
                "property": true
            };

            In many cases, it doesn't matter if you choose to use an identifier instead of a string or vice-versa. Even so, you might decide to enforce a consistent style in your code.

            There are, however, some occasions when you must use quotes:

            1. If you are using an ECMAScript 3 JavaScript engine (such as IE8) and you want to use a keyword (such as if) as a property name. This restriction was removed in ECMAScript 5.
            2. You want to use a non-identifier character in your property name, such as having a property with a space like "one two".

            Another example where quotes do matter is when using numeric literals as property keys:

            var object = {
                1e2: 1,
                100: 2
            };

            This may look alright at first sight, but this code in fact throws a syntax error in ECMAScript 5 strict mode. This happens because 1e2 and 100 are coerced into strings before getting used as the property name. Both String(1e2) and String(100) happen to be equal to "100", which causes the "Duplicate data property in object literal not allowed in strict mode" error. Issues like that can be tricky to debug, so some prefer to require quotes around all property names.

            Rule Details

            This rule requires quotes around object literal property names.

            Options

            This rule has two options, a string option and an object option.

            String option:

            • "always" (default) requires quotes around all object literal property names
            • "as-needed" disallows quotes around object literal property names that are not strictly required
            • "consistent" enforces a consistent quote style requires quotes around object literal property names
            • "consistent-as-needed" requires quotes around all object literal property names if any name strictly requires quotes, otherwise disallows quotes around object property names

            Object option:

            • "keywords": true requires quotes around language keywords used as object property names (only applies when using as-needed or consistent-as-needed)
            • "unnecessary": true (default) disallows quotes around object literal property names that are not strictly required (only applies when using as-needed)
            • "unnecessary": false allows quotes around object literal property names that are not strictly required (only applies when using as-needed)
            • "numbers": true requires quotes around numbers used as object property names (only applies when using as-needed)

            always

            Examples of incorrect code for this rule with the default "always" option:

            /*eslint quote-props: ["error", "always"]*/
            
            var object = {
                foo: "bar",
                baz: 42,
                "qux-lorem": true
            };

            Examples of correct code for this rule with the default "always" option:

            /*eslint quote-props: ["error", "always"]*/
            /*eslint-env es6*/
            
            var object1 = {
                "foo": "bar",
                "baz": 42,
                "qux-lorem": true
            };
            
            var object2 = {
                'foo': 'bar',
                'baz': 42,
                'qux-lorem': true
            };
            
            var object3 = {
                foo() {
                    return;
                }
            };

            as-needed

            Examples of incorrect code for this rule with the "as-needed" option:

            /*eslint quote-props: ["error", "as-needed"]*/
            
            var object = {
                "a": 0,
                "0": 0,
                "true": 0,
                "null": 0
            };

            Examples of correct code for this rule with the "as-needed" option:

            /*eslint quote-props: ["error", "as-needed"]*/
            /*eslint-env es6*/
            
            var object1 = {
                "a-b": 0,
                "0x0": 0,
                "1e2": 0
            };
            
            var object2 = {
                foo: 'bar',
                baz: 42,
                true: 0,
                0: 0,
                'qux-lorem': true
            };
            
            var object3 = {
                foo() {
                    return;
                }
            };

            consistent

            Examples of incorrect code for this rule with the "consistent" option:

            /*eslint quote-props: ["error", "consistent"]*/
            
            var object1 = {
                foo: "bar",
                "baz": 42,
                "qux-lorem": true
            };
            
            var object2 = {
                'foo': 'bar',
                baz: 42
            };

            Examples of correct code for this rule with the "consistent" option:

            /*eslint quote-props: ["error", "consistent"]*/
            
            var object1 = {
                "foo": "bar",
                "baz": 42,
                "qux-lorem": true
            };
            
            var object2 = {
                'foo': 'bar',
                'baz': 42
            };
            
            var object3 = {
                foo: 'bar',
                baz: 42
            };

            consistent-as-needed

            Examples of incorrect code for this rule with the "consistent-as-needed" option:

            /*eslint quote-props: ["error", "consistent-as-needed"]*/
            
            var object1 = {
                foo: "bar",
                "baz": 42,
                "qux-lorem": true
            };
            
            var object2 = {
                'foo': 'bar',
                'baz': 42
            };

            Examples of correct code for this rule with the "consistent-as-needed" option:

            /*eslint quote-props: ["error", "consistent-as-needed"]*/
            
            var object1 = {
                "foo": "bar",
                "baz": 42,
                "qux-lorem": true
            };
            
            var object2 = {
                foo: 'bar',
                baz: 42
            };

            keywords

            Examples of additional incorrect code for this rule with the "as-needed", { "keywords": true } options:

            /*eslint quote-props: ["error", "as-needed", { "keywords": true }]*/
            
            var x = {
                while: 1,
                volatile: "foo"
            };

            Examples of additional incorrect code for this rule with the "consistent-as-needed", { "keywords": true } options:

            /*eslint quote-props: ["error", "consistent-as-needed", { "keywords": true }]*/
            
            var x = {
                "prop": 1,
                "bar": "foo"
            };

            unnecessary

            Examples of additional correct code for this rule with the "as-needed", { "unnecessary": false } options:

            /*eslint quote-props: ["error", "as-needed", { "keywords": true, "unnecessary": false }]*/
            
            var x = {
                "while": 1,
                "foo": "bar"  // Would normally have caused a warning
            };

            numbers

            Examples of additional incorrect code for this rule with the "as-needed", { "numbers": true } options:

            /*eslint quote-props: ["error", "as-needed", { "numbers": true }]*/
            
            var x = {
                100: 1
            }

            When Not To Use It

            If you don't care if property names are consistently wrapped in quotes or not, and you don't target legacy ES3 environments, turn this rule off.

            Further Reading

            Identifier 'skip_shift' is not in camel case.
            Open

                    if (skip_shift > 0) {

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'up_count' is not in camel case.
            Open

                  this.settings.up_count = up_count;

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Expected indentation of 12 spaces but found 16.
            Open

                            start_page_y : e.touches[0].pageY,

            enforce consistent indentation (indent)

            There are several common guidelines which require specific indentation of nested blocks and statements, like:

            function hello(indentSize, type) {
                if (indentSize === 4 && type !== 'tab') {
                    console.log('Each next indentation will increase on 4 spaces');
                }
            }

            These are the most common scenarios recommended in different style guides:

            • Two spaces, not longer and no tabs: Google, npm, Node.js, Idiomatic, Felix
            • Tabs: jQuery
            • Four spaces: Crockford

            Rule Details

            This rule enforces a consistent indentation style. The default style is 4 spaces.

            Options

            This rule has a mixed option:

            For example, for 2-space indentation:

            {
                "indent": ["error", 2]
            }

            Or for tabbed indentation:

            {
                "indent": ["error", "tab"]
            }

            Examples of incorrect code for this rule with the default options:

            /*eslint indent: "error"*/
            
            if (a) {
              b=c;
              function foo(d) {
                e=f;
              }
            }

            Examples of correct code for this rule with the default options:

            /*eslint indent: "error"*/
            
            if (a) {
                b=c;
                function foo(d) {
                    e=f;
                }
            }

            This rule has an object option:

            • "SwitchCase" (default: 0) enforces indentation level for case clauses in switch statements
            • "VariableDeclarator" (default: 1) enforces indentation level for var declarators; can also take an object to define separate rules for var, let and const declarations.
            • "outerIIFEBody" (default: 1) enforces indentation level for file-level IIFEs.
            • "MemberExpression" (off by default) enforces indentation level for multi-line property chains (except in variable declarations and assignments)
            • "FunctionDeclaration" takes an object to define rules for function declarations.
              • parameters (off by default) enforces indentation level for parameters in a function declaration. This can either be a number indicating indentation level, or the string "first" indicating that all parameters of the declaration must be aligned with the first parameter.
              • body (default: 1) enforces indentation level for the body of a function declaration.
            • "FunctionExpression" takes an object to define rules for function expressions.
              • parameters (off by default) enforces indentation level for parameters in a function expression. This can either be a number indicating indentation level, or the string "first" indicating that all parameters of the expression must be aligned with the first parameter.
              • body (default: 1) enforces indentation level for the body of a function expression.
            • "CallExpression" takes an object to define rules for function call expressions.
              • arguments (off by default) enforces indentation level for arguments in a call expression. This can either be a number indicating indentation level, or the string "first" indicating that all arguments of the expression must be aligned with the first argument.
            • "ArrayExpression" (default: 1) enforces indentation level for elements in arrays. It can also be set to the string "first", indicating that all the elements in the array should be aligned with the first element.
            • "ObjectExpression" (default: 1) enforces indentation level for properties in objects. It can be set to the string "first", indicating that all properties in the object should be aligned with the first property.

            Level of indentation denotes the multiple of the indent specified. Example:

            • Indent of 4 spaces with VariableDeclarator set to 2 will indent the multi-line variable declarations with 8 spaces.
            • Indent of 2 spaces with VariableDeclarator set to 2 will indent the multi-line variable declarations with 4 spaces.
            • Indent of 2 spaces with VariableDeclarator set to {"var": 2, "let": 2, "const": 3} will indent the multi-line variable declarations with 4 spaces for var and let, 6 spaces for const statements.
            • Indent of tab with VariableDeclarator set to 2 will indent the multi-line variable declarations with 2 tabs.
            • Indent of 2 spaces with SwitchCase set to 0 will not indent case clauses with respect to switch statements.
            • Indent of 2 spaces with SwitchCase set to 1 will indent case clauses with 2 spaces with respect to switch statements.
            • Indent of 2 spaces with SwitchCase set to 2 will indent case clauses with 4 spaces with respect to switch statements.
            • Indent of tab with SwitchCase set to 2 will indent case clauses with 2 tabs with respect to switch statements.
            • Indent of 2 spaces with MemberExpression set to 0 will indent the multi-line property chains with 0 spaces.
            • Indent of 2 spaces with MemberExpression set to 1 will indent the multi-line property chains with 2 spaces.
            • Indent of 2 spaces with MemberExpression set to 2 will indent the multi-line property chains with 4 spaces.
            • Indent of 4 spaces with MemberExpression set to 0 will indent the multi-line property chains with 0 spaces.
            • Indent of 4 spaces with MemberExpression set to 1 will indent the multi-line property chains with 4 spaces.
            • Indent of 4 spaces with MemberExpression set to 2 will indent the multi-line property chains with 8 spaces.

            tab

            Examples of incorrect code for this rule with the "tab" option:

            /*eslint indent: ["error", "tab"]*/
            
            if (a) {
                 b=c;
            function foo(d) {
                       e=f;
             }
            }

            Examples of correct code for this rule with the "tab" option:

            /*eslint indent: ["error", "tab"]*/
            
            if (a) {
            /*tab*/b=c;
            /*tab*/function foo(d) {
            /*tab*//*tab*/e=f;
            /*tab*/}
            }

            SwitchCase

            Examples of incorrect code for this rule with the 2, { "SwitchCase": 1 } options:

            /*eslint indent: ["error", 2, { "SwitchCase": 1 }]*/
            
            switch(a){
            case "a":
                break;
            case "b":
                break;
            }

            Examples of correct code for this rule with the 2, { "SwitchCase": 1 } option:

            /*eslint indent: ["error", 2, { "SwitchCase": 1 }]*/
            
            switch(a){
              case "a":
                break;
              case "b":
                break;
            }

            VariableDeclarator

            Examples of incorrect code for this rule with the 2, { "VariableDeclarator": 1 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 1 }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                b = 2,
                c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": 1 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 1 }]*/
            /*eslint-env es6*/
            
            var a,
              b,
              c;
            let a,
              b,
              c;
            const a = 1,
              b = 2,
              c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": 2 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 2 }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                b = 2,
                c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                  b = 2,
                  c = 3;

            outerIIFEBody

            Examples of incorrect code for this rule with the options 2, { "outerIIFEBody": 0 }:

            /*eslint indent: ["error", 2, { "outerIIFEBody": 0 }]*/
            
            (function() {
            
              function foo(x) {
                return x + 1;
              }
            
            })();
            
            
            if(y) {
            console.log('foo');
            }

            Examples of correct code for this rule with the options 2, {"outerIIFEBody": 0}:

            /*eslint indent: ["error", 2, { "outerIIFEBody": 0 }]*/
            
            (function() {
            
            function foo(x) {
              return x + 1;
            }
            
            })();
            
            
            if(y) {
               console.log('foo');
            }

            MemberExpression

            Examples of incorrect code for this rule with the 2, { "MemberExpression": 1 } options:

            /*eslint indent: ["error", 2, { "MemberExpression": 1 }]*/
            
            foo
            .bar
            .baz()

            Examples of correct code for this rule with the 2, { "MemberExpression": 1 } option:

            /*eslint indent: ["error", 2, { "MemberExpression": 1 }]*/
            
            foo
              .bar
              .baz();
            
            // Any indentation is permitted in variable declarations and assignments.
            var bip = aardvark.badger
                              .coyote;

            FunctionDeclaration

            Examples of incorrect code for this rule with the 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
            
            function foo(bar,
              baz,
              qux) {
                qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
            
            function foo(bar,
                baz,
                qux) {
              qux();
            }

            Examples of incorrect code for this rule with the 2, { "FunctionDeclaration": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
            
            function foo(bar, baz,
              qux, boop) {
              qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionDeclaration": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
            
            function foo(bar, baz,
                         qux, boop) {
              qux();
            }

            FunctionExpression

            Examples of incorrect code for this rule with the 2, { "FunctionExpression": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
            
            var foo = function(bar,
              baz,
              qux) {
                qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionExpression": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
            
            var foo = function(bar,
                baz,
                qux) {
              qux();
            }

            Examples of incorrect code for this rule with the 2, { "FunctionExpression": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
            
            var foo = function(bar, baz,
              qux, boop) {
              qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionExpression": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
            
            var foo = function(bar, baz,
                               qux, boop) {
              qux();
            }

            CallExpression

            Examples of incorrect code for this rule with the 2, { "CallExpression": {"arguments": 1} } option:

            /*eslint indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
            
            foo(bar,
                baz,
                  qux
            );

            Examples of correct code for this rule with the 2, { "CallExpression": {"arguments": 1} } option:

            /*eslint indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
            
            foo(bar,
              baz,
              qux
            );

            Examples of incorrect code for this rule with the 2, { "CallExpression": {"arguments": "first"} } option:

            /*eslint indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
            
            foo(bar, baz,
              baz, boop, beep);

            Examples of correct code for this rule with the 2, { "CallExpression": {"arguments": "first"} } option:

            /*eslint indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
            
            foo(bar, baz,
                baz, boop, beep);

            ArrayExpression

            Examples of incorrect code for this rule with the 2, { "ArrayExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ArrayExpression": 1 }]*/
            
            var foo = [
                bar,
            baz,
                  qux
            ];

            Examples of correct code for this rule with the 2, { "ArrayExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ArrayExpression": 1 }]*/
            
            var foo = [
              bar,
              baz,
              qux
            ];

            Examples of incorrect code for this rule with the 2, { "ArrayExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ArrayExpression": "first"}]*/
            
            var foo = [bar,
              baz,
              qux
            ];

            Examples of correct code for this rule with the 2, { "ArrayExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ArrayExpression": "first"}]*/
            
            var foo = [bar,
                       baz,
                       qux
            ];

            ObjectExpression

            Examples of incorrect code for this rule with the 2, { "ObjectExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ObjectExpression": 1 }]*/
            
            var foo = {
                bar: 1,
            baz: 2,
                  qux: 3
            };

            Examples of correct code for this rule with the 2, { "ObjectExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ObjectExpression": 1 }]*/
            
            var foo = {
              bar: 1,
              baz: 2,
              qux: 3
            };

            Examples of incorrect code for this rule with the 2, { "ObjectExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ObjectExpression": "first"}]*/
            
            var foo = { bar: 1,
              baz: 2 };

            Examples of correct code for this rule with the 2, { "ObjectExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ObjectExpression": "first"}]*/
            
            var foo = { bar: 1,
                        baz: 2 };

            Compatibility

            Mixed spaces and tabs.
            Open

                      var containerPlain = container.get(0);

            disallow mixed spaces and tabs for indentation (no-mixed-spaces-and-tabs)

            Most code conventions require either tabs or spaces be used for indentation. As such, it's usually an error if a single line of code is indented with both tabs and spaces.

            Rule Details

            This rule disallows mixed spaces and tabs for indentation.

            Examples of incorrect code for this rule:

            /*eslint no-mixed-spaces-and-tabs: "error"*/
            
            function add(x, y) {
            // --->..return x + y;
            
                  return x + y;
            }
            
            function main() {
            // --->var x = 5,
            // --->....y = 7;
            
                var x = 5,
                    y = 7;
            }

            Examples of correct code for this rule:

            /*eslint no-mixed-spaces-and-tabs: "error"*/
            
            function add(x, y) {
            // --->return x + y;
                return x + y;
            }

            Options

            This rule has a string option.

            • "smart-tabs" allows mixed spaces and tabs when the latter are used for alignment.

            smart-tabs

            Examples of correct code for this rule with the "smart-tabs" option:

            /*eslint no-mixed-spaces-and-tabs: ["error", "smart-tabs"]*/
            
            function main() {
            // --->var x = 5,
            // --->....y = 7;
            
                var x = 5,
                    y = 7;
            }

            Further Reading

            Missing semicolon.
            Open

                      function (e) { self.nav(e, 'prev') })

            require or disallow semicolons instead of ASI (semi)

            JavaScript is unique amongst the C-like languages in that it doesn't require semicolons at the end of each statement. In many cases, the JavaScript engine can determine that a semicolon should be in a certain spot and will automatically add it. This feature is known as automatic semicolon insertion (ASI) and is considered one of the more controversial features of JavaScript. For example, the following lines are both valid:

            var name = "ESLint"
            var website = "eslint.org";

            On the first line, the JavaScript engine will automatically insert a semicolon, so this is not considered a syntax error. The JavaScript engine still knows how to interpret the line and knows that the line end indicates the end of the statement.

            In the debate over ASI, there are generally two schools of thought. The first is that we should treat ASI as if it didn't exist and always include semicolons manually. The rationale is that it's easier to always include semicolons than to try to remember when they are or are not required, and thus decreases the possibility of introducing an error.

            However, the ASI mechanism can sometimes be tricky to people who are using semicolons. For example, consider this code:

            return
            {
                name: "ESLint"
            };

            This may look like a return statement that returns an object literal, however, the JavaScript engine will interpret this code as:

            return;
            {
                name: "ESLint";
            }

            Effectively, a semicolon is inserted after the return statement, causing the code below it (a labeled literal inside a block) to be unreachable. This rule and the [no-unreachable](no-unreachable.md) rule will protect your code from such cases.

            On the other side of the argument are those who says that since semicolons are inserted automatically, they are optional and do not need to be inserted manually. However, the ASI mechanism can also be tricky to people who don't use semicolons. For example, consider this code:

            var globalCounter = { }
            
            (function () {
                var n = 0
                globalCounter.increment = function () {
                    return ++n
                }
            })()

            In this example, a semicolon will not be inserted after the first line, causing a run-time error (because an empty object is called as if it's a function). The [no-unexpected-multiline](no-unexpected-multiline.md) rule can protect your code from such cases.

            Although ASI allows for more freedom over your coding style, it can also make your code behave in an unexpected way, whether you use semicolons or not. Therefore, it is best to know when ASI takes place and when it does not, and have ESLint protect your code from these potentially unexpected cases. In short, as once described by Isaac Schlueter, a \n character always ends a statement (just like a semicolon) unless one of the following is true:

            1. The statement has an unclosed paren, array literal, or object literal or ends in some other way that is not a valid way to end a statement. (For instance, ending with . or ,.)
            2. The line is -- or ++ (in which case it will decrement/increment the next token.)
            3. It is a for(), while(), do, if(), or else, and there is no {
            4. The next line starts with [, (, +, *, /, -, ,, ., or some other binary operator that can only be found between two tokens in a single expression.

            Rule Details

            This rule enforces consistent use of semicolons.

            Options

            This rule has two options, a string option and an object option.

            String option:

            • "always" (default) requires semicolons at the end of statements
            • "never" disallows semicolons as the end of statements (except to disambiguate statements beginning with [, (, /, +, or -)

            Object option:

            • "omitLastInOneLineBlock": true ignores the last semicolon in a block in which its braces (and therefore the content of the block) are in the same line

            always

            Examples of incorrect code for this rule with the default "always" option:

            /*eslint semi: ["error", "always"]*/
            
            var name = "ESLint"
            
            object.method = function() {
                // ...
            }

            Examples of correct code for this rule with the default "always" option:

            /*eslint semi: "error"*/
            
            var name = "ESLint";
            
            object.method = function() {
                // ...
            };

            never

            Examples of incorrect code for this rule with the "never" option:

            /*eslint semi: ["error", "never"]*/
            
            var name = "ESLint";
            
            object.method = function() {
                // ...
            };

            Examples of correct code for this rule with the "never" option:

            /*eslint semi: ["error", "never"]*/
            
            var name = "ESLint"
            
            object.method = function() {
                // ...
            }
            
            var name = "ESLint"
            
            ;(function() {
                // ...
            })()

            omitLastInOneLineBlock

            Examples of additional correct code for this rule with the "always", { "omitLastInOneLineBlock": true } options:

            /*eslint semi: ["error", "always", { "omitLastInOneLineBlock": true}] */
            
            if (foo) { bar() }
            
            if (foo) { bar(); baz() }

            When Not To Use It

            If you do not want to enforce semicolon usage (or omission) in any particular way, then you can turn this rule off.

            Further Reading

            Related Rules

            • [no-extra-semi](no-extra-semi.md)
            • [no-unexpected-multiline](no-unexpected-multiline.md)
            • [semi-spacing](semi-spacing.md) Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                      S(this).data('swipe-transition', {});

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'visible_image' is not in camel case.
            Open

                    visible_image = $('.visible-img', container);

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'up_count' is not in camel case.
            Open

                      up_count = Math.floor(this.S('.clearing-container').outerWidth() / li_width) - 1,

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'target_index' is not in camel case.
            Open

                  for (var i = target_index + 1; i >= target_index - 1; i--) {

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                  this.S(this.scope).off('.fndtn.clearing');

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Expected indentation of 12 spaces but found 16.
            Open

                            start_page_x : e.touches[0].pageX,

            enforce consistent indentation (indent)

            There are several common guidelines which require specific indentation of nested blocks and statements, like:

            function hello(indentSize, type) {
                if (indentSize === 4 && type !== 'tab') {
                    console.log('Each next indentation will increase on 4 spaces');
                }
            }

            These are the most common scenarios recommended in different style guides:

            • Two spaces, not longer and no tabs: Google, npm, Node.js, Idiomatic, Felix
            • Tabs: jQuery
            • Four spaces: Crockford

            Rule Details

            This rule enforces a consistent indentation style. The default style is 4 spaces.

            Options

            This rule has a mixed option:

            For example, for 2-space indentation:

            {
                "indent": ["error", 2]
            }

            Or for tabbed indentation:

            {
                "indent": ["error", "tab"]
            }

            Examples of incorrect code for this rule with the default options:

            /*eslint indent: "error"*/
            
            if (a) {
              b=c;
              function foo(d) {
                e=f;
              }
            }

            Examples of correct code for this rule with the default options:

            /*eslint indent: "error"*/
            
            if (a) {
                b=c;
                function foo(d) {
                    e=f;
                }
            }

            This rule has an object option:

            • "SwitchCase" (default: 0) enforces indentation level for case clauses in switch statements
            • "VariableDeclarator" (default: 1) enforces indentation level for var declarators; can also take an object to define separate rules for var, let and const declarations.
            • "outerIIFEBody" (default: 1) enforces indentation level for file-level IIFEs.
            • "MemberExpression" (off by default) enforces indentation level for multi-line property chains (except in variable declarations and assignments)
            • "FunctionDeclaration" takes an object to define rules for function declarations.
              • parameters (off by default) enforces indentation level for parameters in a function declaration. This can either be a number indicating indentation level, or the string "first" indicating that all parameters of the declaration must be aligned with the first parameter.
              • body (default: 1) enforces indentation level for the body of a function declaration.
            • "FunctionExpression" takes an object to define rules for function expressions.
              • parameters (off by default) enforces indentation level for parameters in a function expression. This can either be a number indicating indentation level, or the string "first" indicating that all parameters of the expression must be aligned with the first parameter.
              • body (default: 1) enforces indentation level for the body of a function expression.
            • "CallExpression" takes an object to define rules for function call expressions.
              • arguments (off by default) enforces indentation level for arguments in a call expression. This can either be a number indicating indentation level, or the string "first" indicating that all arguments of the expression must be aligned with the first argument.
            • "ArrayExpression" (default: 1) enforces indentation level for elements in arrays. It can also be set to the string "first", indicating that all the elements in the array should be aligned with the first element.
            • "ObjectExpression" (default: 1) enforces indentation level for properties in objects. It can be set to the string "first", indicating that all properties in the object should be aligned with the first property.

            Level of indentation denotes the multiple of the indent specified. Example:

            • Indent of 4 spaces with VariableDeclarator set to 2 will indent the multi-line variable declarations with 8 spaces.
            • Indent of 2 spaces with VariableDeclarator set to 2 will indent the multi-line variable declarations with 4 spaces.
            • Indent of 2 spaces with VariableDeclarator set to {"var": 2, "let": 2, "const": 3} will indent the multi-line variable declarations with 4 spaces for var and let, 6 spaces for const statements.
            • Indent of tab with VariableDeclarator set to 2 will indent the multi-line variable declarations with 2 tabs.
            • Indent of 2 spaces with SwitchCase set to 0 will not indent case clauses with respect to switch statements.
            • Indent of 2 spaces with SwitchCase set to 1 will indent case clauses with 2 spaces with respect to switch statements.
            • Indent of 2 spaces with SwitchCase set to 2 will indent case clauses with 4 spaces with respect to switch statements.
            • Indent of tab with SwitchCase set to 2 will indent case clauses with 2 tabs with respect to switch statements.
            • Indent of 2 spaces with MemberExpression set to 0 will indent the multi-line property chains with 0 spaces.
            • Indent of 2 spaces with MemberExpression set to 1 will indent the multi-line property chains with 2 spaces.
            • Indent of 2 spaces with MemberExpression set to 2 will indent the multi-line property chains with 4 spaces.
            • Indent of 4 spaces with MemberExpression set to 0 will indent the multi-line property chains with 0 spaces.
            • Indent of 4 spaces with MemberExpression set to 1 will indent the multi-line property chains with 4 spaces.
            • Indent of 4 spaces with MemberExpression set to 2 will indent the multi-line property chains with 8 spaces.

            tab

            Examples of incorrect code for this rule with the "tab" option:

            /*eslint indent: ["error", "tab"]*/
            
            if (a) {
                 b=c;
            function foo(d) {
                       e=f;
             }
            }

            Examples of correct code for this rule with the "tab" option:

            /*eslint indent: ["error", "tab"]*/
            
            if (a) {
            /*tab*/b=c;
            /*tab*/function foo(d) {
            /*tab*//*tab*/e=f;
            /*tab*/}
            }

            SwitchCase

            Examples of incorrect code for this rule with the 2, { "SwitchCase": 1 } options:

            /*eslint indent: ["error", 2, { "SwitchCase": 1 }]*/
            
            switch(a){
            case "a":
                break;
            case "b":
                break;
            }

            Examples of correct code for this rule with the 2, { "SwitchCase": 1 } option:

            /*eslint indent: ["error", 2, { "SwitchCase": 1 }]*/
            
            switch(a){
              case "a":
                break;
              case "b":
                break;
            }

            VariableDeclarator

            Examples of incorrect code for this rule with the 2, { "VariableDeclarator": 1 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 1 }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                b = 2,
                c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": 1 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 1 }]*/
            /*eslint-env es6*/
            
            var a,
              b,
              c;
            let a,
              b,
              c;
            const a = 1,
              b = 2,
              c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": 2 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 2 }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                b = 2,
                c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                  b = 2,
                  c = 3;

            outerIIFEBody

            Examples of incorrect code for this rule with the options 2, { "outerIIFEBody": 0 }:

            /*eslint indent: ["error", 2, { "outerIIFEBody": 0 }]*/
            
            (function() {
            
              function foo(x) {
                return x + 1;
              }
            
            })();
            
            
            if(y) {
            console.log('foo');
            }

            Examples of correct code for this rule with the options 2, {"outerIIFEBody": 0}:

            /*eslint indent: ["error", 2, { "outerIIFEBody": 0 }]*/
            
            (function() {
            
            function foo(x) {
              return x + 1;
            }
            
            })();
            
            
            if(y) {
               console.log('foo');
            }

            MemberExpression

            Examples of incorrect code for this rule with the 2, { "MemberExpression": 1 } options:

            /*eslint indent: ["error", 2, { "MemberExpression": 1 }]*/
            
            foo
            .bar
            .baz()

            Examples of correct code for this rule with the 2, { "MemberExpression": 1 } option:

            /*eslint indent: ["error", 2, { "MemberExpression": 1 }]*/
            
            foo
              .bar
              .baz();
            
            // Any indentation is permitted in variable declarations and assignments.
            var bip = aardvark.badger
                              .coyote;

            FunctionDeclaration

            Examples of incorrect code for this rule with the 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
            
            function foo(bar,
              baz,
              qux) {
                qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
            
            function foo(bar,
                baz,
                qux) {
              qux();
            }

            Examples of incorrect code for this rule with the 2, { "FunctionDeclaration": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
            
            function foo(bar, baz,
              qux, boop) {
              qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionDeclaration": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
            
            function foo(bar, baz,
                         qux, boop) {
              qux();
            }

            FunctionExpression

            Examples of incorrect code for this rule with the 2, { "FunctionExpression": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
            
            var foo = function(bar,
              baz,
              qux) {
                qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionExpression": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
            
            var foo = function(bar,
                baz,
                qux) {
              qux();
            }

            Examples of incorrect code for this rule with the 2, { "FunctionExpression": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
            
            var foo = function(bar, baz,
              qux, boop) {
              qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionExpression": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
            
            var foo = function(bar, baz,
                               qux, boop) {
              qux();
            }

            CallExpression

            Examples of incorrect code for this rule with the 2, { "CallExpression": {"arguments": 1} } option:

            /*eslint indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
            
            foo(bar,
                baz,
                  qux
            );

            Examples of correct code for this rule with the 2, { "CallExpression": {"arguments": 1} } option:

            /*eslint indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
            
            foo(bar,
              baz,
              qux
            );

            Examples of incorrect code for this rule with the 2, { "CallExpression": {"arguments": "first"} } option:

            /*eslint indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
            
            foo(bar, baz,
              baz, boop, beep);

            Examples of correct code for this rule with the 2, { "CallExpression": {"arguments": "first"} } option:

            /*eslint indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
            
            foo(bar, baz,
                baz, boop, beep);

            ArrayExpression

            Examples of incorrect code for this rule with the 2, { "ArrayExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ArrayExpression": 1 }]*/
            
            var foo = [
                bar,
            baz,
                  qux
            ];

            Examples of correct code for this rule with the 2, { "ArrayExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ArrayExpression": 1 }]*/
            
            var foo = [
              bar,
              baz,
              qux
            ];

            Examples of incorrect code for this rule with the 2, { "ArrayExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ArrayExpression": "first"}]*/
            
            var foo = [bar,
              baz,
              qux
            ];

            Examples of correct code for this rule with the 2, { "ArrayExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ArrayExpression": "first"}]*/
            
            var foo = [bar,
                       baz,
                       qux
            ];

            ObjectExpression

            Examples of incorrect code for this rule with the 2, { "ObjectExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ObjectExpression": 1 }]*/
            
            var foo = {
                bar: 1,
            baz: 2,
                  qux: 3
            };

            Examples of correct code for this rule with the 2, { "ObjectExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ObjectExpression": 1 }]*/
            
            var foo = {
              bar: 1,
              baz: 2,
              qux: 3
            };

            Examples of incorrect code for this rule with the 2, { "ObjectExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ObjectExpression": "first"}]*/
            
            var foo = { bar: 1,
              baz: 2 };

            Examples of correct code for this rule with the 2, { "ObjectExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ObjectExpression": "first"}]*/
            
            var foo = { bar: 1,
                        baz: 2 };

            Compatibility

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                      image = self.S('img', visible_image).not($image),

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                    this.S('.clearing-main-prev', visible_image).removeClass('disabled');

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'sibling_type' is not in camel case.
            Open

                img : function (img, sibling_type) {

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                  var lis = this.S('li', $el),

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'li_width' is not in camel case.
            Open

                      up_count = Math.floor(this.S('.clearing-container').outerWidth() / li_width) - 1,

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'target_index' is not in camel case.
            Open

                    if ((target_index > up_count) && target_index > this.settings.prev_index) {

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Expected indentation of 12 spaces but found 16.
            Open

                            is_scrolling : undefined

            enforce consistent indentation (indent)

            There are several common guidelines which require specific indentation of nested blocks and statements, like:

            function hello(indentSize, type) {
                if (indentSize === 4 && type !== 'tab') {
                    console.log('Each next indentation will increase on 4 spaces');
                }
            }

            These are the most common scenarios recommended in different style guides:

            • Two spaces, not longer and no tabs: Google, npm, Node.js, Idiomatic, Felix
            • Tabs: jQuery
            • Four spaces: Crockford

            Rule Details

            This rule enforces a consistent indentation style. The default style is 4 spaces.

            Options

            This rule has a mixed option:

            For example, for 2-space indentation:

            {
                "indent": ["error", 2]
            }

            Or for tabbed indentation:

            {
                "indent": ["error", "tab"]
            }

            Examples of incorrect code for this rule with the default options:

            /*eslint indent: "error"*/
            
            if (a) {
              b=c;
              function foo(d) {
                e=f;
              }
            }

            Examples of correct code for this rule with the default options:

            /*eslint indent: "error"*/
            
            if (a) {
                b=c;
                function foo(d) {
                    e=f;
                }
            }

            This rule has an object option:

            • "SwitchCase" (default: 0) enforces indentation level for case clauses in switch statements
            • "VariableDeclarator" (default: 1) enforces indentation level for var declarators; can also take an object to define separate rules for var, let and const declarations.
            • "outerIIFEBody" (default: 1) enforces indentation level for file-level IIFEs.
            • "MemberExpression" (off by default) enforces indentation level for multi-line property chains (except in variable declarations and assignments)
            • "FunctionDeclaration" takes an object to define rules for function declarations.
              • parameters (off by default) enforces indentation level for parameters in a function declaration. This can either be a number indicating indentation level, or the string "first" indicating that all parameters of the declaration must be aligned with the first parameter.
              • body (default: 1) enforces indentation level for the body of a function declaration.
            • "FunctionExpression" takes an object to define rules for function expressions.
              • parameters (off by default) enforces indentation level for parameters in a function expression. This can either be a number indicating indentation level, or the string "first" indicating that all parameters of the expression must be aligned with the first parameter.
              • body (default: 1) enforces indentation level for the body of a function expression.
            • "CallExpression" takes an object to define rules for function call expressions.
              • arguments (off by default) enforces indentation level for arguments in a call expression. This can either be a number indicating indentation level, or the string "first" indicating that all arguments of the expression must be aligned with the first argument.
            • "ArrayExpression" (default: 1) enforces indentation level for elements in arrays. It can also be set to the string "first", indicating that all the elements in the array should be aligned with the first element.
            • "ObjectExpression" (default: 1) enforces indentation level for properties in objects. It can be set to the string "first", indicating that all properties in the object should be aligned with the first property.

            Level of indentation denotes the multiple of the indent specified. Example:

            • Indent of 4 spaces with VariableDeclarator set to 2 will indent the multi-line variable declarations with 8 spaces.
            • Indent of 2 spaces with VariableDeclarator set to 2 will indent the multi-line variable declarations with 4 spaces.
            • Indent of 2 spaces with VariableDeclarator set to {"var": 2, "let": 2, "const": 3} will indent the multi-line variable declarations with 4 spaces for var and let, 6 spaces for const statements.
            • Indent of tab with VariableDeclarator set to 2 will indent the multi-line variable declarations with 2 tabs.
            • Indent of 2 spaces with SwitchCase set to 0 will not indent case clauses with respect to switch statements.
            • Indent of 2 spaces with SwitchCase set to 1 will indent case clauses with 2 spaces with respect to switch statements.
            • Indent of 2 spaces with SwitchCase set to 2 will indent case clauses with 4 spaces with respect to switch statements.
            • Indent of tab with SwitchCase set to 2 will indent case clauses with 2 tabs with respect to switch statements.
            • Indent of 2 spaces with MemberExpression set to 0 will indent the multi-line property chains with 0 spaces.
            • Indent of 2 spaces with MemberExpression set to 1 will indent the multi-line property chains with 2 spaces.
            • Indent of 2 spaces with MemberExpression set to 2 will indent the multi-line property chains with 4 spaces.
            • Indent of 4 spaces with MemberExpression set to 0 will indent the multi-line property chains with 0 spaces.
            • Indent of 4 spaces with MemberExpression set to 1 will indent the multi-line property chains with 4 spaces.
            • Indent of 4 spaces with MemberExpression set to 2 will indent the multi-line property chains with 8 spaces.

            tab

            Examples of incorrect code for this rule with the "tab" option:

            /*eslint indent: ["error", "tab"]*/
            
            if (a) {
                 b=c;
            function foo(d) {
                       e=f;
             }
            }

            Examples of correct code for this rule with the "tab" option:

            /*eslint indent: ["error", "tab"]*/
            
            if (a) {
            /*tab*/b=c;
            /*tab*/function foo(d) {
            /*tab*//*tab*/e=f;
            /*tab*/}
            }

            SwitchCase

            Examples of incorrect code for this rule with the 2, { "SwitchCase": 1 } options:

            /*eslint indent: ["error", 2, { "SwitchCase": 1 }]*/
            
            switch(a){
            case "a":
                break;
            case "b":
                break;
            }

            Examples of correct code for this rule with the 2, { "SwitchCase": 1 } option:

            /*eslint indent: ["error", 2, { "SwitchCase": 1 }]*/
            
            switch(a){
              case "a":
                break;
              case "b":
                break;
            }

            VariableDeclarator

            Examples of incorrect code for this rule with the 2, { "VariableDeclarator": 1 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 1 }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                b = 2,
                c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": 1 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 1 }]*/
            /*eslint-env es6*/
            
            var a,
              b,
              c;
            let a,
              b,
              c;
            const a = 1,
              b = 2,
              c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": 2 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 2 }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                b = 2,
                c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                  b = 2,
                  c = 3;

            outerIIFEBody

            Examples of incorrect code for this rule with the options 2, { "outerIIFEBody": 0 }:

            /*eslint indent: ["error", 2, { "outerIIFEBody": 0 }]*/
            
            (function() {
            
              function foo(x) {
                return x + 1;
              }
            
            })();
            
            
            if(y) {
            console.log('foo');
            }

            Examples of correct code for this rule with the options 2, {"outerIIFEBody": 0}:

            /*eslint indent: ["error", 2, { "outerIIFEBody": 0 }]*/
            
            (function() {
            
            function foo(x) {
              return x + 1;
            }
            
            })();
            
            
            if(y) {
               console.log('foo');
            }

            MemberExpression

            Examples of incorrect code for this rule with the 2, { "MemberExpression": 1 } options:

            /*eslint indent: ["error", 2, { "MemberExpression": 1 }]*/
            
            foo
            .bar
            .baz()

            Examples of correct code for this rule with the 2, { "MemberExpression": 1 } option:

            /*eslint indent: ["error", 2, { "MemberExpression": 1 }]*/
            
            foo
              .bar
              .baz();
            
            // Any indentation is permitted in variable declarations and assignments.
            var bip = aardvark.badger
                              .coyote;

            FunctionDeclaration

            Examples of incorrect code for this rule with the 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
            
            function foo(bar,
              baz,
              qux) {
                qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
            
            function foo(bar,
                baz,
                qux) {
              qux();
            }

            Examples of incorrect code for this rule with the 2, { "FunctionDeclaration": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
            
            function foo(bar, baz,
              qux, boop) {
              qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionDeclaration": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
            
            function foo(bar, baz,
                         qux, boop) {
              qux();
            }

            FunctionExpression

            Examples of incorrect code for this rule with the 2, { "FunctionExpression": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
            
            var foo = function(bar,
              baz,
              qux) {
                qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionExpression": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
            
            var foo = function(bar,
                baz,
                qux) {
              qux();
            }

            Examples of incorrect code for this rule with the 2, { "FunctionExpression": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
            
            var foo = function(bar, baz,
              qux, boop) {
              qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionExpression": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
            
            var foo = function(bar, baz,
                               qux, boop) {
              qux();
            }

            CallExpression

            Examples of incorrect code for this rule with the 2, { "CallExpression": {"arguments": 1} } option:

            /*eslint indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
            
            foo(bar,
                baz,
                  qux
            );

            Examples of correct code for this rule with the 2, { "CallExpression": {"arguments": 1} } option:

            /*eslint indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
            
            foo(bar,
              baz,
              qux
            );

            Examples of incorrect code for this rule with the 2, { "CallExpression": {"arguments": "first"} } option:

            /*eslint indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
            
            foo(bar, baz,
              baz, boop, beep);

            Examples of correct code for this rule with the 2, { "CallExpression": {"arguments": "first"} } option:

            /*eslint indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
            
            foo(bar, baz,
                baz, boop, beep);

            ArrayExpression

            Examples of incorrect code for this rule with the 2, { "ArrayExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ArrayExpression": 1 }]*/
            
            var foo = [
                bar,
            baz,
                  qux
            ];

            Examples of correct code for this rule with the 2, { "ArrayExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ArrayExpression": 1 }]*/
            
            var foo = [
              bar,
              baz,
              qux
            ];

            Examples of incorrect code for this rule with the 2, { "ArrayExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ArrayExpression": "first"}]*/
            
            var foo = [bar,
              baz,
              qux
            ];

            Examples of correct code for this rule with the 2, { "ArrayExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ArrayExpression": "first"}]*/
            
            var foo = [bar,
                       baz,
                       qux
            ];

            ObjectExpression

            Examples of incorrect code for this rule with the 2, { "ObjectExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ObjectExpression": 1 }]*/
            
            var foo = {
                bar: 1,
            baz: 2,
                  qux: 3
            };

            Examples of correct code for this rule with the 2, { "ObjectExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ObjectExpression": 1 }]*/
            
            var foo = {
              bar: 1,
              baz: 2,
              qux: 3
            };

            Examples of incorrect code for this rule with the 2, { "ObjectExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ObjectExpression": "first"}]*/
            
            var foo = { bar: 1,
              baz: 2 };

            Examples of correct code for this rule with the 2, { "ObjectExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ObjectExpression": "first"}]*/
            
            var foo = { bar: 1,
                        baz: 2 };

            Compatibility

            Expected indentation of 10 spaces but found 14.
            Open

                          };

            enforce consistent indentation (indent)

            There are several common guidelines which require specific indentation of nested blocks and statements, like:

            function hello(indentSize, type) {
                if (indentSize === 4 && type !== 'tab') {
                    console.log('Each next indentation will increase on 4 spaces');
                }
            }

            These are the most common scenarios recommended in different style guides:

            • Two spaces, not longer and no tabs: Google, npm, Node.js, Idiomatic, Felix
            • Tabs: jQuery
            • Four spaces: Crockford

            Rule Details

            This rule enforces a consistent indentation style. The default style is 4 spaces.

            Options

            This rule has a mixed option:

            For example, for 2-space indentation:

            {
                "indent": ["error", 2]
            }

            Or for tabbed indentation:

            {
                "indent": ["error", "tab"]
            }

            Examples of incorrect code for this rule with the default options:

            /*eslint indent: "error"*/
            
            if (a) {
              b=c;
              function foo(d) {
                e=f;
              }
            }

            Examples of correct code for this rule with the default options:

            /*eslint indent: "error"*/
            
            if (a) {
                b=c;
                function foo(d) {
                    e=f;
                }
            }

            This rule has an object option:

            • "SwitchCase" (default: 0) enforces indentation level for case clauses in switch statements
            • "VariableDeclarator" (default: 1) enforces indentation level for var declarators; can also take an object to define separate rules for var, let and const declarations.
            • "outerIIFEBody" (default: 1) enforces indentation level for file-level IIFEs.
            • "MemberExpression" (off by default) enforces indentation level for multi-line property chains (except in variable declarations and assignments)
            • "FunctionDeclaration" takes an object to define rules for function declarations.
              • parameters (off by default) enforces indentation level for parameters in a function declaration. This can either be a number indicating indentation level, or the string "first" indicating that all parameters of the declaration must be aligned with the first parameter.
              • body (default: 1) enforces indentation level for the body of a function declaration.
            • "FunctionExpression" takes an object to define rules for function expressions.
              • parameters (off by default) enforces indentation level for parameters in a function expression. This can either be a number indicating indentation level, or the string "first" indicating that all parameters of the expression must be aligned with the first parameter.
              • body (default: 1) enforces indentation level for the body of a function expression.
            • "CallExpression" takes an object to define rules for function call expressions.
              • arguments (off by default) enforces indentation level for arguments in a call expression. This can either be a number indicating indentation level, or the string "first" indicating that all arguments of the expression must be aligned with the first argument.
            • "ArrayExpression" (default: 1) enforces indentation level for elements in arrays. It can also be set to the string "first", indicating that all the elements in the array should be aligned with the first element.
            • "ObjectExpression" (default: 1) enforces indentation level for properties in objects. It can be set to the string "first", indicating that all properties in the object should be aligned with the first property.

            Level of indentation denotes the multiple of the indent specified. Example:

            • Indent of 4 spaces with VariableDeclarator set to 2 will indent the multi-line variable declarations with 8 spaces.
            • Indent of 2 spaces with VariableDeclarator set to 2 will indent the multi-line variable declarations with 4 spaces.
            • Indent of 2 spaces with VariableDeclarator set to {"var": 2, "let": 2, "const": 3} will indent the multi-line variable declarations with 4 spaces for var and let, 6 spaces for const statements.
            • Indent of tab with VariableDeclarator set to 2 will indent the multi-line variable declarations with 2 tabs.
            • Indent of 2 spaces with SwitchCase set to 0 will not indent case clauses with respect to switch statements.
            • Indent of 2 spaces with SwitchCase set to 1 will indent case clauses with 2 spaces with respect to switch statements.
            • Indent of 2 spaces with SwitchCase set to 2 will indent case clauses with 4 spaces with respect to switch statements.
            • Indent of tab with SwitchCase set to 2 will indent case clauses with 2 tabs with respect to switch statements.
            • Indent of 2 spaces with MemberExpression set to 0 will indent the multi-line property chains with 0 spaces.
            • Indent of 2 spaces with MemberExpression set to 1 will indent the multi-line property chains with 2 spaces.
            • Indent of 2 spaces with MemberExpression set to 2 will indent the multi-line property chains with 4 spaces.
            • Indent of 4 spaces with MemberExpression set to 0 will indent the multi-line property chains with 0 spaces.
            • Indent of 4 spaces with MemberExpression set to 1 will indent the multi-line property chains with 4 spaces.
            • Indent of 4 spaces with MemberExpression set to 2 will indent the multi-line property chains with 8 spaces.

            tab

            Examples of incorrect code for this rule with the "tab" option:

            /*eslint indent: ["error", "tab"]*/
            
            if (a) {
                 b=c;
            function foo(d) {
                       e=f;
             }
            }

            Examples of correct code for this rule with the "tab" option:

            /*eslint indent: ["error", "tab"]*/
            
            if (a) {
            /*tab*/b=c;
            /*tab*/function foo(d) {
            /*tab*//*tab*/e=f;
            /*tab*/}
            }

            SwitchCase

            Examples of incorrect code for this rule with the 2, { "SwitchCase": 1 } options:

            /*eslint indent: ["error", 2, { "SwitchCase": 1 }]*/
            
            switch(a){
            case "a":
                break;
            case "b":
                break;
            }

            Examples of correct code for this rule with the 2, { "SwitchCase": 1 } option:

            /*eslint indent: ["error", 2, { "SwitchCase": 1 }]*/
            
            switch(a){
              case "a":
                break;
              case "b":
                break;
            }

            VariableDeclarator

            Examples of incorrect code for this rule with the 2, { "VariableDeclarator": 1 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 1 }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                b = 2,
                c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": 1 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 1 }]*/
            /*eslint-env es6*/
            
            var a,
              b,
              c;
            let a,
              b,
              c;
            const a = 1,
              b = 2,
              c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": 2 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 2 }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                b = 2,
                c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                  b = 2,
                  c = 3;

            outerIIFEBody

            Examples of incorrect code for this rule with the options 2, { "outerIIFEBody": 0 }:

            /*eslint indent: ["error", 2, { "outerIIFEBody": 0 }]*/
            
            (function() {
            
              function foo(x) {
                return x + 1;
              }
            
            })();
            
            
            if(y) {
            console.log('foo');
            }

            Examples of correct code for this rule with the options 2, {"outerIIFEBody": 0}:

            /*eslint indent: ["error", 2, { "outerIIFEBody": 0 }]*/
            
            (function() {
            
            function foo(x) {
              return x + 1;
            }
            
            })();
            
            
            if(y) {
               console.log('foo');
            }

            MemberExpression

            Examples of incorrect code for this rule with the 2, { "MemberExpression": 1 } options:

            /*eslint indent: ["error", 2, { "MemberExpression": 1 }]*/
            
            foo
            .bar
            .baz()

            Examples of correct code for this rule with the 2, { "MemberExpression": 1 } option:

            /*eslint indent: ["error", 2, { "MemberExpression": 1 }]*/
            
            foo
              .bar
              .baz();
            
            // Any indentation is permitted in variable declarations and assignments.
            var bip = aardvark.badger
                              .coyote;

            FunctionDeclaration

            Examples of incorrect code for this rule with the 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
            
            function foo(bar,
              baz,
              qux) {
                qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
            
            function foo(bar,
                baz,
                qux) {
              qux();
            }

            Examples of incorrect code for this rule with the 2, { "FunctionDeclaration": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
            
            function foo(bar, baz,
              qux, boop) {
              qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionDeclaration": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
            
            function foo(bar, baz,
                         qux, boop) {
              qux();
            }

            FunctionExpression

            Examples of incorrect code for this rule with the 2, { "FunctionExpression": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
            
            var foo = function(bar,
              baz,
              qux) {
                qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionExpression": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
            
            var foo = function(bar,
                baz,
                qux) {
              qux();
            }

            Examples of incorrect code for this rule with the 2, { "FunctionExpression": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
            
            var foo = function(bar, baz,
              qux, boop) {
              qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionExpression": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
            
            var foo = function(bar, baz,
                               qux, boop) {
              qux();
            }

            CallExpression

            Examples of incorrect code for this rule with the 2, { "CallExpression": {"arguments": 1} } option:

            /*eslint indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
            
            foo(bar,
                baz,
                  qux
            );

            Examples of correct code for this rule with the 2, { "CallExpression": {"arguments": 1} } option:

            /*eslint indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
            
            foo(bar,
              baz,
              qux
            );

            Examples of incorrect code for this rule with the 2, { "CallExpression": {"arguments": "first"} } option:

            /*eslint indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
            
            foo(bar, baz,
              baz, boop, beep);

            Examples of correct code for this rule with the 2, { "CallExpression": {"arguments": "first"} } option:

            /*eslint indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
            
            foo(bar, baz,
                baz, boop, beep);

            ArrayExpression

            Examples of incorrect code for this rule with the 2, { "ArrayExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ArrayExpression": 1 }]*/
            
            var foo = [
                bar,
            baz,
                  qux
            ];

            Examples of correct code for this rule with the 2, { "ArrayExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ArrayExpression": 1 }]*/
            
            var foo = [
              bar,
              baz,
              qux
            ];

            Examples of incorrect code for this rule with the 2, { "ArrayExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ArrayExpression": "first"}]*/
            
            var foo = [bar,
              baz,
              qux
            ];

            Examples of correct code for this rule with the 2, { "ArrayExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ArrayExpression": "first"}]*/
            
            var foo = [bar,
                       baz,
                       qux
            ];

            ObjectExpression

            Examples of incorrect code for this rule with the 2, { "ObjectExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ObjectExpression": 1 }]*/
            
            var foo = {
                bar: 1,
            baz: 2,
                  qux: 3
            };

            Examples of correct code for this rule with the 2, { "ObjectExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ObjectExpression": 1 }]*/
            
            var foo = {
              bar: 1,
              baz: 2,
              qux: 3
            };

            Examples of incorrect code for this rule with the 2, { "ObjectExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ObjectExpression": "first"}]*/
            
            var foo = { bar: 1,
              baz: 2 };

            Examples of correct code for this rule with the 2, { "ObjectExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ObjectExpression": "first"}]*/
            
            var foo = { bar: 1,
                        baz: 2 };

            Compatibility

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                    this.S('.clearing-main-next', visible_image).addClass('disabled');

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                        new_a = this.S('a', img),

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'old_index' is not in camel case.
            Open

                  if (target.index() !== old_index && !/skip/.test(direction)) {

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'current_index' is not in camel case.
            Open

                adjacent : function (current_index, target_index) {

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier '$scroll_container' is not in camel case.
            Open

                      $scroll_container = $('.scroll-container');

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                  S(window).off('.clearing').on('resize.fndtn.clearing',

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'grid_outerHTML' is not in camel case.
            Open

                      grid_outerHTML = '';

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'target_index' is not in camel case.
            Open

                    } else if ((target_index > up_count - 1) && target_index <= this.settings.prev_index) {

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'target_index' is not in camel case.
            Open

                adjacent : function (current_index, target_index) {

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'target_index' is not in camel case.
            Open

                  for (var i = target_index + 1; i >= target_index - 1; i--) {

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'current_index' is not in camel case.
            Open

                    if (i === current_index) {

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                        var current = current || S(this),

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Missing semicolon.
            Open

                      function (e) { self.keydown(e) });

            require or disallow semicolons instead of ASI (semi)

            JavaScript is unique amongst the C-like languages in that it doesn't require semicolons at the end of each statement. In many cases, the JavaScript engine can determine that a semicolon should be in a certain spot and will automatically add it. This feature is known as automatic semicolon insertion (ASI) and is considered one of the more controversial features of JavaScript. For example, the following lines are both valid:

            var name = "ESLint"
            var website = "eslint.org";

            On the first line, the JavaScript engine will automatically insert a semicolon, so this is not considered a syntax error. The JavaScript engine still knows how to interpret the line and knows that the line end indicates the end of the statement.

            In the debate over ASI, there are generally two schools of thought. The first is that we should treat ASI as if it didn't exist and always include semicolons manually. The rationale is that it's easier to always include semicolons than to try to remember when they are or are not required, and thus decreases the possibility of introducing an error.

            However, the ASI mechanism can sometimes be tricky to people who are using semicolons. For example, consider this code:

            return
            {
                name: "ESLint"
            };

            This may look like a return statement that returns an object literal, however, the JavaScript engine will interpret this code as:

            return;
            {
                name: "ESLint";
            }

            Effectively, a semicolon is inserted after the return statement, causing the code below it (a labeled literal inside a block) to be unreachable. This rule and the [no-unreachable](no-unreachable.md) rule will protect your code from such cases.

            On the other side of the argument are those who says that since semicolons are inserted automatically, they are optional and do not need to be inserted manually. However, the ASI mechanism can also be tricky to people who don't use semicolons. For example, consider this code:

            var globalCounter = { }
            
            (function () {
                var n = 0
                globalCounter.increment = function () {
                    return ++n
                }
            })()

            In this example, a semicolon will not be inserted after the first line, causing a run-time error (because an empty object is called as if it's a function). The [no-unexpected-multiline](no-unexpected-multiline.md) rule can protect your code from such cases.

            Although ASI allows for more freedom over your coding style, it can also make your code behave in an unexpected way, whether you use semicolons or not. Therefore, it is best to know when ASI takes place and when it does not, and have ESLint protect your code from these potentially unexpected cases. In short, as once described by Isaac Schlueter, a \n character always ends a statement (just like a semicolon) unless one of the following is true:

            1. The statement has an unclosed paren, array literal, or object literal or ends in some other way that is not a valid way to end a statement. (For instance, ending with . or ,.)
            2. The line is -- or ++ (in which case it will decrement/increment the next token.)
            3. It is a for(), while(), do, if(), or else, and there is no {
            4. The next line starts with [, (, +, *, /, -, ,, ., or some other binary operator that can only be found between two tokens in a single expression.

            Rule Details

            This rule enforces consistent use of semicolons.

            Options

            This rule has two options, a string option and an object option.

            String option:

            • "always" (default) requires semicolons at the end of statements
            • "never" disallows semicolons as the end of statements (except to disambiguate statements beginning with [, (, /, +, or -)

            Object option:

            • "omitLastInOneLineBlock": true ignores the last semicolon in a block in which its braces (and therefore the content of the block) are in the same line

            always

            Examples of incorrect code for this rule with the default "always" option:

            /*eslint semi: ["error", "always"]*/
            
            var name = "ESLint"
            
            object.method = function() {
                // ...
            }

            Examples of correct code for this rule with the default "always" option:

            /*eslint semi: "error"*/
            
            var name = "ESLint";
            
            object.method = function() {
                // ...
            };

            never

            Examples of incorrect code for this rule with the "never" option:

            /*eslint semi: ["error", "never"]*/
            
            var name = "ESLint";
            
            object.method = function() {
                // ...
            };

            Examples of correct code for this rule with the "never" option:

            /*eslint semi: ["error", "never"]*/
            
            var name = "ESLint"
            
            object.method = function() {
                // ...
            }
            
            var name = "ESLint"
            
            ;(function() {
                // ...
            })()

            omitLastInOneLineBlock

            Examples of additional correct code for this rule with the "always", { "omitLastInOneLineBlock": true } options:

            /*eslint semi: ["error", "always", { "omitLastInOneLineBlock": true}] */
            
            if (foo) { bar() }
            
            if (foo) { bar(); baz() }

            When Not To Use It

            If you do not want to enforce semicolon usage (or omission) in any particular way, then you can turn this rule off.

            Further Reading

            Related Rules

            • [no-extra-semi](no-extra-semi.md)
            • [no-unexpected-multiline](no-unexpected-multiline.md)
            • [semi-spacing](semi-spacing.md) Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                    this.S('img', target)

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'skip_shift' is not in camel case.
            Open

                      skip_shift;

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'grid_outerHTML' is not in camel case.
            Open

                        grid : '<div class="carousel">' + grid_outerHTML + '</div>',

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                      visible_image = self.S('.visible-img', container),

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                    this.S('a.clearing-close').trigger('click.fndtn.clearing');

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                  var holder = this.S('#foundationClearingHolder'),

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                    this.S('.clearing-main-next', visible_image).removeClass('disabled');

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'closest_a' is not in camel case.
            Open

                    closest_a = $image.closest('a');

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Missing semicolon.
            Open

                  }

            require or disallow semicolons instead of ASI (semi)

            JavaScript is unique amongst the C-like languages in that it doesn't require semicolons at the end of each statement. In many cases, the JavaScript engine can determine that a semicolon should be in a certain spot and will automatically add it. This feature is known as automatic semicolon insertion (ASI) and is considered one of the more controversial features of JavaScript. For example, the following lines are both valid:

            var name = "ESLint"
            var website = "eslint.org";

            On the first line, the JavaScript engine will automatically insert a semicolon, so this is not considered a syntax error. The JavaScript engine still knows how to interpret the line and knows that the line end indicates the end of the statement.

            In the debate over ASI, there are generally two schools of thought. The first is that we should treat ASI as if it didn't exist and always include semicolons manually. The rationale is that it's easier to always include semicolons than to try to remember when they are or are not required, and thus decreases the possibility of introducing an error.

            However, the ASI mechanism can sometimes be tricky to people who are using semicolons. For example, consider this code:

            return
            {
                name: "ESLint"
            };

            This may look like a return statement that returns an object literal, however, the JavaScript engine will interpret this code as:

            return;
            {
                name: "ESLint";
            }

            Effectively, a semicolon is inserted after the return statement, causing the code below it (a labeled literal inside a block) to be unreachable. This rule and the [no-unreachable](no-unreachable.md) rule will protect your code from such cases.

            On the other side of the argument are those who says that since semicolons are inserted automatically, they are optional and do not need to be inserted manually. However, the ASI mechanism can also be tricky to people who don't use semicolons. For example, consider this code:

            var globalCounter = { }
            
            (function () {
                var n = 0
                globalCounter.increment = function () {
                    return ++n
                }
            })()

            In this example, a semicolon will not be inserted after the first line, causing a run-time error (because an empty object is called as if it's a function). The [no-unexpected-multiline](no-unexpected-multiline.md) rule can protect your code from such cases.

            Although ASI allows for more freedom over your coding style, it can also make your code behave in an unexpected way, whether you use semicolons or not. Therefore, it is best to know when ASI takes place and when it does not, and have ESLint protect your code from these potentially unexpected cases. In short, as once described by Isaac Schlueter, a \n character always ends a statement (just like a semicolon) unless one of the following is true:

            1. The statement has an unclosed paren, array literal, or object literal or ends in some other way that is not a valid way to end a statement. (For instance, ending with . or ,.)
            2. The line is -- or ++ (in which case it will decrement/increment the next token.)
            3. It is a for(), while(), do, if(), or else, and there is no {
            4. The next line starts with [, (, +, *, /, -, ,, ., or some other binary operator that can only be found between two tokens in a single expression.

            Rule Details

            This rule enforces consistent use of semicolons.

            Options

            This rule has two options, a string option and an object option.

            String option:

            • "always" (default) requires semicolons at the end of statements
            • "never" disallows semicolons as the end of statements (except to disambiguate statements beginning with [, (, /, +, or -)

            Object option:

            • "omitLastInOneLineBlock": true ignores the last semicolon in a block in which its braces (and therefore the content of the block) are in the same line

            always

            Examples of incorrect code for this rule with the default "always" option:

            /*eslint semi: ["error", "always"]*/
            
            var name = "ESLint"
            
            object.method = function() {
                // ...
            }

            Examples of correct code for this rule with the default "always" option:

            /*eslint semi: "error"*/
            
            var name = "ESLint";
            
            object.method = function() {
                // ...
            };

            never

            Examples of incorrect code for this rule with the "never" option:

            /*eslint semi: ["error", "never"]*/
            
            var name = "ESLint";
            
            object.method = function() {
                // ...
            };

            Examples of correct code for this rule with the "never" option:

            /*eslint semi: ["error", "never"]*/
            
            var name = "ESLint"
            
            object.method = function() {
                // ...
            }
            
            var name = "ESLint"
            
            ;(function() {
                // ...
            })()

            omitLastInOneLineBlock

            Examples of additional correct code for this rule with the "always", { "omitLastInOneLineBlock": true } options:

            /*eslint semi: ["error", "always", { "omitLastInOneLineBlock": true}] */
            
            if (foo) { bar() }
            
            if (foo) { bar(); baz() }

            When Not To Use It

            If you do not want to enforce semicolon usage (or omission) in any particular way, then you can turn this rule off.

            Further Reading

            Related Rules

            • [no-extra-semi](no-extra-semi.md)
            • [no-unexpected-multiline](no-unexpected-multiline.md)
            • [semi-spacing](semi-spacing.md) Source: http://eslint.org/docs/rules/

            Identifier 'target_index' is not in camel case.
            Open

                    if ((target_index > up_count) && target_index > this.settings.prev_index) {

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                      container = self.S('div', root).first(),

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                      .caption(self.S('.clearing-caption', visible_image), self.S('img', target))

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Missing semicolon.
            Open

                    visible_image.trigger('opened.fndtn.clearing')

            require or disallow semicolons instead of ASI (semi)

            JavaScript is unique amongst the C-like languages in that it doesn't require semicolons at the end of each statement. In many cases, the JavaScript engine can determine that a semicolon should be in a certain spot and will automatically add it. This feature is known as automatic semicolon insertion (ASI) and is considered one of the more controversial features of JavaScript. For example, the following lines are both valid:

            var name = "ESLint"
            var website = "eslint.org";

            On the first line, the JavaScript engine will automatically insert a semicolon, so this is not considered a syntax error. The JavaScript engine still knows how to interpret the line and knows that the line end indicates the end of the statement.

            In the debate over ASI, there are generally two schools of thought. The first is that we should treat ASI as if it didn't exist and always include semicolons manually. The rationale is that it's easier to always include semicolons than to try to remember when they are or are not required, and thus decreases the possibility of introducing an error.

            However, the ASI mechanism can sometimes be tricky to people who are using semicolons. For example, consider this code:

            return
            {
                name: "ESLint"
            };

            This may look like a return statement that returns an object literal, however, the JavaScript engine will interpret this code as:

            return;
            {
                name: "ESLint";
            }

            Effectively, a semicolon is inserted after the return statement, causing the code below it (a labeled literal inside a block) to be unreachable. This rule and the [no-unreachable](no-unreachable.md) rule will protect your code from such cases.

            On the other side of the argument are those who says that since semicolons are inserted automatically, they are optional and do not need to be inserted manually. However, the ASI mechanism can also be tricky to people who don't use semicolons. For example, consider this code:

            var globalCounter = { }
            
            (function () {
                var n = 0
                globalCounter.increment = function () {
                    return ++n
                }
            })()

            In this example, a semicolon will not be inserted after the first line, causing a run-time error (because an empty object is called as if it's a function). The [no-unexpected-multiline](no-unexpected-multiline.md) rule can protect your code from such cases.

            Although ASI allows for more freedom over your coding style, it can also make your code behave in an unexpected way, whether you use semicolons or not. Therefore, it is best to know when ASI takes place and when it does not, and have ESLint protect your code from these potentially unexpected cases. In short, as once described by Isaac Schlueter, a \n character always ends a statement (just like a semicolon) unless one of the following is true:

            1. The statement has an unclosed paren, array literal, or object literal or ends in some other way that is not a valid way to end a statement. (For instance, ending with . or ,.)
            2. The line is -- or ++ (in which case it will decrement/increment the next token.)
            3. It is a for(), while(), do, if(), or else, and there is no {
            4. The next line starts with [, (, +, *, /, -, ,, ., or some other binary operator that can only be found between two tokens in a single expression.

            Rule Details

            This rule enforces consistent use of semicolons.

            Options

            This rule has two options, a string option and an object option.

            String option:

            • "always" (default) requires semicolons at the end of statements
            • "never" disallows semicolons as the end of statements (except to disambiguate statements beginning with [, (, /, +, or -)

            Object option:

            • "omitLastInOneLineBlock": true ignores the last semicolon in a block in which its braces (and therefore the content of the block) are in the same line

            always

            Examples of incorrect code for this rule with the default "always" option:

            /*eslint semi: ["error", "always"]*/
            
            var name = "ESLint"
            
            object.method = function() {
                // ...
            }

            Examples of correct code for this rule with the default "always" option:

            /*eslint semi: "error"*/
            
            var name = "ESLint";
            
            object.method = function() {
                // ...
            };

            never

            Examples of incorrect code for this rule with the "never" option:

            /*eslint semi: ["error", "never"]*/
            
            var name = "ESLint";
            
            object.method = function() {
                // ...
            };

            Examples of correct code for this rule with the "never" option:

            /*eslint semi: ["error", "never"]*/
            
            var name = "ESLint"
            
            object.method = function() {
                // ...
            }
            
            var name = "ESLint"
            
            ;(function() {
                // ...
            })()

            omitLastInOneLineBlock

            Examples of additional correct code for this rule with the "always", { "omitLastInOneLineBlock": true } options:

            /*eslint semi: ["error", "always", { "omitLastInOneLineBlock": true}] */
            
            if (foo) { bar() }
            
            if (foo) { bar(); baz() }

            When Not To Use It

            If you do not want to enforce semicolon usage (or omission) in any particular way, then you can turn this rule off.

            Further Reading

            Related Rules

            • [no-extra-semi](no-extra-semi.md)
            • [no-unexpected-multiline](no-unexpected-multiline.md)
            • [semi-spacing](semi-spacing.md) Source: http://eslint.org/docs/rules/

            Missing semicolon.
            Open

                    image.trigger('resized.fndtn.clearing')

            require or disallow semicolons instead of ASI (semi)

            JavaScript is unique amongst the C-like languages in that it doesn't require semicolons at the end of each statement. In many cases, the JavaScript engine can determine that a semicolon should be in a certain spot and will automatically add it. This feature is known as automatic semicolon insertion (ASI) and is considered one of the more controversial features of JavaScript. For example, the following lines are both valid:

            var name = "ESLint"
            var website = "eslint.org";

            On the first line, the JavaScript engine will automatically insert a semicolon, so this is not considered a syntax error. The JavaScript engine still knows how to interpret the line and knows that the line end indicates the end of the statement.

            In the debate over ASI, there are generally two schools of thought. The first is that we should treat ASI as if it didn't exist and always include semicolons manually. The rationale is that it's easier to always include semicolons than to try to remember when they are or are not required, and thus decreases the possibility of introducing an error.

            However, the ASI mechanism can sometimes be tricky to people who are using semicolons. For example, consider this code:

            return
            {
                name: "ESLint"
            };

            This may look like a return statement that returns an object literal, however, the JavaScript engine will interpret this code as:

            return;
            {
                name: "ESLint";
            }

            Effectively, a semicolon is inserted after the return statement, causing the code below it (a labeled literal inside a block) to be unreachable. This rule and the [no-unreachable](no-unreachable.md) rule will protect your code from such cases.

            On the other side of the argument are those who says that since semicolons are inserted automatically, they are optional and do not need to be inserted manually. However, the ASI mechanism can also be tricky to people who don't use semicolons. For example, consider this code:

            var globalCounter = { }
            
            (function () {
                var n = 0
                globalCounter.increment = function () {
                    return ++n
                }
            })()

            In this example, a semicolon will not be inserted after the first line, causing a run-time error (because an empty object is called as if it's a function). The [no-unexpected-multiline](no-unexpected-multiline.md) rule can protect your code from such cases.

            Although ASI allows for more freedom over your coding style, it can also make your code behave in an unexpected way, whether you use semicolons or not. Therefore, it is best to know when ASI takes place and when it does not, and have ESLint protect your code from these potentially unexpected cases. In short, as once described by Isaac Schlueter, a \n character always ends a statement (just like a semicolon) unless one of the following is true:

            1. The statement has an unclosed paren, array literal, or object literal or ends in some other way that is not a valid way to end a statement. (For instance, ending with . or ,.)
            2. The line is -- or ++ (in which case it will decrement/increment the next token.)
            3. It is a for(), while(), do, if(), or else, and there is no {
            4. The next line starts with [, (, +, *, /, -, ,, ., or some other binary operator that can only be found between two tokens in a single expression.

            Rule Details

            This rule enforces consistent use of semicolons.

            Options

            This rule has two options, a string option and an object option.

            String option:

            • "always" (default) requires semicolons at the end of statements
            • "never" disallows semicolons as the end of statements (except to disambiguate statements beginning with [, (, /, +, or -)

            Object option:

            • "omitLastInOneLineBlock": true ignores the last semicolon in a block in which its braces (and therefore the content of the block) are in the same line

            always

            Examples of incorrect code for this rule with the default "always" option:

            /*eslint semi: ["error", "always"]*/
            
            var name = "ESLint"
            
            object.method = function() {
                // ...
            }

            Examples of correct code for this rule with the default "always" option:

            /*eslint semi: "error"*/
            
            var name = "ESLint";
            
            object.method = function() {
                // ...
            };

            never

            Examples of incorrect code for this rule with the "never" option:

            /*eslint semi: ["error", "never"]*/
            
            var name = "ESLint";
            
            object.method = function() {
                // ...
            };

            Examples of correct code for this rule with the "never" option:

            /*eslint semi: ["error", "never"]*/
            
            var name = "ESLint"
            
            object.method = function() {
                // ...
            }
            
            var name = "ESLint"
            
            ;(function() {
                // ...
            })()

            omitLastInOneLineBlock

            Examples of additional correct code for this rule with the "always", { "omitLastInOneLineBlock": true } options:

            /*eslint semi: ["error", "always", { "omitLastInOneLineBlock": true}] */
            
            if (foo) { bar() }
            
            if (foo) { bar(); baz() }

            When Not To Use It

            If you do not want to enforce semicolon usage (or omission) in any particular way, then you can turn this rule off.

            Further Reading

            Related Rules

            • [no-extra-semi](no-extra-semi.md)
            • [no-unexpected-multiline](no-unexpected-multiline.md)
            • [semi-spacing](semi-spacing.md) Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                    var li = self.S(this),

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                      image = this.S('img', img);

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                      self.assemble(self.S('li', this));

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'skip_shift' is not in camel case.
            Open

                    skip_shift = target.index() - this.settings.up_count;

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                      up_count = Math.floor(this.S('.clearing-container').outerWidth() / li_width) - 1,

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'up_count' is not in camel case.
            Open

                    } else if ((target_index > up_count - 1) && target_index <= this.settings.prev_index) {

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                  this.S(window).off('.fndtn.clearing');

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Expected indentation of 12 spaces but found 16.
            Open

                            delta_x : 0,

            enforce consistent indentation (indent)

            There are several common guidelines which require specific indentation of nested blocks and statements, like:

            function hello(indentSize, type) {
                if (indentSize === 4 && type !== 'tab') {
                    console.log('Each next indentation will increase on 4 spaces');
                }
            }

            These are the most common scenarios recommended in different style guides:

            • Two spaces, not longer and no tabs: Google, npm, Node.js, Idiomatic, Felix
            • Tabs: jQuery
            • Four spaces: Crockford

            Rule Details

            This rule enforces a consistent indentation style. The default style is 4 spaces.

            Options

            This rule has a mixed option:

            For example, for 2-space indentation:

            {
                "indent": ["error", 2]
            }

            Or for tabbed indentation:

            {
                "indent": ["error", "tab"]
            }

            Examples of incorrect code for this rule with the default options:

            /*eslint indent: "error"*/
            
            if (a) {
              b=c;
              function foo(d) {
                e=f;
              }
            }

            Examples of correct code for this rule with the default options:

            /*eslint indent: "error"*/
            
            if (a) {
                b=c;
                function foo(d) {
                    e=f;
                }
            }

            This rule has an object option:

            • "SwitchCase" (default: 0) enforces indentation level for case clauses in switch statements
            • "VariableDeclarator" (default: 1) enforces indentation level for var declarators; can also take an object to define separate rules for var, let and const declarations.
            • "outerIIFEBody" (default: 1) enforces indentation level for file-level IIFEs.
            • "MemberExpression" (off by default) enforces indentation level for multi-line property chains (except in variable declarations and assignments)
            • "FunctionDeclaration" takes an object to define rules for function declarations.
              • parameters (off by default) enforces indentation level for parameters in a function declaration. This can either be a number indicating indentation level, or the string "first" indicating that all parameters of the declaration must be aligned with the first parameter.
              • body (default: 1) enforces indentation level for the body of a function declaration.
            • "FunctionExpression" takes an object to define rules for function expressions.
              • parameters (off by default) enforces indentation level for parameters in a function expression. This can either be a number indicating indentation level, or the string "first" indicating that all parameters of the expression must be aligned with the first parameter.
              • body (default: 1) enforces indentation level for the body of a function expression.
            • "CallExpression" takes an object to define rules for function call expressions.
              • arguments (off by default) enforces indentation level for arguments in a call expression. This can either be a number indicating indentation level, or the string "first" indicating that all arguments of the expression must be aligned with the first argument.
            • "ArrayExpression" (default: 1) enforces indentation level for elements in arrays. It can also be set to the string "first", indicating that all the elements in the array should be aligned with the first element.
            • "ObjectExpression" (default: 1) enforces indentation level for properties in objects. It can be set to the string "first", indicating that all properties in the object should be aligned with the first property.

            Level of indentation denotes the multiple of the indent specified. Example:

            • Indent of 4 spaces with VariableDeclarator set to 2 will indent the multi-line variable declarations with 8 spaces.
            • Indent of 2 spaces with VariableDeclarator set to 2 will indent the multi-line variable declarations with 4 spaces.
            • Indent of 2 spaces with VariableDeclarator set to {"var": 2, "let": 2, "const": 3} will indent the multi-line variable declarations with 4 spaces for var and let, 6 spaces for const statements.
            • Indent of tab with VariableDeclarator set to 2 will indent the multi-line variable declarations with 2 tabs.
            • Indent of 2 spaces with SwitchCase set to 0 will not indent case clauses with respect to switch statements.
            • Indent of 2 spaces with SwitchCase set to 1 will indent case clauses with 2 spaces with respect to switch statements.
            • Indent of 2 spaces with SwitchCase set to 2 will indent case clauses with 4 spaces with respect to switch statements.
            • Indent of tab with SwitchCase set to 2 will indent case clauses with 2 tabs with respect to switch statements.
            • Indent of 2 spaces with MemberExpression set to 0 will indent the multi-line property chains with 0 spaces.
            • Indent of 2 spaces with MemberExpression set to 1 will indent the multi-line property chains with 2 spaces.
            • Indent of 2 spaces with MemberExpression set to 2 will indent the multi-line property chains with 4 spaces.
            • Indent of 4 spaces with MemberExpression set to 0 will indent the multi-line property chains with 0 spaces.
            • Indent of 4 spaces with MemberExpression set to 1 will indent the multi-line property chains with 4 spaces.
            • Indent of 4 spaces with MemberExpression set to 2 will indent the multi-line property chains with 8 spaces.

            tab

            Examples of incorrect code for this rule with the "tab" option:

            /*eslint indent: ["error", "tab"]*/
            
            if (a) {
                 b=c;
            function foo(d) {
                       e=f;
             }
            }

            Examples of correct code for this rule with the "tab" option:

            /*eslint indent: ["error", "tab"]*/
            
            if (a) {
            /*tab*/b=c;
            /*tab*/function foo(d) {
            /*tab*//*tab*/e=f;
            /*tab*/}
            }

            SwitchCase

            Examples of incorrect code for this rule with the 2, { "SwitchCase": 1 } options:

            /*eslint indent: ["error", 2, { "SwitchCase": 1 }]*/
            
            switch(a){
            case "a":
                break;
            case "b":
                break;
            }

            Examples of correct code for this rule with the 2, { "SwitchCase": 1 } option:

            /*eslint indent: ["error", 2, { "SwitchCase": 1 }]*/
            
            switch(a){
              case "a":
                break;
              case "b":
                break;
            }

            VariableDeclarator

            Examples of incorrect code for this rule with the 2, { "VariableDeclarator": 1 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 1 }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                b = 2,
                c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": 1 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 1 }]*/
            /*eslint-env es6*/
            
            var a,
              b,
              c;
            let a,
              b,
              c;
            const a = 1,
              b = 2,
              c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": 2 } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": 2 }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                b = 2,
                c = 3;

            Examples of correct code for this rule with the 2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } } options:

            /*eslint indent: ["error", 2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } }]*/
            /*eslint-env es6*/
            
            var a,
                b,
                c;
            let a,
                b,
                c;
            const a = 1,
                  b = 2,
                  c = 3;

            outerIIFEBody

            Examples of incorrect code for this rule with the options 2, { "outerIIFEBody": 0 }:

            /*eslint indent: ["error", 2, { "outerIIFEBody": 0 }]*/
            
            (function() {
            
              function foo(x) {
                return x + 1;
              }
            
            })();
            
            
            if(y) {
            console.log('foo');
            }

            Examples of correct code for this rule with the options 2, {"outerIIFEBody": 0}:

            /*eslint indent: ["error", 2, { "outerIIFEBody": 0 }]*/
            
            (function() {
            
            function foo(x) {
              return x + 1;
            }
            
            })();
            
            
            if(y) {
               console.log('foo');
            }

            MemberExpression

            Examples of incorrect code for this rule with the 2, { "MemberExpression": 1 } options:

            /*eslint indent: ["error", 2, { "MemberExpression": 1 }]*/
            
            foo
            .bar
            .baz()

            Examples of correct code for this rule with the 2, { "MemberExpression": 1 } option:

            /*eslint indent: ["error", 2, { "MemberExpression": 1 }]*/
            
            foo
              .bar
              .baz();
            
            // Any indentation is permitted in variable declarations and assignments.
            var bip = aardvark.badger
                              .coyote;

            FunctionDeclaration

            Examples of incorrect code for this rule with the 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
            
            function foo(bar,
              baz,
              qux) {
                qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
            
            function foo(bar,
                baz,
                qux) {
              qux();
            }

            Examples of incorrect code for this rule with the 2, { "FunctionDeclaration": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
            
            function foo(bar, baz,
              qux, boop) {
              qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionDeclaration": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
            
            function foo(bar, baz,
                         qux, boop) {
              qux();
            }

            FunctionExpression

            Examples of incorrect code for this rule with the 2, { "FunctionExpression": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
            
            var foo = function(bar,
              baz,
              qux) {
                qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionExpression": {"body": 1, "parameters": 2} } option:

            /*eslint indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
            
            var foo = function(bar,
                baz,
                qux) {
              qux();
            }

            Examples of incorrect code for this rule with the 2, { "FunctionExpression": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
            
            var foo = function(bar, baz,
              qux, boop) {
              qux();
            }

            Examples of correct code for this rule with the 2, { "FunctionExpression": {"parameters": "first"} } option:

            /*eslint indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
            
            var foo = function(bar, baz,
                               qux, boop) {
              qux();
            }

            CallExpression

            Examples of incorrect code for this rule with the 2, { "CallExpression": {"arguments": 1} } option:

            /*eslint indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
            
            foo(bar,
                baz,
                  qux
            );

            Examples of correct code for this rule with the 2, { "CallExpression": {"arguments": 1} } option:

            /*eslint indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
            
            foo(bar,
              baz,
              qux
            );

            Examples of incorrect code for this rule with the 2, { "CallExpression": {"arguments": "first"} } option:

            /*eslint indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
            
            foo(bar, baz,
              baz, boop, beep);

            Examples of correct code for this rule with the 2, { "CallExpression": {"arguments": "first"} } option:

            /*eslint indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
            
            foo(bar, baz,
                baz, boop, beep);

            ArrayExpression

            Examples of incorrect code for this rule with the 2, { "ArrayExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ArrayExpression": 1 }]*/
            
            var foo = [
                bar,
            baz,
                  qux
            ];

            Examples of correct code for this rule with the 2, { "ArrayExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ArrayExpression": 1 }]*/
            
            var foo = [
              bar,
              baz,
              qux
            ];

            Examples of incorrect code for this rule with the 2, { "ArrayExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ArrayExpression": "first"}]*/
            
            var foo = [bar,
              baz,
              qux
            ];

            Examples of correct code for this rule with the 2, { "ArrayExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ArrayExpression": "first"}]*/
            
            var foo = [bar,
                       baz,
                       qux
            ];

            ObjectExpression

            Examples of incorrect code for this rule with the 2, { "ObjectExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ObjectExpression": 1 }]*/
            
            var foo = {
                bar: 1,
            baz: 2,
                  qux: 3
            };

            Examples of correct code for this rule with the 2, { "ObjectExpression": 1 } option:

            /*eslint indent: ["error", 2, { "ObjectExpression": 1 }]*/
            
            var foo = {
              bar: 1,
              baz: 2,
              qux: 3
            };

            Examples of incorrect code for this rule with the 2, { "ObjectExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ObjectExpression": "first"}]*/
            
            var foo = { bar: 1,
              baz: 2 };

            Examples of correct code for this rule with the 2, { "ObjectExpression": "first" } option:

            /*eslint indent: ["error", 2, {"ObjectExpression": "first"}]*/
            
            var foo = { bar: 1,
                        baz: 2 };

            Compatibility

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                      S(this).data('swipe-transition', data);

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                      .caption(self.S('.clearing-caption', visible_image), self.S('img', target))

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'up_count' is not in camel case.
            Open

                    if ((target_index > up_count) && target_index > this.settings.prev_index) {

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'touch_label' is not in camel case.
            Open

                      touch_label = this.settings.touch_label;

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'visible_image' is not in camel case.
            Open

                  var visible_image = target

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            A function with a name starting with an uppercase letter should only be used as a constructor.
            Open

                    this.S('.clearing-main-prev', visible_image).addClass('disabled');

            require constructor names to begin with a capital letter (new-cap)

            The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

            var friend = new Person();

            Rule Details

            This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

            • Array
            • Boolean
            • Date
            • Error
            • Function
            • Number
            • Object
            • RegExp
            • String
            • Symbol

            Examples of correct code for this rule:

            /*eslint new-cap: "error"*/
            
            function foo(arg) {
                return Boolean(arg);
            }

            Options

            This rule has an object option:

            • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
            • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
            • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
            • "capIsNew": false allows uppercase-started functions to be called without new operators.
            • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
            • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
            • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
            • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
            • "properties": true (default) enables checks on object properties
            • "properties": false disables checks on object properties

            newIsCap

            Examples of incorrect code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new person();

            Examples of correct code for this rule with the default { "newIsCap": true } option:

            /*eslint new-cap: ["error", { "newIsCap": true }]*/
            
            var friend = new Person();

            Examples of correct code for this rule with the { "newIsCap": false } option:

            /*eslint new-cap: ["error", { "newIsCap": false }]*/
            
            var friend = new person();

            capIsNew

            Examples of incorrect code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = Person();

            Examples of correct code for this rule with the default { "capIsNew": true } option:

            /*eslint new-cap: ["error", { "capIsNew": true }]*/
            
            var colleague = new Person();

            Examples of correct code for this rule with the { "capIsNew": false } option:

            /*eslint new-cap: ["error", { "capIsNew": false }]*/
            
            var colleague = Person();

            newIsCapExceptions

            Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

            /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
            
            var events = require('events');
            
            var emitter = new events();

            newIsCapExceptionPattern

            Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

            /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
            
            var friend = new person.acquaintance();
            var bestFriend = new person.friend();

            capIsNewExceptions

            Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

            /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
            
            function foo(arg) {
                return Person(arg);
            }

            capIsNewExceptionPattern

            Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

            /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
            
            var friend = person.Acquaintance();
            var bestFriend = person.Friend();

            properties

            Examples of incorrect code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.acquaintance();

            Examples of correct code for this rule with the default { "properties": true } option:

            /*eslint new-cap: ["error", { "properties": true }]*/
            
            var friend = new person.Acquaintance();

            Examples of correct code for this rule with the { "properties": false } option:

            /*eslint new-cap: ["error", { "properties": false }]*/
            
            var friend = new person.acquaintance();

            When Not To Use It

            If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'preload_img' is not in camel case.
            Open

                    var preload_img = $('.clearing-preload-' + sibling_type),

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'skip_shift' is not in camel case.
            Open

                      dir_obj[dir] = -(skip_shift * width);

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Identifier 'target_index' is not in camel case.
            Open

                  this.settings.prev_index = target_index;

            Require Camelcase (camelcase)

            When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

            Rule Details

            This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

            Options

            This rule has an object option:

            • "properties": "always" (default) enforces camelcase style for property names
            • "properties": "never" does not check property names

            always

            Examples of incorrect code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased } from "external-module"
            
            var my_favorite_color = "#112C85";
            
            function do_something() {
                // ...
            }
            
            obj.do_something = function() {
                // ...
            };
            
            var obj = {
                my_pref: 1
            };

            Examples of correct code for this rule with the default { "properties": "always" } option:

            /*eslint camelcase: "error"*/
            
            import { no_camelcased as camelCased } from "external-module";
            
            var myFavoriteColor   = "#112C85";
            var _myFavoriteColor  = "#112C85";
            var myFavoriteColor_  = "#112C85";
            var MY_FAVORITE_COLOR = "#112C85";
            var foo = bar.baz_boom;
            var foo = { qux: bar.baz_boom };
            
            obj.do_something();
            do_something();
            new do_something();
            
            var { category_id: category } = query;

            never

            Examples of correct code for this rule with the { "properties": "never" } option:

            /*eslint camelcase: ["error", {properties: "never"}]*/
            
            var obj = {
                my_pref: 1
            };

            When Not To Use It

            If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

            Similar blocks of code found in 2 locations. Consider refactoring.
            Open

                      if (typeof data.is_scrolling === 'undefined') {
                        data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );
                      }
            Severity: Major
            Found in app/javascript/vendor/foundation/foundation.clearing.js and 1 other location - About 2 hrs to fix
            app/javascript/vendor/foundation/foundation.orbit.js on lines 269..271

            Duplicated Code

            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

            Tuning

            This issue has a mass of 84.

            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

            Refactorings

            Further Reading

            Similar blocks of code found in 2 locations. Consider refactoring.
            Open

                      var data = {
                            start_page_x : e.touches[0].pageX,
                            start_page_y : e.touches[0].pageY,
                            start_time : (new Date()).getTime(),
                            delta_x : 0,
            Severity: Major
            Found in app/javascript/vendor/foundation/foundation.clearing.js and 1 other location - About 1 hr to fix
            app/javascript/vendor/foundation/foundation.orbit.js on lines 245..251

            Duplicated Code

            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

            Tuning

            This issue has a mass of 67.

            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

            Refactorings

            Further Reading

            Similar blocks of code found in 2 locations. Consider refactoring.
            Open

                  if (target.next().length > 0) {
                    this.S('.clearing-main-next', visible_image).removeClass('disabled');
                  } else {
                    this.S('.clearing-main-next', visible_image).addClass('disabled');
                  }
            Severity: Major
            Found in app/javascript/vendor/foundation/foundation.clearing.js and 1 other location - About 1 hr to fix
            app/javascript/vendor/foundation/foundation.clearing.js on lines 369..373

            Duplicated Code

            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

            Tuning

            This issue has a mass of 66.

            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

            Refactorings

            Further Reading

            Similar blocks of code found in 2 locations. Consider refactoring.
            Open

                  if (target.prev().length > 0) {
                    this.S('.clearing-main-prev', visible_image).removeClass('disabled');
                  } else {
                    this.S('.clearing-main-prev', visible_image).addClass('disabled');
                  }
            Severity: Major
            Found in app/javascript/vendor/foundation/foundation.clearing.js and 1 other location - About 1 hr to fix
            app/javascript/vendor/foundation/foundation.clearing.js on lines 363..367

            Duplicated Code

            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

            Tuning

            This issue has a mass of 66.

            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

            Refactorings

            Further Reading

            Similar blocks of code found in 3 locations. Consider refactoring.
            Open

                off : function () {
                  this.S(this.scope).off('.fndtn.clearing');
                  this.S(window).off('.fndtn.clearing');
                },
            Severity: Major
            Found in app/javascript/vendor/foundation/foundation.clearing.js and 2 other locations - About 50 mins to fix
            app/javascript/vendor/foundation/foundation.magellan.js on lines 195..198
            app/javascript/vendor/foundation/foundation.topbar.js on lines 536..539

            Duplicated Code

            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

            Tuning

            This issue has a mass of 52.

            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

            Refactorings

            Further Reading

            Similar blocks of code found in 2 locations. Consider refactoring.
            Open

                    } else if (/right/.test(direction)) {
                      this.lock();
                      dir_obj[dir] = left - width;
                      clearing.animate(dir_obj, 300, this.unlock());
                    }
            Severity: Minor
            Found in app/javascript/vendor/foundation/foundation.clearing.js and 1 other location - About 40 mins to fix
            app/javascript/vendor/foundation/foundation.clearing.js on lines 500..508

            Duplicated Code

            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

            Tuning

            This issue has a mass of 49.

            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

            Refactorings

            Further Reading

            Similar blocks of code found in 2 locations. Consider refactoring.
            Open

                    if (/left/.test(direction)) {
                      this.lock();
                      dir_obj[dir] = left + width;
                      clearing.animate(dir_obj, 300, this.unlock());
                    } else if (/right/.test(direction)) {
            Severity: Minor
            Found in app/javascript/vendor/foundation/foundation.clearing.js and 1 other location - About 40 mins to fix
            app/javascript/vendor/foundation/foundation.clearing.js on lines 504..508

            Duplicated Code

            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

            Tuning

            This issue has a mass of 49.

            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

            Refactorings

            Further Reading

            There are no issues that match your filters.

            Category
            Status