GitHub のプルリクで blame する ghpr-blame.vim つくった

先日 kazuho さんが git blame でプルリクを表示するスクリプトをつくってらっしゃって,便利そうだったので Vim プラグインをつくってみました. ファイルの各行がどのプルリクで変更されたかを確認し,気になるプルリクはその場で詳細を確認することもできます.

github.com

スクリーンショット

使い方

インストールはお好みの Vim プラグインマネージャを使うなどしてください.

1. ファイルを開いて :GHPRBlame を実行

:GHPRBlame を実行すると裏で git-blame が走り,カレントバッファのファイルの各行のプルリク情報を git blame --line-porcelain で引っ張ってきます. 引っ張ってきた情報を元にカレントバッファの左に細長い一時バッファが開き,そこに各行に紐付いたプルリク番号が表示されます(プルリクに紐付いていない行は何も表示されません). これによって,各行がどのプルリクによって入ったものかが分かります.

2. プルリクの詳細を見たい行で <CR> を押す

プルリクの詳細が見たい位置にカーソルを移動し,<CR>g:ghpr_show_pr_mapping で別のキーにも変更可能)を押すと,カレントバッファのウィンドウの右か下に一時バッファが開き,そのプルリクの情報(タイトル,URL,作成者,マージされた日付,本文)を確認することができます. <CR>を押した際に裏で GitHub API を叩いて対象のプルリクの情報を引っ張ってきているので,表示に少し時間がかかります.一応キャッシュしているので2回目以降同じプルリクは高速に表示できます.

3. 終了する

一番左のプルリク一覧のウィンドウを閉じると自動で右側のウィンドウも閉じ,キャッシュや<CR> マッピングを削除します.もしくは :GHPRBlameQuit で明示的に終了することもできます.

まとめ

ファイルの各行の変更をプルリク単位で調べられる ghpr-blame.vim をつくりました.これ系のは tig みたいに TUI なツールのほうが便利かなと思いつつ,結局コードを読む時は Vim で開いて追いながら読むことが多いので Vim プラグインとしてつくってみました. もし気になったらお試しください.