copilot-emacs/copilot.el

An unofficial Copilot plugin for Emacs.

何を解決するか

copilot.el は、GitHub Copilot の AI ベースのコーディング支援をエディタ内に直接統合する Emacs プラグインです。エディタと別々のブラウザや AI ツールの間で切り替える必要がなく、リアルタイムのコード補完、インタラクティブなチャットインターフェース、および Emacs 内での自動コードレビューとコミットメッセージ生成を提供します。

動作方法

このプラグインは jsonrpc.el を使って JSON-RPC を介して公式の GitHub Copilot 言語サーバーと通信します。標準の LSP クライアント(例:eglot)を回避し、Copilot プロトコルの非標準的な要素を処理し、すべてのバッファとプロジェクトで単一のグローバルサーバーを維持します。

対象ユーザー

GitHub Copilot サブスクリプションを持っている Emacs ユーザーで、AI ベースのコーディング、チャットベースのリファクタリング、および好みのエディタ内での自動ドキュメント作成を希望する方。

主な特徴

  • インライン補完: リアルタイムのコード提案用のゴーストテキストを提供。
  • インタラクティブチャット: ストリーミング応答をサポートする専用チャットバッファ、複数行メッセージの対応、現在のバッファと同じコンテキストを維持。
  • エージェントモード: Copilot がシェルコマンドの実行、ファイル編集、ワークスペース検索(ripgrep による)などのツールを実行可能。
  • ワンショットタスク: コードのレビュー、修正、最適化、ドキュメント化、ユニットテストの作成など、迅速なコマンドを提供。
  • コードレビュー: ネイティブな Copilot Code Review を統合し、未コミットの変更や特定の領域に対して構造化されたフィードバックを提供。
  • コードベースのユーティリティ: ステージングされた変更からコミットメッセージを生成し、コード再書き換えの差分スタイルプレビューを提供。
  • セッションの永続化: Emacs の再起動後もチャット履歴を保存・復元可能。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト