VSCodeで特定のファイルだけeditor.formatOnSaveを無効化する

VSCodeにprettierとESLintを導入して開発を行う際に、editor.formatOnSavesource.fixAll.eslintの設定が競合して正しく自動修正ができなくなることがある。

editor.formatOnSaveを無効化するという手もあるが、この場合だとeslintの対象外のファイルの自動修正ができないのでこれはこれで困る。

特定のファイルだけformatOnSaveを無効化することができないか調べてみたところ、下記のようにファイルタイプを指定することで、そのファイルタイプのみ無効化できた。

// .vscode/settings.json
{
  "editor.formatOnSave": true,
  "[html]": {
    "editor.formatOnSave": false
  },
  "[javascript]": {
    "editor.formatOnSave": false
  },
  "[javascriptreact]": {
    "editor.formatOnSave": false
  },
  "[typescript]": {
    "editor.formatOnSave": false
  },
  "[typescriptreact]": {
    "editor.formatOnSave": false
  },
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "eslint.validate": ["html", "javascript", "javascriptreact", "typescript", "typescriptreact"]
}

これで開発が捗る。

参考