Github copilotをvisual studio code + nvdaで使う

入れただけだと使い方が直感的にはわからないのでメモ

GitHub Copilotを使うと、コードを書いているときに、AIのペアプログラマーが手伝ってくれるようになります。私も、今日使い始めました。

GitHub Copilotの公式ヘルプ

ただ、これをスクリーンリーダーで使おうとすると、使い方がよくわからんと思うので、メモります。

セットアップするまで

まず普通にGitHub Copilotの拡張機能を入れます。ctrl+shift+xで拡張機能の画面を出して、 copilot とか入れて、タブを押して、それっぽいやつでエンターみたいな感じです。

インストールすると、GitHubにサインインしてアクセスを認可しろと言われます。これは通知画面に出るので、ちょっと見つけるのが面倒です。以下の手順で操作します。

  • 拡張機能の画面をctrl+wで閉じる。そうしないと次のf6が動作しない
  • f6でステータスバーまで行く
  • 上下矢印で通知ボタンまで行ってエンター
  • 「GitHubにサインインしてください」みたいな通知を選んで、近くにあるサインインボタンを押す
  • ブラウザが開くので、後は普通にアクセスを認可してあげる

実際に使うとき

たとえば、 公式の例にあるように、TypeScriptの関数を書かせてみます。

test.ts を作って、 function calculateDay とか入れます。

そうすると、たぶん今まで聞いたことがない音が鳴ります。コマンドパレット(ctrl+shift+p)から”help: List audio cues”で音を確認すると、 inline suggestion の音だとわかります。

この inline suggestion は、現在のところ自動では読んでくれません。なので、ここで提案の内容をすぐ確認することは不可能です。

代わりに、提案が出たところで ctrl+enter を押します。そうすると、copilotが提案した内容を1つずつプレビュー画面で見ることができます。たとえばこんな感じ。

Synthesizing 2/10 solutions

=======
Suggestion 1

function calculateDaysBetweenDates(startDate, endDate) {
    var start = Date.parse(startDate);
    var end = Date.parse(endDate);
    var millisecondsPerDay = 86400000;
    return (end - start) / millisecondsPerDay;
}

=======
Suggestion 2

function calculateDaysBetweenDates(start, end) {

これを読んで、よし採用だと思ったら、ctrl+slashを押します。そうすると、今カーソルがある提案がファイルに書かれます!

この提案はだめだ、どれも採用しないと思ったら、ctrl+wでプレビュー画面を閉じればOKです。

今回はなにも回りのコードがないので提案がしょぼいですが、きっとうまく使えばいい感じになることでしょう!

余談

以前まではctrl+slashで提案の採用ができなかったらしいです。丁度最近その機能が追加されてました。最高かよ。 喜びのコメントをしておきました

本当は、 alt+[とかalt+]で前後の提案を表示できるんだけど、これは読まないので、ぱっと提案が出てきておおすげえといって直感的に採用、というのはまだちょっと遠いようです。vscode側にはissueとして上がっているらしい。

コマンドパレットに Preferences: Open Accessibility Settings というのがあって、そこに

Editor Screen Reader Announce Inline Suggestion. Modified. Control whether inline suggestions are announced by a screen reader. Note that this does not work on macOS with VoiceOver.

こんな設定があります。これを入れると切れ端を読んだりすることがあるのですが、完璧ではないようです。