ecmaFeatures: jsx: true env: node: true amd: true builtin: true mocha: true jasmine: false es6: true globals: importScripts: true document: true window: true location: true navigator: true console: true Worker: true postMessage: true setTimeout: true clearTimeout: true setInterval: true clearInterval: true Blob: true XMLHttpRequest: true localStorage: true requestAnimationFrame: true KeyboardEvent: true onload: true # for tests btoa: true atob: true apf: true alert: true prompt: true Image: true URL: true FileReader: true FileReaderSync: true WebSocket: true sessionStorage: true localStorage: true plugins: - react extends: - eslint:recommended - plugin:react/recommended rules: handle-callback-err: 1 max-len: [1, 140, 4, { ignorePattern: "\": " }] no-debugger: 1 no-undef: 1 no-inner-declarations: [1, "functions"] no-native-reassign: 1 no-new-func: 1 no-new-wrappers: 1 no-cond-assign: [1, "except-parens"] no-dupe-keys: 1 no-eval: 1 no-console: 0 no-func-assign: 1 no-invalid-regexp: 1 no-irregular-whitespace: 1 no-negated-in-lhs: 1 no-regex-spaces: 1 no-unreachable: 1 use-isnan: 1 valid-typeof: 1 no-redeclare: 1 no-with: 1 radix: 1 no-delete-var: 1 no-label-var: 1 no-shadow-restricted-names: 1 no-new-require: 1 no-unused-vars: [1, {vars: "all", args: "none"}] semi: 1 no-extra-semi: 1 one-var: [1, "never"] arrow-parens: 1 no-confusing-arrow: 1 camelcase: [1, { properties: "never" }] id-blacklist: [1, "uname", "cb", "acct"] default-case: 1 // DISABLED: too much old code still uses this, e.g. for strings that should really be numbers // eqeqeq: [1, "smart"] // React rules react/jsx-curly-spacing: 1 react/no-deprecated: 1 react/no-did-mount-set-state: 1 react/no-did-update-set-state: 1 react/no-direct-mutation-state: 1 react/no-is-mounted: 1 react/no-unknown-property: 1 react/prefer-es6-class: 1 react/prop-types: 1 react/react-in-jsx-scope: 1 react/self-closing-comp: 1 react/sort-comp: 1 # This rule is not compatible with eslint < 3 # react/jsx-wrap-multilines: 1 react/jsx-boolean-value: [1, "always"] react/jsx-equals-spacing: 1 react/jsx-indent-props: 1 react/jsx-key: 1 react/jsx-indent: 1 react/jsx-max-props-per-line: [1, { maximum: 5 }] react/jsx-no-bind: 1 react/jsx-no-duplicate-props: 1 react/jsx-no-undef: 1 react/jsx-pascal-case: 1 react/jsx-uses-react: 1 keyword-spacing: [1, {"before": true, "after": true, "overrides": { "catch": {"after": true } }}] key-spacing: [1, { beforeColon: false, afterColon: true, mode: "strict" }] space-in-parens: [1, "never"] space-infix-ops: [1] arrow-spacing: 1 generator-star-spacing: [1, {"before": false, "after": true}] space-before-blocks: [1, "always"] // TODO: after eslint update in IDE // space-before-function-paren: [1, {"named": "never", "anonymous": "ignore"}] // object-curly-newline: [1, { ObjectExpression: { "multiline": true }, "ObjectPattern": "never" }] // DISABLED: causes issue with define(function() in client-side code // indent: [1, 4, { SwitchCase: 1, outerIIFEBody: 0, MemberExpression: 1, FunctionDeclaration: { body: 0, parameters: 1 }, FunctionExpression: { body: 0, parameters: 1 } }] object-curly-spacing: [1, "always", { objectsInObjects: false, arraysInObjects: false }] // DISABLED: causes issue with /*** single-line, triple-star comments ***/ // spaced-comment: [1, "always", { exceptions: ["*"] }] comma-spacing: 1 no-multi-spaces: 1 no-lone-blocks: 1 // valid-jsdoc: [1, { requireReturn: false, requireParamDescription: false, prefer: { "return": "return" } }] no-empty: [1, {"allowEmptyCatch": true}] no-useless-escape: [0] // broken for regexps no-ex-assign: 0 no-fallthrough: 0 no-sparse-arrays: 0 no-control-regex: 0 no-unsafe-finally: 0 no-mixed-spaces-and-tabs: 0 no-constant-condition: [1, { "checkLoops": false }]