Trouble 2022年06月16日 20:23 dprint で変数が消える const foo = !bar.これをフォーマットするとconst foo = !;になる普通なら構文エラーになるはずなのにエラーはなくて修正後に変数が消えてる修正後のコードも構文エラーバグ……かな?不完全な状態でフォーマットしようとしなければ問題ないからいいんだけど珍しい挙動だから気になった
Present 2021年05月12日 22:10 Prettier 2.3 Prettier 2.3 が出たようですhttps://prettier.io/blog/2021/05/09/2.3.0.html相変わらずメジャーアップデートでもないのに これまでのフォーマット済みコードに差分が出るような変更ありですフォーマッタの都合で余計な差分を出してほしくないですし そもそも変更が改善とは限らないんですよね (以前あった条件演算子のインデントとか)今回の変更は軽く見た感じだとどっちでもいい部分が多くそこまで困るほどではなさそうですけどアップデートの影響を受けたくないから結構古いバージョンで使い続けてるところもありますが 古いバージョンのままにしておくと新構文の対応やソースコードが壊れるような重要なバグの修正があったときに これらも受け取れずリスクもあります構文対応やバグ修正はフォーマットルールとは別に管理して どのバージョンのフォーマットルールを使うかを選択できるようになればまだマシなんですけどねPrettier は 長く議論が続いていて未だに確定せず意見が分かれるところでも頑なにオプションを導入しませんしそれでいて オブジェクトリテラルでは改行の有無は元のコードを尊重すると言ってるのに 配列リテラルやメソッドチェーンなどの他のところでは改行の有無を保持しないと矛盾もありますPrettier のニュースを見かけるたびに他に良さそうなフォーマッタが出てないのかと思うほどです以前から期待の dprint ですが まだ開発中としてバージョン管理下で出力を確認したほうが良いと書かれてる状態ですコミットは頻繁にあるようで 以前からスター数も 2 ~ 3 倍に増えてます以前は npm からインストールできましたが今では deprecated で インストールスクリプトを使う方法に変わってましたあと JavaScript フォーマッタは TypeScript フォーマッタに統合されて構文的には TypeScript コンパイラがサポートしているものが使えるようですそんなまだ安定してなさそうな状態ですが deno のデフォルトフォーマッタとして使われてましたそれくらい使われてるツールならそろそろ移行先として使い始めようかな