question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

'brace-style' rule should ignore contents in block comment

See original GitHub issue

Tell us about your environment

  • ESLint Version: v4.19.1
  • Node Version: v9.9.0
  • npm Version: 5.6.0

What parser (default, Babel-ESLint, etc.) are you using? default

Please show your full configuration:

Configuration
{
    "env": {
       "es6": true,
       "node": true
    },
    "parserOptions": {
      "ecmaVersion": 6,
      "ecmaFeatures": {
          "jsx": true
      }
    },
    "rules": {
        // Possible Errors
        "comma-dangle": [2, "never"],
        "computed-property-spacing": [2, "never"],
        "no-cond-assign": 2,
        "no-console": 2,
        "no-constant-condition": 2,
        "no-control-regex": 2,
        "no-debugger": 2,
        "no-dupe-keys": 2,
        "no-empty": 2,
        "no-empty-character-class": 2,
        "no-ex-assign": 2,
        "no-extra-boolean-cast": 2,
        "no-extra-parens": 0,
        "no-extra-semi": 2,
        "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-reserved-keys": 0,
        "no-sparse-arrays": 2,
        "no-unreachable": 2,
        "use-isnan": 2,
        "valid-jsdoc": 0,
        "valid-typeof": 2,
        // Best Practices
        "block-scoped-var": 2,
        "complexity": 0,
        "consistent-return": 2,
        "curly": 2,
        "default-case": 2,
        "dot-notation": 2,
        "eqeqeq": 2,
        "guard-for-in": 2,
        "no-alert": 2,
        "no-caller": 2,
        "no-confusing-arrow": 2,
        "no-div-regex": 2,
        "no-else-return": 2,
        "no-eq-null": 2,
        "no-eval": 2,
        "no-extend-native": 2,
        "no-extra-bind": 2,
        "no-fallthrough": 2,
        "no-floating-decimal": 2,
        "no-implied-eval": 2,
        "no-iterator": 2,
        "no-labels": 2,
        "no-lone-blocks": 2,
        "no-loop-func": 2,
        "no-multi-spaces": 2,
        "no-multi-str": 2,
        "no-native-reassign": 2,
        "no-new": 2,
        "no-new-func": 2,
        "no-new-wrappers": 2,
        "no-octal": 2,
        "no-octal-escape": 2,
        "no-process-env": 2,
        "no-proto": 2,
        "no-redeclare": 2,
        "no-return-assign": 2,
        "no-script-url": 2,
        "no-self-compare": 2,
        "no-sequences": 2,
        "no-unused-expressions": 2,
        "no-void": 0,
        "no-warning-comments": 2,
        "no-with": 2,
        "prefer-arrow-callback": 2,
        "radix": 2,
        "vars-on-top": 0,
        "wrap-iife": 2,
        "yoda": 2,
        // Strict Mode
        "strict": [2, "global"],
        // Variables
        "prefer-const": 2,
        "no-catch-shadow": 2,
        "no-const-assign": 2,
        "no-delete-var": 2,
        "no-label-var": 2,
        "no-shadow": 2,
        "no-shadow-restricted-names": 2,
        "no-undef": 2,
        "no-undef-init": 2,
        "no-undefined": 2,
        "no-unused-vars": 2,
        "no-use-before-define": 2,
        "no-var": 2,
        // Stylistic Issues
        "indent": [2, 2, {
          "SwitchCase": 1
        }],
        "arrow-body-style": [2, "as-needed"],
        "arrow-parens": [2, "as-needed"],
        "arrow-spacing": 2,
        "brace-style": 2,
        "camelcase": 0,
        "comma-spacing": 2,
        "comma-style": 2,
        "consistent-this": 0,
        "eol-last": 2,
        "func-names": 0,
        "func-style": 0,
        "key-spacing": [2, {
          "beforeColon": false,
          "afterColon": true
        }],
        "max-nested-callbacks": 0,
        "new-cap": 2,
        "new-parens": 2,
        "no-array-constructor": 2,
        "no-inline-comments": 0,
        "no-lonely-if": 2,
        "no-mixed-spaces-and-tabs": 2,
        "no-nested-ternary": 2,
        "no-new-object": 2,
        "semi-spacing": [2, {
          "before": false,
          "after": true
        }],
        "no-spaced-func": 2,
        "no-ternary": 0,
        "no-trailing-spaces": 2,
        "no-multiple-empty-lines": 2,
        "no-underscore-dangle": 0,
        "one-var": 0,
        "operator-assignment": [2, "always"],
        "padded-blocks": [2, { "blocks": "never", "classes": "never", "switches": "never" }],
        "quotes": [2, "single"],
        "quote-props": [2, "as-needed"],
        "semi": [2, "always"],
        "sort-vars": [2, {"ignoreCase": true}],
        "keyword-spacing": 2,
        "space-before-blocks": 2,
        "object-curly-spacing": [2, "never"],
        "array-bracket-spacing": [2, "never"],
        "space-in-parens": 2,
        "space-infix-ops": 2,
        "space-unary-ops": 2,
        "spaced-comment": 2,
        "wrap-regex": 0,
        // Legacy
        "max-depth": 0,
        "max-len": [2, 120, {
          "ignoreStrings": true,
          "ignoreTemplateLiterals": true,
          "ignoreComments": true,
        }],
        "max-params": 0,
        "max-statements": 0,
        "no-plusplus": 0,
        "no-prototype-builtins": 2,
        "prefer-template": 2,
        "template-curly-spacing": [2, "never"],
    }
}

What did you do? Please include the actual source code causing the issue, as well as the command that you used to run ESLint.

The code originally flow-typed, and I commented out the typing annotations with comment blocks.

'use strict';

// ./index.js
function func() /* : {
  a: string,
  b: number,
} */ {
  return {
    a: 'aaa',
    b: 123
  };
}
$ npx eslint ./index.js

What did you expect to happen? No errors.

What actually happened? Please include the actual, raw output from ESLint. An error raised and the closing curly brace seems to be recognized by the brace-style rule.

/path/to/index.js
   7:6   error  Opening curly brace does not appear on the same line as controlling statement  brace-style

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:5 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
kamataryocommented, Apr 22, 2018

@malcolmsgroves Hi, thanks for the comment. function statement is not affected by automatic semicolon insertion.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Automatic_semicolon_insertion

The code below is valid.

function func()
{}
0reactions
eslint-deprecated[bot]commented, Dec 11, 2018

Unfortunately, it looks like there wasn’t enough interest from the team or community to implement this change. While we wish we’d be able to accommodate everyone’s requests, we do need to prioritize. We’ve found that issues failing to reach accepted status after 21 days tend to never be accepted, and as such, we close those issues. This doesn’t mean the idea isn’t interesting or useful, just that it’s not something the team can commit to.

Thanks for contributing to ESLint and we appreciate your understanding.

Read more comments on GitHub >

github_iconTop Results From Across the Web

curly - ESLint - Pluggable JavaScript Linter
JavaScript allows the omission of curly braces when a block contains only one statement. However, it is considered by many to be best...
Read more >
eslint rule for block braces on new line - javascript
I am trying to set the opening curly brace to start on a new line, but it is not working for me. I...
Read more >
Artistic Style 3.1
Formatting and indenting can be disabled with comment tags inserted in the source code. Disable Block. Blocks of code can be disabled using...
Read more >
Code style formatting rule IDE0055 - .NET
Learn about using code-style rule IDE0055 to format indentations, spaces, and new lines.
Read more >
Rules — yamllint 1.28.0 documentation
the following code snippet would FAIL: #This sentence #is a block comment. With comments: {min-spaces-from-content: 2}. the following code snippet would ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found