diary

I like Hatena Star with a text selection.

2019-12-27

渋谷Vimランチをした。🍛 時々社外の人とランチ行くの良いですね。Rubyistともやりたい。

引きこもり的には目黒でやりたいけど、まあ渋谷までたまには出ていくのも良いかもしれない。

問題は、私が旗振り役をやりたくないというところにあって、多分一生やらない


今日は仕事納めで、ゆるゆると仕事をしていた。 社で出しているOSSのCIでRuby 2.7を使うようにしたり(Travis CIは2.7がきてた)、OSSにコメントしたり、だいたいOSSを触っていた。


rbsfmtが、ruby-signatureのテストを壊さないぐらいにはまともなコードを吐くようになった。 まだ課題は沢山残っている。

  • 長すぎる行を丁度いいところで改行する機能
    • どこを改行すると自然なのか
      • 構文的にはどこでも改行できるのだけど、人間的にはどこでもは改行したくない
    • 改行した時にtrailing commaを入れたい
  • コメントの対応
    • 今は雑にしかコメントを扱っていないので、コメントが消えたりする。
    • ちょっと難しいけど、意味不明な位置にコメントを書けないことにすれば、わりといけるのではと思っている。
# このコードに対して、
def foo: () -> void

# 次のようにコメントを書ける
def
  # ここにコメントを書ける
  foo
  # ここにコメントを書ける
  :
  # ここにコメントを書ける
  (
  # ここにコメントを書ける
  )
  # ここにコメントを書ける
  ->
  # ここにコメントを書ける
  void

soutaroさんにwriterというのがあることを教えてもらった。車輪の再発明をしていたっぽい。まあ楽しかったからいいか。 https://github.com/ruby/ruby-signature/blob/967a50fe5cfbd2de31f865445821c972852f8b1f/lib/ruby/signature/writer.rb

writerベースで書き直そうかな。smoke testがあるからそれを適用してみたら、writerのバグをいくつか見つけたので直した。

github.com

いい感じに改行をいれることを考えると、Writerの実装のままだとつらそう。