sosukesuzuki.dev

July, 03 2020

6 月の OSS 活動

5月いっぱいで、それまで月 100 時間くらいやってたインターンをやめたので OSS に多くの時間を割くことができるぞ!!!と意気込んでいたんですが、その割にはサボっちゃいました。無念。 しかも 6 月末から新しいお仕事を初めてしまったので、7 月はどのくらい時間を使えるかわからないですねえ、頑張っていきたい。ただその会社では OSS 活動が割と推奨されてるので少なくともモチベは維持できそうだと思ってます。みんな褒めてください。

海外出たことなくてパスポートがなく、運転免許もないので GitHub Sponsor を始められていないのですが、僕を個人的に応援したい人がもしいたらそうすけ応援セット(ほしいものリスト)から水とか米を送ってくれると大変モチベーションに繋がります。

Prettier

めんどくさくなっちゃったのでスクリーンショットで...。

prettier-contributions

一番下に Definitely Typed があると思うんですが、これは Prettier の doc builder の一部が型定義になかったので追加したやつです。

2つまだオープンになっている PR がありますが、これらは影響範囲が大きいので慎重にすすめています。もう Prettier を壊したくないので!

一番上に大きく表示されているものは、二項演算子とコメントを組み合わせたときにインデントが崩れるというもの。

https://github.com/prettier/prettier/pull/8476

a +
  a + // comment
  a;

このコードが

a +
a + // comment
  a;

こんな風に修正されてしまう。このバグは今まで報告されていなくて、他のメンテナーがテストケースを作ってるときに発見したみたいなんですが、多分パイプライン演算子が入ってきたらこういうコードが頻繁に書かれる気がするので、パイプラインが ECMAScript とか TypeScript に入る前に直せてよかったですね。

他にも、まだ実装途中なんですがちょっと大きめの修正をやっています。

https://github.com/prettier/prettier/pull/8554

三項演算子とコメントを組み合わせたときに、コメントが意図に反して移動してしまうというもの。

test
  // comment
  ? first
  : second;

こんなふうに、条件と ? の間にコメントをいれると

test
  ? // comment
    first
  : second;

? のあとに移動してしまいます。これは前々から報告があったもので、だいぶ前に実装して PR を出して放置してたんですがやっぱりやったほうがよさそうだったのでその PR を閉じて新しく始めたものです。これを実装してテストーケースを書いていく中でいくつか三項演算子とコメントを組み合わせたときのフォーマットのバグを発見したので、それらも修正しました。

あと日本語話者の方々からしたら興味深い問題であろう、Markdown のラテン文字と日本語の間にスペース入っちゃう問題も水面下で進行中です。僕は前々からこの挙動はおかしいから直すべき、という立場なんですが、個人的にはラテン文字と日本語の間にはスペースを入れるスタイルを好んで使っています(あくまで個人が好きに選択すべきであって、Prettier が干渉すべき問題ではない。それを縛りたいのであれば textlint 等でやるべき、という主張です)。

そしたら他のメンテナーから、「(君いつもラテン文字と日本語の間にスペース入れるのはおかしいって言ってるけど)実際ツイートではそういう風に書いてるじゃん...、どういうこと...?」という反応を頂いておもしろかったです。

mizchi/mdbuf

mizchi さんが作ってるシンプルなマークダウンエディタ。ブラウザですぐ開けて動作も軽快なので好んで使っています。自分は昔Boostnoteっていうののメンテナンスをしていたことがあって、そのときにマークダウンエディタについて色々考えたんですが、複雑なエディタは重かったり、複雑すぎてバグっていてメンテナンスがきつかったりとか色々あって、速くてシンプルなものを選ぶようになりました。自分でも作ったりしたんですが、そういった自作を含めても mdbuf が一番使いやすいので愛用しています。

このブログや Prettier のチェンジログとかも mdbuf で書いていて、本当によく使っているんですが、チェンジログを書いてるときに vue のコードブロックを書くと止まっちゃうことに気づきました。それではちょっと困るので、vue コードブロックのシンタックスハイライトを無視するようにしました。

https://github.com/mizchi/mdbuf/pull/13

余談ですが、GitHub のリポジトリページに contributors という項目があるんですが、そこに mizchi さんと syake さんと僕で並んでしまっていて、なんかちょっと申し訳ない気持ちになっています。(syake さんは favicon とかを修正してくれたみたいです。タブから探すのがめっちゃ楽になってすごくありがたいです。)