CopilotChatとNeovimでGitの効率を上げる

2024/06/10に公開

LazygitでCommit Messageを作成する

最近Git Commit MessageをCopilotChat.nvimに生成してもらっているのですが、その際の便利設定を紹介します。

CopilotChat.nvimについて詳しくは以下の記事を参照してください。
https://zenn.dev/nabekou29/articles/neovim-lazygit-commit-message

https://github.com/ryoppippi/dotfiles/blob/122370847176e62b17dc6c216a4488226e9cf075/nvim/after/ftplugin/gitcommit.lua#L99-L110

これは何をしているかというと

  • ftplugin/gitcommit.luaCopilotChatの設定を追加
  • gitcommitのバッファが開かれた時にCopilotChatを自動で起動

こうしておくことで

  • shell commandでgit commitを実行するとNeovimが立ち上がる
  • CopilotChatが自動で起動してCommit Messageを生成してくれる
  • c-yで生成されたCommit MessageをBufferに貼り付ける。気に入らなかったら <leader>cで再生成
  • :qqでBufferの保存とNeovimの終了をする。Commitが作成される

という流れでGitの効率を上げることができます。

また以前書いた記事では、git commitでNeovimが立ち上がる時に一緒にgit hooksを実行してくれるようにしています。
こちらと合わせて使うと便利でしょう。

https://zenn.dev/vim_jp/articles/3b5125f9e06bf9

git diffからPull Requestのコメントを作成する

Pull Request(以下PR)の文章も楽に生成させたいですよね。

そんなときは以下のようにするととても便利です。

用意するのは

です。

まず、ghでPRを作成します。

gh pr create --title "PR Title"

すると、bodyを入力するためにNeovimが立ち上がることでしょう。

ここで

:GinDiff main

とすると、mainブランチとの差分が表示されます。

これを全て選択して

:'<,'>CopilotChat generate PR desc from this diff to the main

を実行すると、差分からPRの文章を生成してくれます。

0.png

これをyankしてPR bodyのBufferに貼り付け、修正が必要な部分を修正して、Neovimを閉じるとPRが作成されます。
とっても楽ですね!

もしGinを使わない場合は

:enew 
:r! git diff main

で差分をvimに取り込めるので、同様にCopilotChatを使ってPRの文章を生成できます。

まとめ

CopilotChat便利

Discussion