Open13

GitHub Copilot Chatメモ

eggceggc

copilot のみの場合はコードの提案しかしないけど、copilot chat はもう少し対話的に AI と情報のやり取りができる。

eggceggc

コミットメッセージの自動生成

設定するだけで git commit の時に数秒遅れてコミットメッセージを作ってくれる。これは便利。

(add-hook 'git-commit-setup-hook 'copilot-chat-insert-commit-message)
eggceggc

コードを送信してアクション (code helper functions)

範囲選択して (copilot-chat-review) みたいなコマンドを実行すると、コードレビューの結果を出力してくれる。色々バージョンがあって、テスト、ドキュメント、コード修正、コード解説などのコマンドがある。あまり精度が良いという感じはしなかった。ただ、大量のコードがあって不慣れな時とかには役に立ちそう。

eggceggc

チャットで質問 (basic function)

コマンド (copilot-chat-display) でウィンドウを開き対話できる。ほぼ ChatGPT と同じ UX だが、質問内容はソフトウェアエンジニアリングに制限されていて、関係ない分野の質問は回答してもらえない。

C-c C-c でメッセージ送信できる。

eggceggc

役に立った事例

  • csv のカラムの追加をしたときにテストの修正
  • OpenAPI の仕様書の作成
eggceggc

copilot-chat-ask-and-insert は新しいコードを書くときには役立つけど、今あるのをリプレイスはしてくれないので微妙かも

eggceggc

straight で copilot と copilot-chat をバージョンアップしたら下記のエラー。どうやら language server インストールしないといけないようになったらしい。

error: The package @github/copilot-language-server is not installed. Unable to find nil

下記でインストール。

M-x copilot-intall-server

また別のエラーが出た。

error: :pre-build command error in "org" recipe (error "Failed to parse ORGVERSION: (file-missing "Setting current directory" "No such file or directory" "/usr/eggc/.emacs.d/straight/repos/org/lisp/")")

straight で自動で org-mode をインストールして失敗しているらしい。詳細はわからない。ただ、org-mode は最新版じゃなくても良いので下記の設定を加えた。結果、エラーは出なくなった。

(straight-use-package '(org :type built-in))
eggceggc

テストコードを書かせる実験

  1. サンプルにしたいプロダクトコードと、テストコードのファイルを開く
  2. M-x copilot-chat-list でファイルを RET でマークする
  3. copilot-chat で「<file_name> のテストコードを書いてください」と依頼
  4. チャットバッファをアクティブにして M-x copilot-chat-send-to-buffer でテストファイルを指定して

コピペよりはちょっと効率良い

eggceggc

別の環境で開くと下記のエラーが発生

jsonrpc-error: request id=1 failed:, (jsonrpc-error-code . -1), (jsonrpc-error-message . Server died), (jsonrpc-error-data)

https://github.com/copilot-emacs/copilot.el/issues/383

調べてみると copilot-language-server のバージョンに対して nodejs が古いと出ることがあるようだ。

~/.emacs.d/.cache/copilot/bin/copilot-language-server --version
Node.js 20.x is required to run GitHub Copilot but found 19.7.0

asdf で最新版入れてみる

asdf install nodejs latest
asdf global nodejs 24.0.1

emacs 再起動して M-x copilot-install-server