何でも知ってそうな C# でぐぐれの人に .NET Framework の http://referencesource.microsoft.com や Roslyn の http://source.roslyn.io で使われている Browser Engine が公開されてないか聞いたら、実際にそのコードを書いた人からリプライを貰いました。
@shibayan @ufcpp I don't understand Japanese but maybe you should check this out: https://t.co/fzbBXUOs38
— Kirill Osenkov (@KirillOsenkov) 2016年8月21日
これだから Twitter は面白いですね。まさか本人から来るとは思わなかったし、とっくに OSS になっていたのに全然知らなかったということに絶望しつつも、これは Site Extension として公開すれば面白いと思ったので、パッケージングしてみました。
使い方は説明するまでもないですが、Azure Portal や Kudu から SourceBrowser Site Extension をインストールしておきます。この後のリポジトリを連携する前に行っておく必要があります。
Site Extension のインストールが終われば、NuGet から Microsoft.SourceBrowser のインストールと、カスタムデプロイスクリプトの設定が完了しているので、あとはこれまで通り GitHub などのソース管理からリポジトリを追加するだけです。
今回は Web アプリケーションでも何でもない WinQuickLook のリポジトリを選んで、Web Apps と連携してみました。普通に考えたら失敗しますが、Site Extension の力でビルドできるようになってます。
ログを表示しても、ちゃんと成功していることが分かりますね。
Windows アプリケーションを Web App にデプロイとか、それだけ聞くとかなり頭悪い感じしますが、デプロイ完了後に Web App を開くと Source Browser が立ち上がります。
ちゃんと検索やコードビューからのシンボルの参照などの機能が動作しています。
このようにシンボルの参照を表示する機能は最高に便利だと思うので、SourceBrowser の便利さを一休の社内でも全力でアピールしていきたいです。
Web Apps を作って、Site Extension をインストールして、GitHub などからリポジトリの連携を行えば、あとは勝手に HTML の生成などを行ってくれるので、かなりお手軽になったと思います。
作成した Site Extension のコードは GitHub にすでに公開してあります。
コード量が多くなった時などはどうなるか確認してないので、何かあれば Issue なり PR をお願いします。