Skip to content

key-spacing behavior changed from 6.6.0 to 6.7.0 in objects with a single key #12597

@ibc

Description

@ibc

Tell us about your environment

$ ./node_modules/.bin/eslint --env-info
Environment Info:

Node version: v12.13.0
npm version: v6.12.0
Local ESLint version: v6.7.0 (Currently used)
Global ESLint version: Not found

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

Default.

Please show your full configuration:

Configuration
{
  "env": {
    "es6": true,
    "node": true,
    "jest/globals": true
  },
  "plugins": [
    "jest"
  ],
  "settings": {},
  "parserOptions": {
    "ecmaVersion": 2018,
    "sourceType": "module",
    "ecmaFeatures": {
      "impliedStrict": true
    }
  },
  "rules": {
    "array-bracket-spacing": [
      2,
      "always",
      {
        "objectsInArrays": true,
        "arraysInArrays": true
      }
    ],
    "arrow-parens": [
      2,
      "always"
    ],
    "arrow-spacing": 2,
    "block-spacing": [
      2,
      "always"
    ],
    "brace-style": [
      2,
      "allman",
      {
        "allowSingleLine": true
      }
    ],
    "camelcase": 2,
    "comma-dangle": 2,
    "comma-spacing": [
      2,
      {
        "before": false,
        "after": true
      }
    ],
    "comma-style": 2,
    "computed-property-spacing": 2,
    "constructor-super": 2,
    "func-call-spacing": 2,
    "generator-star-spacing": 2,
    "guard-for-in": 2,
    "indent": [
      2,
      "tab",
      {
        "SwitchCase": 1
      }
    ],
    "key-spacing": [
      2,
      {
        "singleLine": {
          "beforeColon": false,
          "afterColon": true
        },
        "multiLine": {
          "beforeColon": true,
          "afterColon": true,
          "align": "colon"
        }
      }
    ],
    "keyword-spacing": 2,
    "linebreak-style": [
      2,
      "unix"
    ],
    "lines-around-comment": [
      2,
      {
        "allowBlockStart": true,
        "allowObjectStart": true,
        "beforeBlockComment": false,
        "beforeLineComment": false
      }
    ],
    "max-len": [
      2,
      90,
      {
        "tabWidth": 2,
        "comments": 90,
        "ignoreUrls": true,
        "ignoreStrings": true,
        "ignoreTemplateLiterals": true,
        "ignoreRegExpLiterals": true
      }
    ],
    "newline-after-var": 2,
    "newline-before-return": 2,
    "newline-per-chained-call": 2,
    "no-alert": 2,
    "no-caller": 2,
    "no-case-declarations": 2,
    "no-catch-shadow": 2,
    "no-class-assign": 2,
    "no-confusing-arrow": 2,
    "no-console": 2,
    "no-const-assign": 2,
    "no-debugger": 2,
    "no-dupe-args": 2,
    "no-dupe-keys": 2,
    "no-duplicate-case": 2,
    "no-div-regex": 2,
    "no-empty": [
      2,
      {
        "allowEmptyCatch": true
      }
    ],
    "no-empty-pattern": 2,
    "no-else-return": 0,
    "no-eval": 2,
    "no-extend-native": 2,
    "no-ex-assign": 2,
    "no-extra-bind": 2,
    "no-extra-boolean-cast": 2,
    "no-extra-label": 2,
    "no-extra-semi": 2,
    "no-fallthrough": 2,
    "no-func-assign": 2,
    "no-global-assign": 2,
    "no-implicit-coercion": 2,
    "no-implicit-globals": 2,
    "no-inner-declarations": 2,
    "no-invalid-regexp": 2,
    "no-invalid-this": 2,
    "no-irregular-whitespace": 2,
    "no-lonely-if": 2,
    "no-mixed-operators": 2,
    "no-mixed-spaces-and-tabs": 2,
    "no-multi-spaces": 2,
    "no-multi-str": 2,
    "no-multiple-empty-lines": [
      1,
      {
        "max": 1,
        "maxEOF": 0,
        "maxBOF": 0
      }
    ],
    "no-native-reassign": 2,
    "no-negated-in-lhs": 2,
    "no-new": 2,
    "no-new-func": 2,
    "no-new-wrappers": 2,
    "no-obj-calls": 2,
    "no-proto": 2,
    "no-prototype-builtins": 0,
    "no-redeclare": 2,
    "no-regex-spaces": 2,
    "no-restricted-imports": 2,
    "no-return-assign": 2,
    "no-self-assign": 2,
    "no-self-compare": 2,
    "no-sequences": 2,
    "no-shadow": 2,
    "no-shadow-restricted-names": 2,
    "no-spaced-func": 2,
    "no-sparse-arrays": 2,
    "no-this-before-super": 2,
    "no-throw-literal": 2,
    "no-undef": 2,
    "no-unexpected-multiline": 2,
    "no-unmodified-loop-condition": 2,
    "no-unreachable": 2,
    "no-unused-vars": [
      1,
      {
        "vars": "all",
        "args": "after-used"
      }
    ],
    "no-use-before-define": [
      2,
      {
        "functions": false
      }
    ],
    "no-useless-call": 2,
    "no-useless-computed-key": 2,
    "no-useless-concat": 2,
    "no-useless-rename": 2,
    "no-var": 2,
    "no-whitespace-before-property": 2,
    "object-curly-newline": 0,
    "object-curly-spacing": [
      2,
      "always"
    ],
    "object-property-newline": [
      2,
      {
        "allowMultiplePropertiesPerLine": true
      }
    ],
    "prefer-const": 2,
    "prefer-rest-params": 2,
    "prefer-spread": 2,
    "prefer-template": 2,
    "quotes": [
      2,
      "single",
      {
        "avoidEscape": true
      }
    ],
    "semi": [
      2,
      "always"
    ],
    "semi-spacing": 2,
    "space-before-blocks": 2,
    "space-before-function-paren": [
      2,
      {
        "anonymous": "never",
        "named": "never",
        "asyncArrow": "always"
      }
    ],
    "space-in-parens": [
      2,
      "never"
    ],
    "spaced-comment": [
      2,
      "always"
    ],
    "strict": 2,
    "valid-typeof": 2,
    "yoda": 2
  }
}

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

const foo1 =
{
	bar : 123
};

What did you expect to happen?

ESLint should not complain. foo1 is an object with a single key but multiline, so it should accept the space before the colon. And it was this way before ESLint 6.7.0.

What actually happened? Please include the actual, raw output from ESLint.

 error    Extra space after key 'bar'                                   key-spacing

If I change it to:

const foo1 =
{
	bar: 123
};

then ESLint 6.7.0 does not complain, but 6.6.0 does complain.

Metadata

Metadata

Assignees

No one assigned

    Labels

    acceptedThere is consensus among the team that this change meets the criteria for inclusionarchived due to ageThis issue has been archived; please open a new issue for any further discussionbugESLint is working incorrectlypatch candidateThis issue may necessitate a patch release in the next few daysruleRelates to ESLint's core rules

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions