個人的なメモ

Tomohiro Suzuki @hiro128_777 のブログです。Microsoft MVP for Developer Technologies 2017- 本ブログと所属組織の公式見解は関係ございません。

GitHub Copilot Chat の AI-Powered Rename Suggestions を試してみた(ら詰みかけた話)

AI-Powered Rename Suggestionsを試しました。以下のブログで紹介されていた記事です。
devblogs.microsoft.com

動作させるのに地獄を見る…

この機能、2023/12/24 現在、Visual Studio 2022 Preview Version 17.9.0 Preview 2 (この時点での最新版)では不具合があり動作しません。

この issue にやられました。基本的に Preview はリリースされたらすぐインストールするので Preview 2 にアップデート済みでした。

さらに、以下の注意書き(Preview 2 では不具合があり動作せず、Preview 1 をでは動作する)を読んでいなかったために、

自分の Preview で動作しないので( 17.9.0 Preview 2 か Preview 1 かは全く意識していなかった)、ひたすら原因を調べた結果 Visual Studio から GitHub Copilot Chat の APIをコールしていないように見えました。少なくとも GitHub Copilot Chat 側の問題ではなさそうと分かりました。

Preview 2 動作していない。そもそも、API リクエストが投げられていない

Preview 1.1 正常動作。API リクエストとレスポンスが確認できる

そこで、Visual Studio の問題かと思い Preview 2 を一旦アンインストールし、再インストールし、再度試しましたがやはり動作しません。

ここで、再度 Microsoft のブログを再度読み直し、 Preview 2 では不具合があり動作せず、Preview 1 をでは動作することを認識しました。

Visual Studio 2022 Preview Version 17.9.0 Preview 2 -> Visual Studio 2022 Preview Version 17.9.0 Preview 1 のロールバックを行おうとしましたが、一度アンインストールして、再インストールしているため、以前のバージョン自体が PC 内に存在せずロールバックできないことに気づきました(詰んだか??)

Visual Studio 2022 Preview Version 17.9.0 Preview 1 のインストーラーを取得できないか調査。それらしきURLに気付き、ダウンロードを試したところ、MS アカウントの認証を求められ、権限がないと拒否されました(もう詰んだと思いました)。

ここで、Mac の Parallels の Windows 上の Visual Studio 2022 Preview があることに気づき、確認したところ、Visual Studio 2022 Preview Version 17.9.0 Preview 1.1 にロールバックできることが判明しましたので、すぐロールバックしました。

公式Blog での記載は Preview 1 であったため、Visual Studio 2022 Preview Version 17.9.0 Preview 1.1 で操作するか一抹の不安はありましたが、試したところ運良く動作!

ここまで6時間溶かしました。疲れた…

教訓:説明は一字一句逃さず読め!!

一応、 Visual Studio Blog に「Visual Studio 2022 Preview Version 17.9.0 Preview 1 のダウンロードURLはどこにあるの」とコメントは残しました。

設定

拡張機能 GitHub Copilot Chat 0.1.1986.61475 以上

[ツール]->[オプション]->[GitHub]->[Copilot チャット]->[Enabele rename suggestions]に✅

使ってみてどうだった…

前置きが長くなりました。動作を試してみましたが、時間溶かしすぎてあまり調べられていません。(追加調査します)

最近、GitHub Copilot / GitHub Coplilot Chat でポーカーを実装してみたので、そのコードで検証してみました。
www.docswell.com

自分の手持ちのカードで「保持」としなかったカードを交換するメソッド、ChangeCards() メソッドのリネームを提案してもらったところ、以下の感じになりました。

確かに、このメソッドのネーミングは、Change より Swap の方がしっくりきます。

次に、自分の手持ちのカードを表示するメソッド、ShowHand()メソッドのリネームを提案してもらったところ、以下の感じになりました。

こちらも、手札の役の開示というよりは、カード自体を表示するだけなので、ShowCards() の方がいいかもしれません。

これはネーミングで悩んだ時にまずは多少いい加減でもいいから命名して後から提案してもらうと、効率が良さそうですし、リファクタリング時にひどいネーミングになっている場合のリネームに役に立ちそうです。

これはかなり使える機能ではないでしょうか。
 
 

ちょっと不完全燃焼に終わったのでもう少し調べてみました。
hiro128.hatenablog.jp