Skip to content

Instantly share code, notes, and snippets.

@phaistonian
Last active April 11, 2016 06:58
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save phaistonian/09015145674ffedf2657 to your computer and use it in GitHub Desktop.
Save phaistonian/09015145674ffedf2657 to your computer and use it in GitHub Desktop.
To be used in projects, Sublime Text, VIM etc.
{
"parser": "babel-eslint",
"ecmaFeatures": {
"jsx": true,
"modules": true,
"classes": true,
"generators": true,
"experimentalObjectRestSpread": true
},
"rules": {
"indent": [1, 2],
"quotes": [1, "single"],
"linebreak-style": [1, "unix"],
"semi": [1, "always"],
"no-console": 0, // off since we strp them in production
"no-dupe-keys": 2,
"key-spacing": 1,
"strict": 0,
// let's leave to off for now
"no-underscore-dangle": 0,
"no-lonely-if": 1,
"no-mixed-spaces-and-tabs": [1, "smart-tabs"],
"keyword-spacing": [1, {"before": true, "after": true, "overrides": {}}],
"eol-last": 1,
"no-nested-ternary": 1,
"no-new-object": 1,
"no-spaced-func": 1,
"no-ternary": 0,
"wrap-regex": 0,
"comma-dangle": 2,
"no-cond-assign": [2, "except-parens"],
"no-constant-condition": 2,
"no-control-regex": 1,
"no-debugger": 1,
"no-dupe-args": 2,
"no-duplicate-case": 2,
"no-empty-character-class": 2,
"no-empty": 2,
"no-ex-assign": 2,
"no-extra-boolean-cast": 2,
"no-extra-parens": 1,
"no-extra-semi": 2,
"no-extra-bind": 1,
"no-func-assign": 2,
"no-inner-declarations": 2,
"no-invalid-regexp": 2,
"no-irregular-whitespace": 2,
"no-negated-in-lhs": 2,
"no-obj-calls": 2,
"no-regex-spaces": 2,
"no-sparse-arrays": 2,
"no-unreachable": 2,
"no-unused-expressions": 1,
"no-unused-vars": 1,
//"no-use-before-define": 1,
"use-isnan": 1,
"valid-jsdoc": 1,
"valid-typeof": 2,
"no-unexpected-multiline": 2,
"complexity": 0,
"accessor-pairs": 1,
"block-scoped-var": 1,
"dot-notation": 1,
"dot-location": [1, "property"],
"eqeqeq": [1, "smart"],
"guard-for-in": 1,
"no-div-regex": 1,
"consistent-return": 1,
"curly": 1,
"default-case": 1,
"no-caller": 1,
"no-labels": 1,
"no-eq-null": 1,
"no-extend-native": 1,
"no-multi-str": 1,
"no-native-reassign": 1,
"no-new-func": 1,
"no-new-wrappers": 1,
// This could cause some confusion when used with new-cap, e.g new AutoComplete ..
"no-new": 0,
"no-octal-escape": 1,
"no-octal": 1,
"no-proto": 1,
"no-redeclare": 1,
// Not for now
// we need it in case of, say, ref={ref => this.lala = ref}
"no-return-assign": 0,
"no-script-url": 1,
"no-self-compare": 1,
"no-sequences": 1,
"no-throw-literal": 1,
"no-useless-call": 1,
"no-useless-concat": 1,
"no-void": 1,
"no-with": 1,
"vars-on-top": 1,
"wrap-iife": 1,
"yoda": [1, "never"],
"no-catch-shadow": 1,
"no-delete-var": 1,
"no-label-var": 1,
"no-shadow-restricted-names": 1,
"no-shadow": 1,
// Not for now
"no-undefined": 0,
"callback-return": 1,
"handle-callback-err": 1,
"no-new-require": 1,
"no-path-concat": 1,
"no-process-exit": 1,
"no-sync": 1,
"generator-star-spacing": [1, {"before": false, "after": true}],
"prefer-reflect": 1,
"new-parens": 1,
"new-cap": [1, { "capIsNewExceptions": [ "SVGIcon", "SVGIconAsHTML", "SVGIconUri", "SVGIconAsJSX", "Modal"] }],
"no-eval": 2,
"no-fallthrough": 1,
"no-floating-decimal": 1,
"no-implied-eval": 2,
"no-iterator": 1,
"no-lone-blocks": 1,
"no-loop-func": 1,
"no-multi-spaces": 1,
"no-undef": 2,
"jsx-quotes": [2, "prefer-double"],
"react/jsx-sort-prop-types": 0,
"no-useless-escape": 1,
"max-statements-per-line" : ["warn", { "max": 1 }],
"no-duplicate-imports" : 1,
"react/jsx-uses-react": 1,
"react/jsx-uses-vars": 1,
"react/jsx-space-before-closing": 1,
"react/no-danger": 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/prefer-es6-class": [1, "always"],
"react/prefer-stateless-function": 1,
"react/forbid-prop-types": [1, { "forbid": ["any"] }],
"react/no-deprecated": [1],
"react/jsx-boolean-value": 1,
"react/jsx-curly-spacing": 1,
"react/jsx-equals-spacing": 1,
"react/jsx-no-duplicate-props": 1,
"react/jsx-indent": [1, 2],
"react/jsx-key": 1,
"react/jsx-max-props-per-line": [1, { "maximum": 2 }],
"react/jsx-no-undef": 1,
"react/jsx-pascal-case": 1,
"react/no-unknown-property": 1,
"react/prop-types": 1,
"react/react-in-jsx-scope": 2,
"react/require-extension": 1,
"react/self-closing-comp": 1,
"react/sort-comp": 1,
"react/wrap-multilines": 1,
"max-len": [1, { "code": 120, "ignoreUrls": true, "tabWidth": 2, "ignoreTrailingComments": true }],
"array-bracket-spacing": 1,
"block-spacing": [1, "always"],
"brace-style": [1, "1tbs", { "allowSingleLine": true }],
"camelcase": [1, {"properties": "always"}],
"computed-property-spacing": [1, "never"],
"consistent-this": [1, "that", "self"],
"no-multiple-empty-lines": [1, {"max": 1, "maxEOF": 1}],
"no-trailing-spaces": 1,
"no-unneeded-ternary": 1,
"no-whitespace-before-property": 1,
"object-curly-spacing": [1, "always"],
"operator-linebreak": [1, "before"],
// not for now
// TODO: Enable it later
"padded-blocks": [0, "never"],
"quote-props": [1, "as-needed"],
"space-before-blocks": 1,
"space-before-function-paren": 1,
"space-infix-ops": [1, {"int32Hint": false}],
"spaced-comment": [1, "always"],
// es6
"arrow-parens": [1, "as-needed"],
"arrow-spacing": 1,
"constructor-super": 1,
"no-class-assign": 1,
"no-confusing-arrow": 1,
"no-const-assign": 1,
"no-dupe-class-members": 1,
"no-new-symbol": 1,
"no-this-before-super": 1,
"no-useless-constructor": 1,
"no-var": 1,
"object-shorthand": 1,
"prefer-arrow-callback": 1,
"prefer-const": 1,
// This could cause some issues
// off for now
"prefer-rest-params": 0,
"prefer-spread": 1,
"prefer-template": 1,
"require-yield": 1,
"template-curly-spacing": [1, "never"],
"yield-star-spacing": [1, "after"],
"import/named": 1,
"import/namespace": 0, // not working okay yet
"import/default": 1,
"import/export": 1,
},
"env": {
"es6": true,
"browser": true,
"node": true
},
"plugins": [
"react",
"import"
]
}
@phaistonian
Copy link
Author

Also needed if you run eslint globally

npm install -g eslint
npm install -g babel-eslint
npm install -g eslint-plugin-react
npm install -g eslint-plugin-import
npm install -g eslint-config-phaistos-networks

In case errors come up, try

npm update -g

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment