Open6

Github Copilot 使ってみる

メモメモ

メモ

  • なんか一回使おうとしたときうまくいかなかったのは、GitHub Copilot と GitHub Copilot Chat の 2 プラグインを導入する必要あるのに、中途半端に前者しか入ってなかったせい (?) みたいで、あとで改めて触ってみたら普通に動いた
  • GitHub Copilot Voice というのも試してみたい
  • 選択範囲を Copilot に処理させようとしたけどうまくいかなかった
    • 「空行ではない行かつ次の行が空行ではない行の末尾に2つの半角スペースをつけて」
    • "Oops, response got filtered. Please rephrase your prompt." となった
    • 英語のラップのリリックを変換させようとしたので、Explicit な言葉が引っかかったとかだろうか
      • そんなに激しい感じのリリックではないやつだが…
メモメモ

VSCode ではじめる GitHub Copilot 活用術 #VSCode - Qiita を読む。

  • 最初にほしいプログラムの概要を書いて、Tab + Enter でひたすら書かせていく例
    • どこが終わりかを認識することはできるのかな
  • cap = cv2.VideoCapture(0) だと AV -> HDMI -> USB 入力してる VHS 映像のほうが認識されて、真っ黒になってしまったので、cap = cv2.VideoCapture(1) としたら外付けカメラの映像を拾ってくれた
  • 画像の左右反転、コメントで途中に入れたい処理を追加する例
  • なんか Command + Shift + I でインラインチャットうまく起動しないな
    • と思ったら、Command + I でインラインチャット、Command + Shift + I で全体のチャットを開くみたいだ
  • テストを別ファイルで作りたいときはどうすればいいんだろ
  • 最初 .md ファイルで作動しなかったけど、拡張機能の設定で markdown=true にしたら動いた
メモメモ

GitHub Copilot のドキュメント - GitHub Docs を読む。

メモメモ

人に説明する用のレジュメ

  • GitHub Copilot
    • テキストエリア内で補完してくれるやつ
    • 機能一覧 (GitHub Copilot の概要 - GitHub Docs 参照)
      • 候補の表示 (自動で表示された候補を Tab で採用、ESC で不採用)
      • 代替候補の表示 (Option + [])
      • 候補を単語ごとに適用 (Command + ->)
      • 新しいタブに複数の候補を表示 (Ctrl + Enter)
      • フレームワークの使用
      • 有効化 / 無効化
  • GitHub Copilot Chat
    • チャット経由で色々やってくれるやつ
    • チャットできる場所は下記 3 箇所
      • 左メニューチャット
      • 全体チャット (Command + Shift + I)
      • テキストエリア内のインラインチャット (Command + I)
    • よく使う機能はテキストエリア内からコンテキストメニューで利用可能
      • これを説明する (/explain) -> 範囲選択してる必要あり
      • これを修正する (/fix) -> 範囲選択不要
      • ドキュメントを生成する (/doc)
      • テストを生成する (/tests)
    • ショートカット
      • @
      • /
      • #
    • Copilot Labs 時代のコマンドパレット (使い方の参考になる)
      • Suggest test
      • Make this code more readable
      • Add Types to this code
      • Find a bug in this code
      • Make this code easier to debug
      • Clean up this code
      • Document the steps of this code
      • Make this code more robust (例外処理の追加)
      • Break this code into smaller chunks
      • Document this code
  • ユースケース考えてみた
    • 新しい処理の実装たたきを作ってもらう
      • ちょっとしたスクリプトを書いてもらう
      • メソッドを書いてもらう
    • 既存の処理を修正・エンハンスしてもらう
      • リファクタリング
      • 読みやすくする
      • デバッグしやすくする
      • 例外処理追加など
    • 新しいファイルを作ってもらう
      • テスト作ってもらう
      • README 書いてもらう
    • ソースコードリーディングのサポートをしてもらう
      • パスを指定してファイル読んでもらうとかできるっぽい
  • 所感・疑問など
    • 専用のモデルなのかレスポンス速くていい
    • プロジェクト全体のコードのことどこまで気にかけてくれるのか
      • → 開いてるタブだけとかそんな感じっぽい
    • キーボードなしでコードが書けるという Copilot Voice 気になる
    • 著作権違反対策として、パブリックコードに一致するコードは提案に含めない設定ができるらしい

参考資料