かんがるーさんの日記

最近自分が興味をもったものを調べた時の手順等を書いています。今は Spring Boot をいじっています。

共有ライブラリを管理するために Sonatype の Nexus Repository Manager OSS を使用する ( 番外編 )( IntelliJ IDEA 2016.3 の新機能を試してみる )

目次

  1. 前準備
  2. Fira Code font を試してみる
  3. Memory view を試してみる
  4. Parameter hints を設定してみる
  5. Semantic highlighting を設定してみる
  6. 上記以外に気づいた点のメモ

手順

前準備

機能を試すのにある程度実装規模の大きなプロジェクトを使いたいので、ksbysample-webapp-lending プロジェクトを使用します。

  1. IntelliJ IDEA のメインメニューから「File」-「Close Project」を選択して、現在開いているプロジェクトを閉じます。

  2. ksbysample-webapp-lending プロジェクトを開きます。

  3. IntelliJ IDEA のメインメニューから「File」-「Project Structure...」を選択して「Project Structure」ダイアログを開いた後、画面左側の「Project Settings」-「Project」を選択して、画面右側の「Project SDK」で「1.8.0_112」を選択します。

    f:id:ksby:20161127105934p:plain

  4. Gradle projects View のツリーで「Tasks」の下に「other」しかない状態になっているので、左上にある「Refresh all Gradle projects」ボタンをクリックして更新します。

    f:id:ksby:20161127110302p:plain

  5. clean タスク実行 → Rebuild Project 実行をした後、build タスクを実行して "BUILD SUCCESSFUL" のメッセージが表示されることを確認します。

    f:id:ksby:20161127112120p:plain

    ※上のキャプチャにはありませんが、実際には groovy のライブラリを大量にダウンロードしていています。キャプチャを取る前に何度かリトライしており、その時にダウンロードされています。

Fira Code font を試してみる

IntelliJ IDEA のメインメニューから「File」-「Settings」を選択して「Settings」ダイアログを開いた後、画面左上の検索フィールドに "Font Ligatures" と入力します。

画面左側で「Editor」-「Colors & Fonts」-「Font」が選択されますので、画面右側で以下のように設定します。

f:id:ksby:20161127113500p:plain

  • 「Primary font」に「Fira Code」を選択し、フォントサイズを 11pt にします(このフォントは 12pt だとちょっと見にくいです)。
  • 「Enable font ligatures」をチェックします。Warning アイコンが出て以下の内容が表示されますが、一旦無視します。

    f:id:ksby:20161127114947p:plain

そもそも "Font Ligatures" って何だろう?と思ったら Qiita に以下の記事がありました。全然聞いたことがなかったのですが、最近はそんな傾向があるのでしょうか?

src/main/java/ksbysample/webapp/lending/web/LoginController.java を開いてみると以下のような感じで表示されます。

f:id:ksby:20161127120109p:plain

  • != とコメントの // は見やすい、と思いました。
  • ==--> はすぐには良さが分かりませんでした。
  • リガチャではなくフォントの話ですが、フォントサイズが 12pt で見やすくない(ちょっと詰まった感じで表示されてしまう)のが個人的には残念です。自分のノートPCだと 12pt あった方が見やすいと思っているので。

しばらくはこのまま使ってみたいと思います。

Memory view を試してみる

まずは Plugin をインストールします。IntelliJ IDEA のメインメニューから「File」-「Settings」を選択して「Settings」ダイアログを表示します。

画面右側で「Plugins」を選択した後、画面左側の「Browse repositories...」ボタンを押します。

f:id:ksby:20161127124035p:plain

「Browse Repositories」ダイアログが表示されますので、画面上部の検索フィールドに "JVM Debugger Memory View" と入力します。画面左側のリストに「JVM Debugger Memory View」が表示されますので、画面右側の「Install」ボタンをクリックします。

f:id:ksby:20161127124601p:plain

プラグインがダウンロードされた後、IntelliJ IDEA を再起動します。再起動すると、画面右側に「Memory View」が表示されます。

f:id:ksby:20161127125514p:plain

Memory View を表示した後、「Debug with JRebel 'Application'」ボタン(「Debug 'Application'」ボタンでも可)をクリックして Debug 実行します。起動しただけでは Memory View には何も表示されませんね。

