カーソル行のPull Requestをブラウザで開くプラグインgit-trace.nvimを作った


git-trace.nvim というNeovimプラグインを作った。

inari111/git-trace.nvim

A Neovim plugin to jump from `git blame` to the pull request. Open PRs and files on GitHub

Lua 1 0

経緯

開発環境現状確認 (2026年1月版) - inari111 blog で書いた通り、GoLandからNeovimに乗り換え、メインで使っている。

GoLandでは Find Pull Request というプラグインを使用しており、GoLand上からPull RequestのURLをブラウザで開いていた。
チームで開発していると「ここのコードはどういう意図で追加されたんだろう?」と思うことがあり、使うことが多かった。
Neovimで開発していてもわざわざGoLandを起動し、Find Pull Requestを使ってPRを開いていたが、このままでは完全移行できそうにないなと思い、このプラグインを作るに至った。

git-trace.nvim について

⚠️ gh CLIをインストールしている必要がある

機能はシンプルで以下の通り。

  • :GitTracePR
    • カーソル行のPRをブラウザで開く
  • :GitTracePRCopy
    • カーソル行のPRのURLをクリップボードにコピー
  • :GitTraceOpen
    • カーソル行をブラウザで開く
  • :'<,'>GitTraceOpen
    • ビジュアルモードで行範囲を選択し、ブラウザで開く
      • GitHubのパーマリンクが開き、指定した行範囲がハイライト表示される(例:#L10-L20)。

開発はすべてClaude Codeで行った。

インストール

{
  "inari111/git-trace.nvim",
  cmd = { "GitTracePR", "GitTracePRCopy", "GitTraceOpen" },
  keys = {
    { "<leader>gp", "<cmd>GitTracePR<cr>", desc = "Open PR for current line" },
    { "<leader>gy", "<cmd>GitTracePRCopy<cr>", desc = "Copy PR URL for current line" },
    { "<leader>go", "<cmd>GitTraceOpen<cr>", mode = "n", desc = "Open file on GitHub" },
    { "<leader>go", ":'<,'>GitTraceOpen<cr>", mode = "v", desc = "Open selection on GitHub" },
  },
  config = function()
    require("git-trace").setup()
  end,
}

おわりに

欲しいものをシュッと作れるのはなかなか楽しい。

inari111/git-trace.nvim

A Neovim plugin to jump from `git blame` to the pull request. Open PRs and files on GitHub

Lua 1 0