| { |
| "env": { |
| "node": true |
| }, |
| "rules": { |
| // 2-space indentation |
| "indent": [2, 2, {"SwitchCase": 1}], |
| // Disallow semi-colons, unless needed to disambiguate statement |
| "semi": [2, "never"], |
| // Require strings to use single quotes |
| "quotes": [2, "single"], |
| // Require curly braces for all control statements |
| "curly": 2, |
| // Disallow using variables and functions before they've been defined |
| "no-use-before-define": 2, |
| // Allow any case for variable naming |
| "camelcase": 0, |
| // Disallow unused variables, except as function arguments |
| "no-unused-vars": [2, {"args":"none"}], |
| // Allow leading underscores for method names |
| // REASON: we use underscores to denote private methods |
| "no-underscore-dangle": 0, |
| // Allow multi spaces around operators since they are |
| // used for alignment. This is not consistent in the |
| // code. |
| "no-multi-spaces": 0, |
| // Style rule is: most objects use { beforeColon: false, afterColon: true }, unless aligning which uses: |
| // |
| // { |
| // beforeColon : true, |
| // afterColon : true |
| // } |
| // |
| // eslint can't handle this, so the check is disabled. |
| "key-spacing": 0, |
| // Allow shadowing vars in outer scope (needs discussion) |
| "no-shadow": 0, |
| // Use if () { } |
| // ^ space |
| "keyword-spacing": [2, {"after": true}], |
| // Use if () { } |
| // ^ space |
| "space-before-blocks": [2, "always"] |
| } |
| } |