Reguły do eslinta/prettiera

0

Cześć,

Mam problem z pewną regułą w eslincie, mianowicie tą:
https://eslint.org/docs/rules/array-element-newline

Chciałbym powstrzymać eslinta od rozwalania enterami wszystkich tablic 3-el. Z tego co rozumiem z dokumentacji, powinno to być zaimplementowane tak, jak w pliku .eslintrc wklejonym poniżej. Dla rozwiania wątpliwości, wklejam też package.json. Pomimo wklejenia jej, zgodnie z dokumentacją (?) wywala taki błąd

33:79  error  Replace `0,·0,·0` with `␍⏎······0,␍⏎······0,␍⏎······0␍⏎····`  prettier/prettier

Chciałbym prosić o radę, jak należy to skonfigurować :)

Przy okazji, poszukuję jeszcze reguły, która pozwoli mi bez errorów wrzucać enter pomiędzy else if`a return w kawałku kodu wklejonym niżej. Ale to tak tylko na boku.

Chcę żeby było tak:
screenshot-20190828190815.png

A żąda ode mnie, żeby było tak:
screenshot-20190828190839.png

{
  "globals": {
    "Uint8ClampedArray": true
  },

  "parser": "babel-eslint",
  "extends": [
    "eslint:recommended",
    "plugin:react/recommended",
    "plugin:prettier/recommended"
  ],
  "plugins": ["react", "prettier"],
  "env": {
    "browser": true,
    "jasmine": true,
    "jest": true
  },
  "rules": {
    "array-element-newline": ["error", "consistent"],
    "prettier/prettier": [
      "error",
      {
        "singleQuote": true,
        "endOfLine": "auto",
        "linebreak-style": "lf"
      }
    ],
    "react/prop-types": ["warn"]
  },
  "settings": {
    "react": {
      "pragma": "React",
      "version": "detect"
    }
  }
}
{
    "name": "react-life-cycle",
    "version": "0.1.0",
    "private": true,
    "dependencies": {
        "@babel/plugin-proposal-class-properties": "^7.5.5",
        "@material-ui/icons": "^4.2.1",
        "babel-eslint": "^10.0.2",
        "enzyme-to-json": "^3.4.0",
        "eslint": "^6.1.0",
        "file-saver": "^2.0.2",
        "jsdom": "^15.1.1",
        "lint-staged": "^9.2.1",
        "prop-types": "^15.7.2",
        "react": "^16.8.3",
        "react-color": "^2.17.3",
        "react-dom": "^16.8.3",
        "react-modal": "^3.9.1",
        "react-redux": "^7.1.0",
        "react-router-redux": "^4.0.8",
        "react-scripts": "^3.0.1",
        "react-slick": "^0.24.0",
        "redux": "^4.0.1"
    },
    "scripts": {
        "start": "react-scripts start",
        "build": "react-scripts build",
        "test": "react-scripts test",
        "eject": "react-scripts eject",
        "lint:fix": "eslint --fix ./src",
        "eslint-debug": "eslint --debug ./src",
        "eslint": "eslint ./src"
    },
    "eslintConfig": {
        "extends": "react-app"
    },
    "browserslist": [
        ">0.2%",
        "not dead",
        "not ie <= 11",
        "not op_mini all"
    ],
    "lint-staged": {
        "src/**/*.{js,jsx,ts,tsx,json,css,scss,md}": [
            "prettier --single-quote --write",
            "git add"
        ]
    },
    "devDependencies": {
        "@types/react": "^16.9.1",
        "babel-core": "^6.26.3",
        "babel-jest": "^24.9.0",
        "babel-preset-env": "^1.7.0",
        "babel-preset-react": "^6.24.1",
        "enzyme": "^3.10.0",
        "enzyme-adapter-react-16": "^1.14.0",
        "eslint-config-prettier": "^6.0.0",
        "eslint-config-react": "^1.1.7",
        "eslint-plugin-prettier": "^3.1.0",
        "jest": "^24.8.0",
        "prettier": "^1.18.2"
    }
}

0

Spróbuj zamiast":

"array-element-newline": ["error", "consistent"],

czegoś takiego:

"array-element-newline": ["error", { "multiline": true, "minItems": 4 }],

Chociaż to ca masz powinno zadziałać - jaka jest treść błędu? Może to przez to, że linia ma więcej znaków niż dopuszcza prettier?

0

I w tej opcji i w tej co podesłałeś, błąd jest ten sam. Więc chyba chodzi jednak o coś więcej niż tylko ta reguła.
screenshot-20190829002840.png

0

Można podbijać wiadomości xd?

@Maciej Cąderek

0

Sprawdziłeś czy to nie wynika czasem z przekroczenia dopuszczalnej liczby znaków w linii? Prettier ma taką regułę i automatycznie przeformatowywuje kod w takich przypadkach.

0

Próbowałem dodawać reguły:

"max-len": "off"
"max-len": ["error", { "code": 300 }]

I odpalanie skryptu eslinta dawało za każdym razem error w tym samym miejscu.

Sorry, na wakacjach byłem, dlatego odpowiadam dopiero dzisiaj :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1