f:id:ksby:20161127125848p:plain

src/main/java/ksbysample/webapp/lending/web/admin/library/AdminLibraryController.java の deleteAndInsertLibraryForSearch メソッドに breakpoint を設定した後、画面を操作して breakpoint で処理が止まるところまで進めます。

breakpoint で処理が止まると Memory View に現在作成されているクラスとインスタンス数が表示されました。

f:id:ksby:20161127130409p:plain

java.lang.String をダブルクリックするとインスタンス一覧が表示されます。

f:id:ksby:20161127131350p:plain

breakpoint の1行上で LibraryForsearch libraryForsearch = new LibraryForsearch(); をしているので LibraryForsearch で検索してみると、1インスタンス作成されていることが分かります。

f:id:ksby:20161127130929p:plain

Tomcat を停止します。Memory View はこのまま入れておきます。

Parameter hints を設定してみる

IntelliJ IDEA のメインメニューから「File」-「Settings」を選択して「Settings」ダイアログを表示します。

画面左上の検索フィールドに "Show parameter name hints" を入力した後、画面左側で「Editor」-「General」-「Appearance」を選択します。画面右側を見ると「Show parameter name hints」が既にチェックされていました。デフォルトでチェックされるようです。

f:id:ksby:20161127133344p:plain

src/main/java/ksbysample/webapp/lending/service/file/BooklistCsvFileService.java を開くと、文字列リテラルと null を引数に渡しているところに変数名が表示されます。

f:id:ksby:20161127161412p:plain

これは便利なんでしょうか。。。? 便利そうな気がしますが、ちょっとすぐには分かりません。このまま設定してしばらく様子を見たいと思います。

Semantic highlighting を設定してみる

IntelliJ IDEA のメインメニューから「File」-「Settings」を選択して「Settings」ダイアログを表示します。

画面左上の検索フィールドに "Semantic highlighting" を入力した後、画面左側で「Editor」-「Colors & Fonts」-「Language Defaults」を選択します。画面右側の中央のリストで「Semantic highlighting」が選択されていますので、その右側に表示されている「Unique color for each parameter and local variable」をチェックします。

f:id:ksby:20161127163626p:plain

src/main/java/ksbysample/webapp/lending/web/lendingapproval/LendingapprovalController.java を開いてみると、メソッドの引数の変数に別々の色が付いています。ただし、背景を白色にしていると色が変わっていることが分かりづらくて全然便利な機能に思えませんでした。。。

f:id:ksby:20161127164326p:plain

これ、Darcula にしないとあまり意味がない機能のような気がします。「Settings」ダイアログで Darcula に変更してみます。Scheme を変更すると「Unique color for each parameter and local variable」のチェックも付け直す必要があります。

f:id:ksby:20161127164532p:plain

今度はさっきよりは色違いが分かりやすいです。

f:id:ksby:20161127165016p:plain

あまり背景が黒のテーマは好みでなかったので Darcula にはしていなかったのですが、Semantic highlighting という機能も出てきたので、しばらくこのまま Darcula を使ってみたいと思います。

上記以外に気づいた点のメモ

  • Spring Initializr でプロジェクトを作成する時に Dependencies の選択画面が変わっていました。ぱっと見て思いましたが、Cloud 系が増えすぎです。Spring Boot が出て Spring Framework が使いやすくなったかなと思いましたが、この画面を見ると絶対初心者は訳分からないですよね。。。

    f:id:ksby:20161127170438p:plain

  • Spring Initializr でプロジェクトを作成して最初に開いた時に表示される「Import Module from Gradle」ダイアログで「Gradle JVM」の選択肢に「Use Project JDK」が追加されて、かつデフォルトで選択されていました。毎回手動で変更していたので、個人的にはこの変更は嬉しいです。

    f:id:ksby:20161127171213p:plain

  • Spring Initializr でプロジェクトを Gradle Project として作成てプロジェクトが開き終わった時に、画面右側に「Gradle」アイコンが出ませんでした。IntelliJ IDEA を再起動すると出てきます。

    f:id:ksby:20161127172047p:plain