VSCodeがJSONファイルをFormat On Saveしてくれなくなったときはファイルの言語モードを確認する

更新

タグ:

結論

VSCodeがJSONファイルをFormat On SaveしてくれなくなったときはJSONファイルの言語モードを確認しましょう。言語モードがJSON with Commentsのファイルには、JSONに対する設定は効きません。JSON with CommentsもFormat On Saveするには、settings.jsonを編集します。

  • 変更前のsettings.json
{
  "[json]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true
  }
}
  • 変更後のsettings.json
{
  "[json][jsonc]": {
    // jsoncを追加
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true
  }
}

これでJSON with CommentsファイルもFormat On Saveしてくれるようになります。

経緯

ある日突然JSONファイルのFormat On Saveが効かなくなりました。

手動のフォーマットはしてくれたので、Format On Saveだけ効かなくなった様子。さんざん時間を溶かしたあと、ふとVSCodeの右下の「言語モードの選択」を見てみると…。

VSCode ファイルの言語モード

なんか知らんヤツになっとる…!

前はJSONだったはずなんですが、いつの間にかJSON with Commentsになっていました。Format On SaveはJSONに対して設定していたので、JSON with CommentsにFormat On Saveが効かなかったのは当然ですね。settings.json[json]に対する設定に、[jsonc]を追加します。

{
  "[json][jsonc]": {
    // jsoncを追加
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true
  }
}

これでJSON with CommentsのファイルにもFormat On Saveされるようになりました。