📝

VSCodeのeditor.codeActionsOnSaveの指定方法がboolean値から変更されていた

2024/01/28に公開

新しい指定方法

boolean値ではなく、以下のいずれかを文字列で指定する。

  • explicit
  • always
  • never
# 今まで
"editor.codeActionsOnSave": {
    "source.fixAll.eslint": true,
    "source.fixAll.stylelint": true,
},

# これから
"editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit",
    "source.fixAll.stylelint": "always",
},

詳細

この変更は2023年11月のアップデートで行われたようで、長年当然のように設定していたeditor.codeActionsOnSaveの各設定項目がboolean値からenum値に変更されたようです。

おせっかいな事に、恐らくVSCode側が勝手にsettings.jsoneditor.codeActionsOnSaveに変更を加えます。

おかげで全く無関係なcommitに何故かsettings.jsonが入っていてマジで迷惑しました、やめろ

このアップデートはVSCode v1.85.0で実装されました。

https://code.visualstudio.com/updates/v1_85

詳細はEditor -> Code Actions on Save and Autoから確認できます。

設定値

boolean値から以下の3種類の文字列値に変更されました。

設定値 動作
explicit 保存されたときにアクションを実行、以前のtrueと同じ。
always 保存、ウインドウ変更、フォーカス変更時にアクションを実行。
never 保存されたときにアクションを実行しない、以前のfalseと同じ。

つまり今までtrueだった人はexplicitfalseだった人はneverを指定すればOK。

alwaysは新しく追加された項目で、説明によると今まで以上の頻度でアクションを実行してくれるようです。

早速期待してalwaysを試してみたんですが、少なくともeslintはウインドウ切り替えやフォーカスをファイル一覧やVSCode内包ターミナルに切り替えても自動整形してくれませんでした。

もしかしたら拡張機能側の対応も必要なのかも知れません(どなたかできた方、ご教示頂けると嬉しいです)。

GitHubで編集を提案

Discussion