はじめに
普段はvimを使っていますが、今話題のエディタ Cursor の便利機能を試してみたいと思います。
VSCodeを使用している方であれば設定、拡張機能をそのまま引き継げるので違和感なく移行できると思います。
僕のVSCodeはvimのキーバインドで操作できるように設定していますが、問題なく操作できました。
僕のVSCodeの設定を記事にしているので良ければ見てみてください。
やること
今回はインストール手順は省いてCursorのAI機能を使ってPHPでコードを書いていこうと思います。
Command + K AIでコードを生成する
エディタ上でCommand + k
を押すとウィンドウが表示されます。
質問をするとAIがコードを生成してくれます。
試しに質問してみました。
僕: DBのtodosテーブルからデータ一覧を取得するクラスを生成してください。
言語指定はしていませんが拡張子から判断しているのか、PHPでクラスを生成してくれました!
単純なクラスではありますが問題なく生成されていると思います。
提案された内容がずれていた場合はFollow-up
で情報を渡すことで再提案をお願いできます。
1回目の質問をする
追加情報を入力して質問内容を補足する
Command + L チャットでAIに質問する
エディタ上でCommand + L
を押すとチャットからAIに質問をすることができます。
コードの生成だけでなくAIが解説もしてくれるので、複雑な処理であったり、新規でアサインした案件で全体を把握できていないプロジェクトなどで使うと便利です。
新規にプロジェクトにアサインした場合は、既にプロジェクトにアサインしているメンバーに質問する場面もあると思います。
CursorでAIとペアプロ感覚で実装できるので作業効率があがりそうです。
チャットでAIに質問してみます。
僕:
todosテーブルにレコードを追加するクラスを生成してください
AIが生成したクラスの解説とコードを提案してくれました!
Cursorは他のファイルを参照してくれます。
弊社ではクラス名をexecute
にする慣習がありますが、GetTodos.php
を参照してしっかり考慮してコードを生成してくれています!
カラムはAIがテーブル名からある程度推測してくれているようです。
カラム名を指定してみます。
僕:
todosテーブルのカラムはcontent, created_at, updated_at, deleted_atになります
指定したカラムを追加してクラスを再生成してくれました!
@ Symbols
Command + K
, Command + L
でAIでのチャットウィンドウで@Symbols
を入力すると
AIに参照するファイル、フォルダ等をあらかじめ指定することができます。
AIがより精度の高い答えを教えてくれます。
指定できるシンボル
チャットウィンドウで@
を押すとドロップダウンでサジェストを表示してくれます。
@Symbols | Description |
---|---|
@Files | 既存のファイルを参照 |
@Folders | 既存のフォルダを参照 |
@Code | 既存のコードを参照 |
@Docs | 公式ドキュメントを参照 |
@Lint errors | Lintのエラーをチェック |
@Git | GitHub上のブランチと差分を比較する |
@Codebase | ディレクトリ内全てのコードを参照 |
@Files
既存のファイルを参照してAIにコードを提案してもらったり、ファイルに書いてあるコードについて質問することができます。
今回はコードの内容を質問してみます。
僕:
@GetTodos.php このファイルについて教えてください。
@Folders
既存のフォルダを指定してAIにコードを提案してもらったり、フォルダ全体について質問することができます。
僕:
@Todo このフォルダについて教えてください
@Code
既存のコードをAIに参照してコードの提案してもらったり、コードのについて質問することができます。
実際に入力してみるとドロップダウンで参照するコードを表示してくれます。
プルダウンから選択するとファイルの中身が全て参照されるようです。
@Files
との使い分けが思いつかないのでAIに質問してみることにしました。
僕:
@Codeの使い方を教えてください
なるほど!
使い方に加えて具体的な使用例も提案してくれました。
ファイル内に複数の関数がある、部分的にコードの意味を知りたい、部分的にコードを再利用したい時に便利ですね!
@Code(Todo/AddTodo.php, 1, 16)
@Docs
公式ドキュメントを参照してAIがコードの提案と説明をしてくれます。
使用している言語、ライブラリ等の公式ドキュメントを参照して提案してくれます。
試しにPHPのenumについて質問してみます。
僕:
@PHP enumの書き方を教えてください
@Lint errors
AIがLintのチェックをしてくれます。
何も指定しない場合はPHPとして構文に問題ないかをチェックしてくれるようです。
コーディング規約を追加することで指定した規約に沿っているかも確認してくれます。
@Git
GitHubと連携することにより、差分をチェックしてくれるようです。
@Codebase
全体のコードを参照してAIがコードの提案と説明をしてくれます。
何もシンボルを指定しない場合はデフォルトで@Codebase
が使われているようです。
試しに質問してみます。
僕:
htmlでtodoの一覧を表示してください。
既存のクラスを使用してコードを提案してくれています。
また、セキュリティも考慮してあり、あくまでサンプルであることも一言添えられてます。
さすがです!
デバック
コードを書いている時にエラーがある場合は赤い波線が出ると思います。
マウスオーバーするとウィンドウが表示されて、エラーの内容とAI Fix in Chat
のボタンが表示されます。
クリックするとAIがバグの理由と修正案を教えてくれます。
Commond + Shift + E
がショートカットキーになっています。
最後に
いかがでしょうか?
今回試したのは簡単な内容でしたが、初めてアサインされたプロジェクトで全体像を把握するためのサポート、ペアプロ感覚で実装の手助けになると感じました!
サービスは 有料 なので若干の抵抗はありますが、効率を上げてくれるエディタだと思うので本格導入を検討したいと思います。
OpenAI APIと連携ができるようなので、すでに登録されている方はAPI連携で試してみるのもおすすめです。
少しでも参考になれば幸いです。
ありがとうございました!