元々Prettierを使ってましたが、HTMLの謎の改行に嫌気が差し、設定でも上書きできなかったのでBeautifyに乗り換えました。
ただ、Beautify は長らくアップデートが止まっており、JSのアップデートに追いついていません。
特に、VSCode上からインストールしただけだとオプショナルチェーンとnull合体演算子に含まれる ?
の両側に勝手にスペースを開けられます。
// before
a ?? b;
array[0]?.func();
// after(構文エラーになる)
a ? ? b;
array[0] ? .func();
流石におかしいだろうと思い、issueを見に行ったら有りました。
Breaks optional chaining (?.) and Nullish coalescing operator (??) · Issue #401 · HookyQR/VSCodeBeautify
Update to actual js-beautify version? · Issue #346 · HookyQR/VSCodeBeautify
どうやら、Beautifyに使われている js-beautify
自体のバージョンを自分の手で上げる必要があるとのこと。
調べて出てきた下記コマンドを実行
# beautify の拡張機能本体のディレクトリへ移動
$ cd ~/.vscode/extensions/hookyqr.beautify-1.5.0
# パッケージアップデートする
$ npm update
# アップデートされたか確認する( 1.11.0 以上ならOK)
$ npm list | js-beautify
├── js-beautify@1.14.0
アップデート完了後にVSCodeを再起動(リロード)するときちんと動くようになってます。
パッケージアップデートが済んだことで大きな不満は無くなりましたが、メンテナンスが止まっていると問題も出てきやすいですね…
Prettierは今もアクティブにアップデートされ続けているので、きちんとissue出して将来的にはまた戻る方針の方が良さそうです。