Permalink
Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
88 lines (83 sloc) 6.67 KB
// Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License. See License.txt in the project root for license information.
{
/*
ENFORCING Options: When set to true, (or in some cases an integer value) these options will make JSHint produce more warnings about your code.
http://www.jshint.com/docs/options/#enforcing-options
*/
"bitwise": false, // Prohibits the use of bitwise operators. Bitwise operators are very rare in JavaScript programs and quite often & is simply a mistyped &&.
"camelcase": false, // Allows you to force all variable names to use either camelCase style or UPPER_CASE with underscores.
"curly": true, // Requires you to always put curly braces around blocks in loops and conditionals.
"eqeqeq": true, // Prohibits the use of == and != in favor of === and !==
"es3": false, // Prohibits the use of syntax beynd ECMAScript 3 specification.
"forin": false, // Requires all for in loops to filter object's items.
"freeze": true, // Prohibits overwriting prototypes of native objects such as Array, Date and so on.
"immed": true, // Prohibits the use of immediate function invocations without wrapping them in parentheses.
"indent": false, // Enforces specific tab width for your code.
"latedef": false, // Prohibits the use of a variable before it was defined
"newcap": false, // Requires you to capitalize names of constructor functions
"noarg": true, // Prohibits the use of arguments.caller and arguments.callee.
"noempty": false, // Warns when you have an empty block in your code.
"nonbsp": true, // Warns about "non-breaking whitespace" characters.
"nonew": true, // Prohibits the use of constructor functions for side-effects.
"plusplus": false, // Prohibits the use of unary increment and decrement operators.
"quotmark": false, // Enforces the consistency of quotation marks used throughout your code.
"undef": true, // Prohibits the use of explicitly undeclared variables.
"unused": "vars", // Warns when you define and never use your variables.
"strict": true, // Requires all functions to run in ECMAScript 5's strict mode.
"trailing": true, // Makes it an error to leave a trailing whitespace in your code.
"maxparams": false, // Lets you set the max number of formal parameters allowed per function.
"maxdepth": false, // Lets you control how nested do you want your blocks to be.
"maxstatements": false, // Lets you set the max number of statements allowed per function.
"maxcomplexity": false, // Lets you control cyclomatic complexity throughout your code.
"maxlen": false, // lets you set the maximum length of a line.
/*
RELAXING Options: When set to true, (or in some cases an integer value) these options will make JSHint produce less warnings about your code
http://www.jshint.com/docs/options/#relaxing-options
*/
"asi": false, // Suppresses warnings about missing semicolons.
"boss": true, // Suppresses warnings about the use of assignments in cases where comparisons are expected. More often than not, code like if (a = 10) {} is a typo.
"debug": false, // Suppresses warnings about the debugger statements in your code.
"eqnull": false, // Suppresses warnings about == null comparisons.
"esnext": false, // Tells JSHint that your code uses ECMAScript 6 specific syntax.
"evil": false, // Suppresses warnings about the use of eval.
"expr": true, // Suppresses warnings about the use of expressions where normally you would expect to see assignments or function calls.
"funcscope": false, // Suppresses warnings about declaring variables inside of control structures while accessing them later from the outside.
"gcl": false, // Makes JSHint compatible with Google Closure Compiler.
"globalstrict": true, // Suppresses warnings about the use of global strict mode.
"iterator": false, // Suppresses warnings about the __iterator__ property.
"lastsemic": false, // Suppresses warnings about missing semicolons, but only when the semicolon is omitted for the last statement in a one-line block.
"laxbreak": true, // Suppresses most of the warnings about possibly unsafe line breakings in your code.
"laxcomma": false, // Suppresses warnings about comma-first coding style.
"loopfunc": true, // Suppresses warnings about functions inside of loops.
"maxerr": 10000, // Allows you to set the maximum amount of warnings JSHint will produce before giving up on a given file. Default is 50.
"moz": false, // Options tells JSHint that your code uses Mozilla JavaScript extensions.
"multistr": true, // Suppresses warnings about multi-line strings. Multi-line strings can be dangerous if you accidentally put a whitespace in between the escape character (\) and a new line.
"notypeof": false, // Suppresses warnings about invalid typeof operator values.
"proto": false, // Suppresses warnings about the __proto__ property.
"scripturl": false, // Suppresses warnings about the use of script-targeted URL's such as javascript:....
"smarttabs": false, // Suppresses warnings about mixed tabs and spaces when the latter are used for alignmnent only.
"shadow": true, // Suppresses warnings about variable shadowing i.e. declaring a variable that had been already declared somewhere in the outer scope.
"sub": true, // Suppresses warnings about using [] notation when it can be expressed in dot notation: person['name'] vs. person.name.
"supernew": false, // Suppresses warnings about "weird" constructions like new function () { ... } and new Object;.
"noyield": false, // Suppresses warnings about generator functions with no yield statement in them.
/*
SUPPRESS specific JSHint warnings that have no corresponding option flags.
http://www.jshint.com/docs/
*/
"-W053": true, // Ignore (W053) Do not use String as a constructor.
"-W018": true, // Ignore (W018) Confusing use of '!'. This rule doesn't like !! for coercion.
/*
ENVIORNMENT Options: These options let JSHint know about some pre-defined global variables.
http://www.jshint.com/docs/options/#environments
*/
"browser": false, // Defines globals exposed by modern browsers. Does not include development variables like alert or console.
"node": false, // Defines globals available when your code is running inside of the Node runtime environment.
/*
GLOBAL WinJS enviornment variables: Tells JSHint about global variables used by WinJS that are defined elsewhere. If a value is false, JSHint will consider that variable as read-only.
https://www.npmjs.org/package/grunt-contrib-jshint
*/
"globals": {
"define": true,
"require": true
}
}