RedHat Jboss Developer StudioでCodeLensを実現する

## 背景

CodeLensというのは、Microsoft Visual Studio に搭載されているいわば参照元列挙機能のことで、Visual Studio 2017以前のバージョンでは製品版（Professional版、Enterprise版など）でしかCodeLensの使用が制限されていました。つまり、お金を出さなければ使えない、リッチな機能というわけです。（Visual Studio 2019ではCommunity版でもCodeLensが使えるようになりました🎉）

↓Visual Studio CodeにおけるCodeLensの例
![introduce_codelens.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4734/23a2076a-4875-3297-9d2f-38661e2ecefc.png)


CodeLensを使おうと思ったら、Visual Studioか、オープンソースのVisual Studio Codeを使う以外選択肢がなかったのですが、この度、RedHat Jboss Developer StudioでもCodeLensを使用する方法を見つけたため、共有する次第です。

## 前提条件

今回の記事の対象となる、RedHat Jboss Developer Studioのバージョンは次の通りです。

Version: 11.3.0.GA

RedHat Jboss Developer StudioでCodeLensを実現するには、前準備として以下が必要です。

* JDK のインストール
* Maven 3+ のインストール（PATHも通してあること）

## インストール手順

1. RedHat Jboss Developer Studioをインストールします。
2. https://github.com/dhq-boiler/codelens-eclipse からソースコードをZipでダウンロードするか、gitでクローンします。

    ※なお、[dhq-boiler/codelens-eclipse](https://github.com/dhq-boiler/codelens-eclipse)プロジェクトはフォークしたプロジェクトであり、ビルドに必要な修正を加えたものです。元のプロジェクトは[angelozerr/codelens-eclipse](https://github.com/angelozerr/codelens-eclipse)です。[angelozerr/codelens-eclipse](https://github.com/angelozerr/codelens-eclipse)を崇めましょう。

3. ビルドします。ソースコードをダウンロードしたフォルダでコマンドプロンプトを開き、`mvn clean install`を実行します。

    ![mvn_clean_install.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4734/59118667-eede-1d0b-910c-e074896444f9.png)

    初回ビルドにはしばらく時間がかかります…。

    ![build_success.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4734/3209a1d2-d3d5-69a3-b400-65f90808bc1b.png)


    コマンドプロンプトで"BUILD SUCCESS"と表示されたら、次に進みます。

4. *.jarファイルをコピーします。

    **コピーするファイル**
    * codelens-eclipse\org.eclipse.codelens\target\org.eclipse.codelens-1.1.0-SNAPSHOT.jar
    * codelens-eclipse\org.eclipse.codelens.editors\target\org.eclipse.codelens.editors-1.1.0-SNAPSHOT.jar
    * codelens-eclipse\org.eclipse.codelens.feature\target\org.eclipse.codelens.feature-1.1.0-SNAPSHOT.jar
    * codelens-eclipse\org.eclipse.codelens.jdt\target\org.eclipse.codelens.jdt-1.1.0-SNAPSHOT.jar
    * codelens-eclipse\org.eclipse.codelens.jface.fragment\target\org.eclipse.codelens.jface.fragment-1.1.0-SNAPSHOT.jar
    * codelens-eclipse\org.eclipse.codelens.swt.fragment\target\org.eclipse.codelens.swt.fragment-1.1.0-SNAPSHOT.jar

    **コピー先フォルダ**
    RedHat Jboss Developer Studioインストールフォルダ\studio\plugins
    
    ![copied_binary_devstudio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4734/22167c4d-793d-130f-39e9-165927d8d2dd.png)


5. RedHat Jboss Developer Studioを`-clean`オプション付きで起動します。

    ```
    devstudio.exe -clean
    ```

    ![devstudio_clean.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4734/bfadf2d3-c039-b2fb-c30e-14ca61122ea9.png)

    ![display_codelens.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4734/62d4d067-e674-5957-a9d3-f0be14537129.png)

    このようにクラスの上部、またはメソッドの上部に`N references`と表示されればインストール完了です！

## 注意

このcodelens-eclipseプラグインは未完成であり、本家のCodeLensにはあってこのプラグインにない機能はあります。（例えば、"N reference"の部分をクリックすると参照元が一覧できるウィンドウが開く）このプラグインの開発は2017年10月に止まっていますし、これ以上期待するのはやめておいたほうが良さそうです。または、Eclipseのプラグイン開発に詳しい方がこのプロジェクトをフォークして引き継ぐかですね。