💬

intelliJ IDEAで行ごとの直近の差分を手軽に確認する

2022/05/29に公開

ここ最近、intelliJ IDEAを使い始めてちょっとしたTIPSがあったので投稿してみる。

実現すること

エディタ上で行ごとの変更を確認し、
サクッとdiffを見に行ってスっと元の場所に戻る

というムーブの実現。

これができると何が嬉しい?

  • 行単位で最近変わった部分に気づけてすぐに確認できる
  • トラブルシューティングで怪しい箇所の変化点を素早く探れる
  • プルリクをレビューする際に差分だけでなくコード全体をとらえながら進められる
  • 優秀な先人のコードをサクッと確認し参考にできる

やったこと

  1. Annotate with Git Blameのキーボードショートカットの追加
  2. マウスへキーストロークの割り当て

それぞれについて説明する。

1. Annotate with Git Blameのキーボードショートカットの追加

Annotate with Git Blameとは?

下の画像の赤枠部分のこと。

各行ごとに最終変更日時&最終変更者が表示されている

最終変更日時&最終変更者の部分をクリックすると、diffの画面が開く

この機能は、intelliJ IDEAにデフォルトで備わっているが、自分で呼び出さないと開かれないので知らない人もいるかもしれない。

Annotate with Git Blameの通常の開き方

行番号を右クリックし、コンテキストメニューの[Annotate with Git Blame]を選択すると開くことができる。

問題点

Annotate with Git Blameはファイルごとの設定になるので、ファイルを移動するたびにまた開かねばならない。

実際のトラブルシューティングなどでは色んなファイルを開きながら実施するため、その度にいちいち右クリックから開くのは面倒だ。

加えて、私は右クリックアレルギーのため、作業に右クリックが入った途端にものすごくストレスを感じてしまう。

ならばキーボードショートカットやろうと当然なるのだが、Annotate with Git Blameにはショートカットがデフォルトでは割り当てられていない。

なので、まずはショートカットを割り当てる。

ショートカットの割り当て

下記の手順で行う。

  1. intelliJ IDEA > Preferenceを開く
  2. Preference画面のSearchにてKeymapを入力し、選択
  3. Keymap側のSearchにてAnnotateを入力し、Git > Git > Annotateをダブルクリック
  4. Edit ShortcutsでAdd Keyboard Shortcutを選択
  5. ショートカット設定したいコマンドを入力し、OKを押す

ちなみに私はShift + Ctrl + Aに割り当てている。

よし、キーボードのショートカットからAnnotate with Git Blameを開閉できるようになった。

2. マウスへキーストロークの割り当て

ショートカットの限界

キーストロークからAnnotate with Git Blameが開し使っていく中でいくつか問題を感じた。

問題1. マウスによるクリックは必須

対象箇所のdiffを確認するためには、Annotate with Git Blameの画面で対象行をクリックしなければならない。
色々調べてみたのだが、このクリック動作にはショートカットを割り当てることができないようで、別の手段として対象にフォーカスを移動させてEnterを押すといった形の合わせ技も考えたがどうにもキーボード経由でこの部分にフォーカスを当てることができなかった。

そのため、マウスによるクリック動作は必須。

問題2. キーボードによるEnterキー押下も必須

Annotate with Git Blame上で対象の行をクリックしたのち、
すぐにdiffが表示されるわけではなく、
いったんボトムメニューのGitにてツリー上の対象コミットとファイルが選択された状態になる。
diffを表示するにはEnterを押してようやくdiffが表示される。

問題1で右手はマウスを持たねばならなくなってしまったが、問題2で右手はこのタイミングでEnterをを押しにいかねばならないのだ。八方塞がりだ。

できるだけフォームを崩したくないので、悩ましかったがマウスにキーストロークを割り当てる方法を取ることにする。

これにより、一連の動作の中で右手はマウスで完結できるようになる。

マウスへのキーストロークの割り当て

このセクションはLogicool製品のマウスを使用している人限定となる。私はLogicoolのMx Master 3を愛用しているが、Logi Optionsで設定可能ならマウスなら他でもいける。

以下が設定の手順。

  1. Logi Optionsを開く
  2. アプリケーション設定でIntelliJ IDEAを選択
  3. 使い勝手の良いボタンにキーストローク:Enterを割り当てる
      私はホイールクリックに割り当てている。

アプリケーション単位で設定分けれるのありがたい。
これにて完了。

おわりに

これにより最小限の動作で理想のムーブが実現できた。

ムーブの内容

  1. ファイルを開く
  2. Annotate with Git Blameを開く <- 左手:Shift + Ctrl + A
  3. コードを読む <- 右手:マウスでスクロール
  4. 気になる行のAnnotate with Git Blameをクリック <- 右手:マウスでクリック
  5. diffを表示  <- 右手:マウスでホイールクリック
  6. diffを閉じる <- 左手:ESC or 右手:戻るボタンクリック

コード内を自由に駆け回り、過去と現在を行き来する様はさながら時を駆ける少女のようだ。

もっと一発でサクッとひらけたらなという想いは少しあるものの、現時点でもなかなか快適なので満足。プラグインとか作ればもっとシンプルにできるのかな。

最後まで読んで頂き、ありがとうございました。
快適なエンジニアライフを!

Discussion