Skip to content

Commit

Permalink
Remove unlikely rules, see phetsims/phet-info#150 and phetsims/phet-i…
Browse files Browse the repository at this point in the history
  • Loading branch information
samreid committed Feb 26, 2021
1 parent 6c6acd9 commit 497708a
Showing 1 changed file with 54 additions and 188 deletions.
242 changes: 54 additions & 188 deletions eslint/format_eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,45 @@ module.exports = {
root: true, // TODO: is this needed? https://github.com/phetsims/phet-info/issues/150

// The new rules, overrides, etc.
// SR and MK deleted rules that we think we would never use.
rules: {
'object-curly-newline': [ 'error', {
ObjectExpression: { minProperties: 4, multiline: true, consistent: true },
ObjectPattern: { minProperties: 4, multiline: true, consistent: true },
ImportDeclaration: { minProperties: 4, multiline: true, consistent: true },
ExportDeclaration: { minProperties: 4, multiline: true, consistent: true }
} ],

// this option sets a specific tab width for your code
// https://eslint.org/docs/rules/indent
indent: [ 'error', 2, {
SwitchCase: 1,
VariableDeclarator: 'first',
outerIIFEBody: 1,

// MemberExpression: null,
FunctionDeclaration: {
parameters: 'first',
body: 1
},
FunctionExpression: {
parameters: 'first',
body: 1
},
CallExpression: {
arguments: 1
},
ArrayExpression: 'first',
ObjectExpression: 'first',
ImportDeclaration: 'first',
flatTernaryExpressions: true,

// list derived from https://github.com/benjamn/ast-types/blob/HEAD/def/jsx.js
ignoredNodes: [ 'ConditionalExpression' ],
ignoreComments: false
} ],

'no-multi-spaces': 'error',

// enforce line breaks after opening and before closing array brackets
// https://eslint.org/docs/rules/array-bracket-newline
Expand All @@ -40,102 +78,16 @@ module.exports = {
// TODO: perhaps update webstorm rules, https://github.com/phetsims/phet-info/issues/150
// 'block-spacing': [ 'error', 'always' ],

// enforce or disallow capitalization of the first letter of a comment
// https://eslint.org/docs/rules/capitalized-comments
'capitalized-comments': [ 'off', 'never', {
line: {
ignorePattern: '.*',
ignoreInlineComments: true,
ignoreConsecutiveComments: true
},
block: {
ignorePattern: '.*',
ignoreInlineComments: true,
ignoreConsecutiveComments: true
}
} ],

// enforce newline at the end of file, with no multiple empty lines
// TODO: add to knit picky rules, https://github.com/phetsims/phet-info/issues/150
// 'eol-last': [ 'error', 'never' ],

// requires function names to match the name of the variable or property to which they are
// assigned
// https://eslint.org/docs/rules/func-name-matching
'func-name-matching': [ 'off', 'always', {
includeCommonJSModuleExports: false,
considerPropertyDescriptor: true
} ],

// require function expressions to have a name
// https://eslint.org/docs/rules/func-names
// 'func-names': 'warn',

// enforces use of function declarations or expressions
// https://eslint.org/docs/rules/func-style
// TODO: enable
'func-style': [ 'off', 'expression' ],

// enforce consistent line breaks inside function parentheses
// https://eslint.org/docs/rules/function-paren-newline
// TODO: https://github.com/phetsims/phet-info/issues/150 should we turn this on?
// I disabled it for compatibility with some formatting I saw in fourier
// 'function-paren-newline': [ 'error', 'consistent' ],

// Blacklist certain identifiers to prevent them being used
// https://eslint.org/docs/rules/id-blacklist
// TODO: semver-major, remove once eslint v7.4+ is required
'id-blacklist': 'off',

// disallow specified identifiers
// https://eslint.org/docs/rules/id-denylist
'id-denylist': 'off',

// this option enforces minimum and maximum identifier lengths
// (variable names, property names etc.)
'id-length': 'off',

// require identifiers to match the provided regular expression
'id-match': 'off',

// Enforce the location of arrow function bodies with implicit returns
// https://eslint.org/docs/rules/implicit-arrow-linebreak
// 'implicit-arrow-linebreak': [ 'error', 'beside' ],

// specify whether double or single quotes should be used in JSX attributes
// https://eslint.org/docs/rules/jsx-quotes
'jsx-quotes': [ 'off', 'prefer-double' ],

// enforce position of line comments
// https://eslint.org/docs/rules/line-comment-position
// TODO: enable?
'line-comment-position': [ 'off', {
position: 'above',
ignorePattern: '',
applyDefaultPatterns: true
} ],

// disallow mixed 'LF' and 'CRLF' as linebreaks
// https://eslint.org/docs/rules/linebreak-style
// This is commented out because on windows this is just noisy. Git is already set up to commit the appropriate line breaks.
// 'linebreak-style': [ 'error', 'unix' ],

// enforces empty lines around comments
// PhET devs do not want this to be so strict in general
// TODO: add to extra knit-picky rules in the future. https://github.com/phetsims/phet-info/issues/150
// 'lines-around-comment': [ 'error', { beforeLineComment: true } ],

// require or disallow newlines around directives
// https://eslint.org/docs/rules/lines-around-directive
// "use strict" can do what ever it wants!
// 'lines-around-directive': [ 'error', {
// before: 'always',
// after: 'always'
// } ],

// specify the maximum depth that blocks can be nested
'max-depth': [ 'off', 4 ],

// specify the maximum length of a line in your program
// https://eslint.org/docs/rules/max-len
'max-len': [ 'off', 120, 2, {
Expand All @@ -146,62 +98,9 @@ module.exports = {
ignoreTemplateLiterals: true
} ],

// specify the max number of lines in a file
// https://eslint.org/docs/rules/max-lines
'max-lines': [ 'off', {
max: 300,
skipBlankLines: true,
skipComments: true
} ],

// enforce a maximum function length
// https://eslint.org/docs/rules/max-lines-per-function
'max-lines-per-function': [ 'off', {
max: 50,
skipBlankLines: true,
skipComments: true,
IIFEs: true
} ],

// specify the maximum depth callbacks can be nested
'max-nested-callbacks': 'off',

// limits the number of parameters that can be used in the function declaration.
'max-params': [ 'off', 3 ],

// specify the maximum number of statement allowed in a function
'max-statements': [ 'off', 10 ],

// restrict the number of statements per line
// https://eslint.org/docs/rules/max-statements-per-line
'max-statements-per-line': [ 'off', { max: 1 } ],

// enforce a particular style for multiline comments
// https://eslint.org/docs/rules/multiline-comment-style
'multiline-comment-style': [ 'off', 'starred-block' ],

// require multiline ternary
// https://eslint.org/docs/rules/multiline-ternary
// TODO: enable?
'multiline-ternary': [ 'off', 'never' ],

// allow/disallow an empty newline after var statement
'newline-after-var': 'off',

// https://eslint.org/docs/rules/newline-before-return
'newline-before-return': 'off',

// disallow use of the continue statement
// https://eslint.org/docs/rules/no-continue
// 'no-continue': 'error',

// disallow comments inline after code
'no-inline-comments': 'off',

// disallow if as the only statement in an else block
// https://eslint.org/docs/rules/no-lonely-if
// 'no-lonely-if': 'error',

// disallow un-paren'd mixes of different operators
// https://eslint.org/docs/rules/no-mixed-operators
// 'no-mixed-operators': [ 'error', {
Expand All @@ -222,29 +121,6 @@ module.exports = {
// allowSamePrecedence: false
// } ],

// disallow use of chained assignment expressions
// https://eslint.org/docs/rules/no-multi-assign
// 'no-multi-assign': [ 'error' ],

// disallow negated conditions
// https://eslint.org/docs/rules/no-negated-condition
'no-negated-condition': 'off',

// disallow nested ternary expressions
// 'no-nested-ternary': 'error',

// disallow the use of ternary operators
'no-ternary': 'off',

// disallow dangling underscores in identifiers
// https://eslint.org/docs/rules/no-underscore-dangle
// 'no-underscore-dangle': [ 'error', {
// allow: [],
// allowAfterThis: false,
// allowAfterSuper: false,
// enforceInMethodNames: true
// } ],

// enforce "same line" or "multiple line" on object properties.
// https://eslint.org/docs/rules/object-property-newline
// 'object-property-newline': [ 'error', {
Expand All @@ -255,34 +131,10 @@ module.exports = {
// https://eslint.org/docs/rules/operator-linebreak
// 'operator-linebreak': [ 'error', 'after', { overrides: { '=': 'none' } } ],

// disallow padding within blocks
// 'padded-blocks': [ 'error', {
// blocks: 'never',
// classes: 'never',
// switches: 'never',
// }, {
// allowSingleLineBlocks: true,
// } ],

// Require or disallow padding lines between statements
// https://eslint.org/docs/rules/padding-line-between-statements
'padding-line-between-statements': 'off',

// Disallow the use of Math.pow in favor of the ** operator
// https://eslint.org/docs/rules/prefer-exponentiation-operator
// TODO: enable, semver-major when eslint 5 is dropped
'prefer-exponentiation-operator': 'off',

// do not require jsdoc
// https://eslint.org/docs/rules/require-jsdoc
'require-jsdoc': 'off',

// requires object keys to be sorted
'sort-keys': [ 'off', 'asc', { caseSensitive: false, natural: true } ],

// sort variables within the same declaration block
'sort-vars': 'off',

// require or disallow a space immediately following the // or /* in a comment
// https://eslint.org/docs/rules/spaced-comment
// TODO: https://github.com/phetsims/phet-info/issues/150
Expand All @@ -300,8 +152,22 @@ module.exports = {
// }
// } ],

// require regex literals to be wrapped in parentheses
'wrap-regex': 'off'
/**************************************************************
* Nit Picky rules, we would probably not move these to the primary .eslintrc.js file
*******/

// enforce newline at the end of file, with no multiple empty lines
// TODO: add to knit picky rules, https://github.com/phetsims/phet-info/issues/150
'eol-last': [ 'error', 'never' ],

// enforces empty lines around comments
// PhET devs do not want this to be so strict in general
// TODO: add to extra knit-picky rules in the future. https://github.com/phetsims/phet-info/issues/150
'lines-around-comment': [ 'error', { beforeLineComment: true } ]

/********************************
* End of the Nit Picky rules
*******/
},
env: {
browser: true,
Expand Down

0 comments on commit 497708a

Please sign in to comment.