kachick / times_kachick

`#times_kachick channel in chat` as a public repository. Personal Note and TODOs
https://github.com/kachick/times_kachick/issues?q=is%3Aissue+is%3Aclosed
6 stars 0 forks source link

2022-06-17 - prettier 使ってると eslint の no-mixed-operators の邪魔をして来るので dprint に差し替える #164

Closed kachick closed 2 years ago

kachick commented 2 years ago

Extracted from https://github.com/kachick/times_kachick/issues/163

1行に記号を使った計算や条件が詰め込まれているようなコードだと、優先順位的に不要でも () つけまくりたくなるのに eslint ? prettier? さんが消しちゃうのでカスタマイズも探さず唯々諾々と消されてたけど納得してない。

この一点がストレスフルなのでちょっと調べてみたら、完全に prettier さん側の仕業だった。むしろ eslint には no-mixed-operators というオプションすら用意されてる。

https://github.com/prettier/prettier/issues/187 https://github.com/prettier/prettier/issues/7154 https://eslint.org/docs/rules/no-mixed-operators

括弧つけようよ、せめてオプション用意してくれ派は多いみたいだけど、 prettier は結構強固に跳ね返してるっぽい。それでも issue が needs discussion で5年放置されているというのは望みがあるのかどうか・・・ やっかいなのはオプションも無いという事実と、界隈は prettier にフォーマッタを統一しようとしているっぽいという辺りから eslint 側だけでこのオプションを有効にすると運用がめんどくさそうだという点・・・

kachick commented 2 years ago

deno をちょっと触る機会が合ったんだけど、標準で fmt を備えててその内部で使ってるらしい https://dprint.dev/ を使ってみると、ちょっぱやな上に余計な opinion をあんま押し付けてこない configurelable な感じで eslint の邪魔にもならなかった。

https://github.com/kachick/wait-other-jobs/pull/49 こんな感じに差し替えてみた。 ちょっと詰まったのは、 eslitnt-plugin-github の github/recommended が prettier 有効にしてくるので off にする必要が合った点。どこで enable になってるかが最初ピンと来なかった。 https://github.com/github/eslint-plugin-github/blob/06102b8d9f7df87d26a64ee4f02d77d75341084d/lib/configs/recommended.js#L120 これのせいで prettier が依存性から消えきらない感じなのでちょっとウッとはなる・・・

あんま見たこと無い trailing comma の付け方してくるのをチューニングしきれなかったんだけど、他はあんま diff を生じさせないように出来た。 別に prettier のフォーマット押し付けとやらも大体は不満に感じなかったんだけど、 no-mixed-operators の邪魔をしてくるのだけは我慢ならんかった。 markdown とか json のフォーマットもデフォルト設定でいい感じにやってくれて且つ早いので、 しばらく dprint 使ってみる。