読者です 読者をやめる 読者になる 読者になる

Plugin SDKにソースコードをアタッチする

プラグインを作るための環境構築を紹介したページにはIntelliJソースコードSDKにアタッチするという項目があります。

Check out the sources of IntelliJ IDEA Community Edition as described in Check Out & Build Community Edition

In the Sourcepath tab of the SDK settings, press the "Add..." button and specify the directory > into which you have checked out the sources of the Community Edition

Android StudioSDKに設定した場合は、Android Studioソースコードを参照したいので、その方法を調べました。

ソースコードを参照してみる

ソースコードをアタッチしていない状態でソースコードを参照してみます。

このプロジェクトは前回作ったサンプルコードです。

f:id:tomorrowkey:20150425115147p:plain

Notifications.Bus.notify()の実装がどうなっているのか参照してみましょう。
notify()と書かれたところにキャレットを合わせた状態で、

[右クリック] > [Go to] > [Declaration (Command+B)]

を選択します。

f:id:tomorrowkey:20150425114928p:plain

Notificationsクラスが表示されましたが、インターフェイスのみで実装は見ることはできません。(デコンパイラをインストールしていたら見れるかもしれません)
今回のゴールは、この実装が見れるようになることです。

Android Studioソースコードのダウンロード

SDKにアタッチするためのソースコードをダウンロードします。
Android Studioソースコードはここで見ることができます。

platform/tools/idea - Git at Google
https://android.googlesource.com/platform/tools/idea/

以下のコマンドを実行することによりソースコードをダウンロードできます。

git clone https://android.googlesource.com/platform/tools/idea

そんなに大きくないので5分ほどあればダウンロード完了します。

ソースコードをアタッチする

プラグイン開発に使用するIntelliJを起動します。

f:id:tomorrowkey:20150425115022p:plain

このような画面になっていると思います。
プロジェクトが開かれている場合は[File] > [Close Project]をしてこの画面を表示してください。

Project Structureを開きます。

[Configure] > [Project Defaults] > [Project Structure]

IDEA AI-133.988757 を選択している状態で、[Edit...]ボタンを押します。

f:id:tomorrowkey:20150425115042p:plain

[Sourcepath]を選択すると以下のような画面になります。

f:id:tomorrowkey:20150425115234p:plain

[+]ボタンを押した後に、先程ダウンロードしたAndroid Studioソースコードの場所を指定します。
これで設定完了です。

ソースコードを参照する

最初と同じようにNotifications.Bus.notify() の実装を見てみましょう。

f:id:tomorrowkey:20150425115127p:plain

無事実装を見ることができました。