March 27, 2015

最近に直した Scaladoc のバグ

また久しぶりに Scaladoc のバグを直している。README.md に IntelliJ IDEA むけの設定方法が書いてあるので、それに従って .ipr ファイルを作ってみたら何事もなく補完もできるようになってしまい、なかなか2015年らしくて良い。

Scaladoc に関わるようになったのは2010年ごろで、そのころに比べると Scala もだいぶ世の中で使われるようになった。私自身は、いまだに仕事で書く機会には恵まれなくて残念だけど。

私は、働く会社やチームを、プログラミング言語やプラットフォームで選んだことがない。必要ならなんでもやりますよ、というのは悪くない心がけだと思うけど、一方で、専門分野というのを作り損ねてしまったようにも思う。

Make generated HTML files POSIX-compatible text files

POSIX 的には、テキストファイルの最後には改行が必要なんですよ、というのでつけてみた。

Fix “Order by Alphabetical” button

メンバをアルファベット順にソートするボタンが壊れていたので直した。

Scaladoc の JavaScript 部分は、jQuery で DOM を書き換えまくる感じで、ちょっとつらい。その一方で、Scala のレポジトリに React とか Angular を足すのもちょっと微妙かなというので、平和な妥協点というのを見いだせずにいる。

img elements must have an “alt” attribute

Scaladoc の HTML を valid な状態に近づけるべく、img 要素に alt をつけるようにしてみた。Enumeration とパターンマッチをつかっておしゃれな感じにできて良かった。

Don’t define the wiki syntax in multiple places

Scaladoc は、Scala のソースコードを parse するのに Scala 本体のコンパイラを使っていて、前準備の一部はコンパイラのツリーに入っている。といってもレポジトリはどちらも同じなので、名前空間とフォルダが分かれているだけだけど。

で、コンパイラ側でどのくらい前準備をするのか読んでいたら、なぜか Wiki 記法が定義されていてやばくて、でも使っているメソッドは 以前に Paul Phillips さんが消していたので、じゃあ実装も消したいという話。

Fix @inheritdoc warning on accessors

@inheritdoc について警告されるけど、実際の HTML は大丈夫なのでなんなの? という話。

var bar が bar と bar_= をつくっているけど、継承元には bar しかないのがだめだったっぽいので、bar_= に関しては警告を消すようにしてみた。本当は bar_= について丸ごと処理を省けるような気もする。