VSCode のオートフォーマットが実行されない時は "editor.formatOnSaveTimeout" の値を疑う

ある日突然!というわけでもないんですけど、なんか VSCode のフォーマットの調子悪いなあ…と思っていろいろ調べてみました。

保存時に実行するフォーマットのオプションはこれらが代表的かと思います。

{
  "files.trimTrailingWhitespace": true,
  "files.insertFinalNewline": true,
  "files.trimFinalNewlines": true
}

スクリーンショット 2019-11-18 18.42.41

通常、`"editor.formatOnSave": true` に設定していれば、保存時に勝手にフォーマットしてくれるはずです。しかし、やってくれません。なんでやねん。

どうやらオートフォーマットにはタイムアウトの時間が設定してあるようです。これを過ぎるようなフォーマットは無視されてしまいます。

デフォルトだと、750 ミリ秒に設定してあるようですね。はやっ。

"editor.formatOnSaveTimeout": 750

スクリーンショット 2019-11-18 19.36.43

おそらくですが、巨大なコードベースになればなるほどフォーマットに時間がかかってしまうのかもしれません(未検証)。ので、取り急ぎこの数値を保存が完了するくらいまで延ばしてあげると良さそうです。