镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

tools: some eslint rules proposals #14253

Description

@vsemozhetbyt

Recently some big PRs with churn was mostly rejected or gave sporadic -1, so these are some preliminarily proposals to check the opinions before investing time.

  1. Rule: http://eslint.org/docs/rules/no-unused-vars

    Proposal:

    no-unused-vars: ['error', {args: 'after-used'}]
    

    Hits:

    *.md:          190 (soundly disabled in doc/.eslintrc.yaml)
    
    *.js benchmark: 33
    *.js lib:       45
    *.js test:     300
    *.js tools:      1 (will be fixed in #14251)
    

    Refs: tools: delete an unused argument #14251

  2. Rule: http://eslint.org/docs/rules/prefer-arrow-callback

    Proposal:

    `prefer-arrow-callback: ['error', {allowNamedFunctions: false, allowUnboundThis: true}]`
    

    Hits:

    *.md:            15
    
    *.js benchmark: 108
    *.js lib:       114
    *.js test:     4002 (wow...)
    *.js tools:      51
    
  3. Rule: http://eslint.org/docs/rules/prefer-destructuring

    Proposal:

    prefer-destructuring: ['error',
                           {array: true, object: true},
                           {enforceForRenamedProperties: false}]
    

    Hits:

    array: *.md:           3
    
    array: *.js benchmark: 7
    array: *.js lib:      59
    array: *.js test:    124
    array: *.js tools:     9
    
    
    object: *.md:             1
    
    object: *.js benchmark: 141
    object: *.js lib:       268
    object: *.js test:      562
    object: *.js tools:      22
    

If there is some consensus for any proposal, it can be used as a starting point for code-and-learn or similar events.

If some or all approved proposals are not appropriate for code-and-learn, I can do any or all if there are volunteers to review.

Activity

  1. added
    metaIssues and PRs related to the general management of the project.
    toolsIssues and PRs related to the tools directory.
    on Jul 15, 2017
  2. Trott commented on Jul 15, 2017

    @Trott
    Member

    Ref: #10129

  3. Trott commented on Jul 15, 2017

    @Trott
    Member

    no-unused-vars: ['error', {args: 'after-used'}]

    FWIW, {args: 'after-used'} is the default, so it can just be: no-unused-vars: error.

  4. vsemozhetbyt commented on Jul 15, 2017

    @vsemozhetbyt
    ContributorAuthor

    @Trott Yes, I've used some defaults to be more explicit. Some rules can be shortened.

  5. added
    discussIssues opened for discussion and feedback.
    on Jul 15, 2017
  6. silverwind commented on Jul 17, 2017

    @silverwind
    Contributor

    +1 to no-unused-vars, but I'd suggest these options:

    {args: all, argsIgnorePattern: ^_, varsIgnorePattern: ^_}

    This way, one can just underscore-prefix unused variabled in function arguments or during destructuring:

    doSomething((_unused, used) => {});
    const [_unused, used] = doSomething();
  7. vsemozhetbyt commented on Jul 18, 2017

    @vsemozhetbyt
    ContributorAuthor

    @silverwind With varsIgnorePattern we can miss some unused "internal" variables outside of destructuring, while in destructuring we can simply omit the unused variables:

    const [, , file] = process.argv;

    But I am OK with this decision if there are some +1.

  8. sebdeckers commented on Jul 21, 2017

    @sebdeckers
    Contributor

    Any chance of adopting StandardJS? Avoids lots of stylistic bikeshedding. Many projects use it nowadays. As one example, migration was relatively painless for NPM (npm/npm#9954). The auto-formatter has improved since then, though it may not be perfect.

  9. vsemozhetbyt commented on Jul 21, 2017

    @vsemozhetbyt
    ContributorAuthor

    @sebdeckers I doubt we will have consensus about "no semicolons" or "space after function name" :) The churn will be tremendous :)

  10. vsemozhetbyt commented on Jul 22, 2017

    @vsemozhetbyt
    ContributorAuthor

    It seems this has not got enough approvement and can be closed for now. Feel free to reopen if something changes.

  11. refack commented on Jul 23, 2017

    @refack
    Contributor

    +1 to no-unused-vars, but I'd suggest these options:

    {args: all, argsIgnorePattern: ^, varsIgnorePattern: ^}

    @vsemozhetbyt I think no-unused-vars on it's own will get wider support (personally I like all with an ^_+$ ignore pattern)

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    discussIssues opened for discussion and feedback.metaIssues and PRs related to the general management of the project.toolsIssues and PRs related to the tools directory.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions