{ // Closely follows https://github.com/jshint/jshint/blob/master/examples/.jshintrc // ----- Enforcing options ----- // true: Prohibit bitwise operators (&, |, ^, etc.) "bitwise": true, // true: Identifiers must be in camelCase // Allow for snake_case identifiers "camelcase": false, // true: Require {} for every new block or scope "curly": true, // true: Require triple equals (===) for comparison "eqeqeq": true, // true: Require adherance to ECMAScript 3 specification // Set to true if you need your program to be executable in older browsers such as IE 6-9 "es3": true, // true: Require filtering for..in loops with obj.hasOwnProperty() "forin": true, // true: prohibits overwriting prototypes of native objects such as Array, Date etc. "freeze": true, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());` "immed": true, // {int} Number of spaces to use for indentation "indent": 4, // true: Require variables/functions to be defined before being used // nofunc: Allow use of a function before it is defined (see https://github.com/johnpapa/angularjs-styleguide#style-y034) "latedef": "nofunc", // {int} Max cyclomatic complexity per function "maxcomplexity": 10, // {int} Max depth of nested blocks (within functions) "maxdepth": 5, // {int} Maximum error before stopping (default is 50) "maxerr": 50, // {int} Max number of characters per line "maxlen": 120, // {int} Max number of formal params allowed per function "maxparams": 10, // {int} Max number statements per function "maxstatements": 50, // true: Require capitalization of all constructor functions e.g. `new F()` "newcap": true, // true: Prohibit use of `arguments.caller` and `arguments.callee` "noarg": true, // true: prohibits the use of the comma operator // This is triggering false positives (see https://github.com/jshint/jshint/issues/2044) "nocomma": false, // true: Prohibit use of empty blocks "noempty": true, // true: Prohibit "non-breaking whitespace" characters "nonbsp": true, // true: Prohibit use of constructors for side-effects (without assignment) "nonew": true, // true: Prohibit use of `++` & `--` "plusplus": false, // Quotation mark consistency: // false : do nothing (default) // true : ensure whatever is used is consistent // "single" : require single quotes // "double" : require double quotes "quotmark": "single", // true: prohibits the use of the grouping operator for single-expression statements "singleGroups": false, // true: Requires all functions run in ES5 Strict Mode "strict": true, // true: Require all non-global variables to be declared (prevents global leaks) "undef": true, // true: Require all defined variables be used "unused": true, // ----- Relaxing options ----- // true: Tolerate Automatic Semicolon Insertion (no semicolons) "asi": false, // true: Tolerate assignments where comparisons would be expected "boss": false, // true: Allow debugger statements e.g. browser breakpoints "debug": false, // true: Tolerate use of `== null` "eqnull": false, // true: Allow ES5 syntax (ex: getters and setters) // Setting explicitly to true throws a warning: "ES5 option is now set per default" // "es5": true, // true: Allow ES.next (ES6) syntax (ex: `const`) "esnext": false, // true: Tolerate use of `eval` and `new Function()` "evil": false, // true: Tolerate `ExpressionStatement` as Programs "expr": false, // true: Tolerate defining variables inside control statements "funcscope": false, // true: Allow global "use strict" (also enables 'strict') "globalstrict": false, // true: Tolerate using the `__iterator__` property "iterator": false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block "lastsemic": false, // true: Tolerate possibly unsafe line breakings "laxbreak": false, // true: Tolerate comma-first style coding "laxcomma": false, // true: Tolerate functions being defined in loops "loopfunc": false, // true: Allow Mozilla specific syntax (extends and overrides esnext features) // (ex: `for each`, multiple try/catch, function expression…) "moz": false, // true: Tolerate multi-line strings "multistr": false, // true: Tolerate invalid typeof operator values "notypeof": false, // true: Tolerate generator functions with no yield statement in them "noyield": false, // true: Tolerate using the `__proto__` property "proto": false, // true: Tolerate script-targeted URLs "scripturl": false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;` "shadow": false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation "sub": false, // true: Tolerate `new function () { ... };` and `new Object;` "supernew": false, // true: Tolerate using this in a non-constructor function "validthis": false, // true: Suppresses warnings about the use of the with statement "withstmt": false, // ----- Environments ----- // Web Browser (window, document, etc) "browser": true, // Browserify (node.js code in the browser) "browserify": false, // CouchDB "couch": false, // Development/debugging (alert, confirm, etc) "devel": false, // Dojo Toolkit "dojo": false, // Jasmine "jasmine": false, // jQuery "jquery": false, // Mocha "mocha": false, // MooTools "mootools": false, // Node.js "node": false, // Widely adopted globals (escape, unescape, etc) "nonstandard": false, // PhantomJS "phantom": false, // Prototype and Scriptaculous "prototypejs": false, // QUnit "qunit": false, // Rhino "rhino": false, // ShellJS "shelljs": false, // defines globals for typed array constructors "typed": false, // Web Workers "worker": false, // Windows Scripting Host "wsh": false, // Yahoo User Interface "yui": false, // ----- Globals ----- // false: variable as read-only "globals": { "angular": false, "SVGMorpheus": false, "JSON": false } }