Правило ESLint конфликтует с правилом Претти - PullRequest
0 голосов
/ 21 апреля 2020

Я совершенно новичок в VSCode, и это моя первая настройка. Я знаю, что это очень распространенная проблема, но я не смог найти для нее подходящего решения.

Это мое понимание до сих пор. Пожалуйста, поправьте меня, если я ошибаюсь.

Я хочу использовать ESLint для поиска ошибок в коде Javascript и Prettier для форматирования всех языков. Но, похоже, мы могли бы также отформатировать наш код javascript с помощью ESLint! Есть некоторые полезные правила, которые мне нравятся, и кажется, что у Преттиэра таких нет (space-in-parens).

Поэтому я решил использовать ESLint в качестве средства форматирования в Javascript. Теперь я вижу, что существует множество учебников по «Как интегрировать ESLint с Prettier» в сети. Идея состоит в том, чтобы расширить правила Преттиера с помощью плагина и добавить к нему те правила ESLint, которые задают c. Разумно!

Я получил следующие настройки. Пожалуйста, посмотрите мои настройки для использования ESLint и Prettier ниже:

мой файл конфигурации eslint:

   module.exports = {
  env: {
    browser: true,
    es6: true,
  },
  extends: ["prettier"],
  globals: {
    Atomics: "readonly",
    SharedArrayBuffer: "readonly",
  },
  parserOptions: {
    ecmaVersion: 2018, 
    sourceType: "module",
  },
  plugins: [
    "prettier"
  ],
  "rules": {
    "space-in-parens": ["error", "always"],
    "quotes": ["error", "single"],
    "prettier/prettier": "error"
  }  
};

мой файл настроек пользователя:

{

    "terminal.integrated.shellArgs.linux": [
        "-l"
    ],
    "remote.SSH.remotePlatform": {
        "dev-all": "linux"
    },
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true,
    "eslint.alwaysShowStatus": true,
    // turn it off for JS and JSX, we will do this via eslint
    "[javascript]": {
        "editor.formatOnSave": false
    },
    // tell the ESLint plugin to run on save
    "editor.codeActionsOnSave": {
        "source.fixAll": true
    },
    // Optional BUT IMPORTANT: If you have the prettier extension enabled for other languages like CSS and HTML, turn it off for JS since we are doing it through Eslint already
    "prettier.disableLanguages": [
        "javascript"
    ]
}

и, наконец, мой пакет. json file:

{
  "name": "web",
  "version": "1.0.0",
  "description": "",
  "main": "",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "eslint": "^6.8.0",
    "eslint-config-prettier": "^6.10.1",
    "eslint-plugin-prettier": "^3.1.3",
    "prettier": "^2.0.4"
  }
}

Теперь проблема в том, что всякий раз, когда я сохраняю свой код javascript, форматирование переключается! например, при первом сохранении у меня есть «одинарная кавычка», а при следующем сохранении у меня «двойная кавычка». Я думаю, что мое понимание всей идеи неверно. Не могли бы вы объяснить это для меня и сказать, как это исправить. Я трачу так много времени, чтобы понять это. Кстати, я также установил два расширения в vscode: "ESLint" и "Prettier".

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Ну, я доволен TSLint вместе с ESLint. И у меня есть привычка часто делать ctrl+shit+f во время написания кода. Также вы можете попробовать indent-rainbow, colorizer для брекет-пары и мой любимый павлин.

0 голосов
/ 23 апреля 2020

Я решил позволить ESLint сделать для меня форматирование в JavaScript и красивее для всех других языков. Вы можете найти мои настройки на моем git.

...