🍡

VSCodeのformatterが効きすぎる問題

2021/06/03に公開

TypeScriptのプロジェクトで複数のformatterが衝突したような挙動をする

TL; DR

  1. VSCodeの環境設定で Editor > Default Formatter を確認する
  2. None になっていたら自分の使いたいformatterに変更する

😣

今までこんなことがなかったので気付かなかったのですが、
VSCodeのDefault Formatterが None のとき、
TypeScriptのプロジェクトではVSCode内蔵の vscode.typescript-language-features (TypeScript and JavaScript Language Features) のformatterが 他のcode formatting系拡張機能の有効無効に関わらず 動くようです

VSCode Preferences; Editor > Default Formatter

私のハマった状況では、space-before-function-paren をESLint拡張機能が正しく直したあと、typescript-language-featuresが間違っている形式に戻すような挙動になっていました
何が悪さをしているのかもわからなかったので、別マシンのまっさらなVSCodeでそれっぽいDefault Formatterを片っ端から設定して試してみて見つけました…

検索してもformatterが動かない人しか見つからなかったので、同じような症状に悩んでいる方の助けになれば幸いです

GitHubで編集を提案

Discussion