ksmithut/bower-files

View on GitHub
.jshintrc

Summary

Maintainability
Test Coverage
{ // http://jshint.com/docs/options/
  "bitwise"       : true,     // prohibits the use of bitwise operators | ^ &
  "camelcase"     : true,     // all variable names must use either camelCase style or UPPER_CASE with underscores
  "curly"         : true,     // always put curly braces around blocks in loops and conditionals
  "eqeqeq"        : true,     // prohibits the use of == and != in favor of === and !==
  "es3"           : false,    // does not need to conform to ECMAScript 3 standards
  "forin"         : true,     // requires all `for in` loops to filter object's items (obj.hasOwnProperty(i))
  "freeze"        : true,     // prohibits overwriting prototypes of native objects
  "funcscope"     : false,    // prohibits variable being used out of scope
  "globals"       : {
    "Promise"       : true    // Prevents Promise being redeclared (bluebird)
  },
  "globalstrict"  : false,    // Prevents 'use strict' errors. 'use strict' will be required in our case
  "immed"         : false,    // Immediately invoked functions must be wrapped in parentheses (for readability)
  "indent"        : 2,        // 2 space indent
  "iterator"      : false,    // Suppresses warnings about the __iterator__ property
  "latedef"       : "nofunc", // Makes you declare your variables at the top of the scope they're used in, but not the functions
  "maxcomplexity" : 10,       // forces functions to have less complex paths
  "maxdepth"      : 3,        // forces nested blocks to only be a certain number of blocks deep
  "maxerr"        : 100,      // maximum number of errors jshint will report before giving up
  "maxlen"        : 80,       // maximum line length
  "maxparams"     : 3,        // forces functions to have a maximum number of parameters
  "maxstatements" : 15,       // maximum number of statements in a function
  "newcap"        : true,     // must use capitalized constructors with the `new` keyword
  "noarg"         : true,     // mustn't use `arguments.callee` or `arguments.caller`
  "noempty"       : true,     // blocks shouldn't be empty
  "nonbsp"        : true,     // prohibits use of non breaking whitespace characters
  "nonew"         : true,     // prohibits use of `new Constructor()` without assigning it to anything
  "notypeof"      : false,    // prohibits use of invalid `typeof` values
  "quotmark"      : "single", // must use single quotes all the time
  "shadow"        : "outer",  // Checks variable declaration scope. Also checks outer scope for already declared variables
  "undef"         : true,     // prohibits the use of explicitly undeclared variables
  "unused"        : false,    // doesn't warn about declared but unused variables

  "trailing"      : true,

  "asi"           : false,    // You don't need semicolons. But we're going to require them for consistency. http://blog.izs.me/post/2353458699/an-open-letter-to-javascript-leaders-regarding
  "boss"          : false,    // Cannot use assignment operators in conditional statements, except when wrapped in parantheses
  "debug"         : false,    // Warns you about forgotten debugger statements
  "eqnull"        : true,     // Can use == null to see if something is null or undefined
  "esnext"        : false,    // Don't use es6 stuff (yet)
  "evil"          : false,    // don't use eval. it's evil. or can be
  "expr"          : false,    // Tolerate `ExpressionStatement` as Programs.
  "lastsemic"     : false,    // Must use semicolons at the end of one liners for consistancy
  "laxbreak"      : true,    // Tolerate unsafe line breaks e.g. `return [\n] x` without semicolons
  "laxcomma"      : false,    // Don't do comma first
  "loopfunc"      : false,    // Don't define a function inside of a loop, unless you know about closures
  "moz"           : false,    // We're not developing specifically for Firefox
  "multistr"      : false,    // Don't use multiline strings
  "plusplus"      : true,     // Don't use i++ or i--. use i += 1 or i -= 1
  "proto"         : false,    // Don't use .__proto__
  "scripturl"     : false,    // Don't use script urls
  "strict"        : true,     // Must use strict mode
  "sub"           : false,    // prefer dot notation if it can be used. test['name'] === test.name
  "supernew"      : false,    // Don't use new function () {} or new Object
  "validthis"     : false,    // Don't use "this" incorrectly
  "withstmt"      : false,    // Don't use with

  "node"          : true,     // Node env
  "mocha"         : true      // For tests
}