Github Coplit使ってみた

なんか適当に入れて充分役に立ってるからまぁいいかで使ってたけど
冷静に考えてみれば月1500円もかかってるので、使えるだけ使ってみようと思いました。

プログラムのアイディアやら、使い慣れない関数に関してchatgptに聞いてましたが
本来ブラウザ開くのも面倒なので、できればgithub coplitで完結してくれたら最高。

(結論から書きますが、機能はめっちゃシンプルなので公式リファレンス1回読めばそれでOKです)

公式 GitHub Docs GitHub Copilot の概要

インストールとか概要とかは省略。前述しましたが料金は月10ドル(年100ドル)
円安が厳しいですね。。。。(2023/10/23現在 149円/ドル)

得意な言語はPython, Javascript, TypeScript, Ruby, Go, C#, C++らしい。
まぁWebアプリケーション or Unityが主な領分である自分は損することはなさそう。(モバイルアプリでJava, Kotlin, Swift, Objective-cあたり今後強くなるといいね)

でもブログとかでMarkdown書いてるときとかも文脈判断して、提示はしてくれます。

1 関数名を書いて続きをCoplitに書いてもらう

(以降すべてJavascriptである前提)

これくらいまで書くと

function calculateDaysBetweenDates(begin, end) {

こんな感じで候補を出してくれるので、Tabキーで決定できます

function calculateDaysBetweeenDates(date1, date2) {
    return Math.ceil(Math.abs(date1 - date2) / (1000 * 60 * 60 * 24));
}

でも、この処理だとちょっと違うな~~って時、マウスオーバーで
表示されるツールチップで次の候補を見ることもできますし、
WindowsであればAlt+[ Alt+]で次へ、前へと候補を確認できます。
決定はTabキーです。

候補の一覧を列挙し別タブで開くには Ctrl+ Enterです。
気に入ったものがあれば Accept Solutionで反映されます。

2. コメントに処理の概要を書いて続きを書いてもらう

1と同じ流れで関数名ではなく、コメントに処理の内容を書く

// 現在時刻からunixtimespampを取得する

こんな感じのコメントを書いてEnterを押すと

// 現在時刻からunixtimespampを取得する
function getUnixTimestamp() {
  // 現在時刻を取得
  let now = new Date();
  // 現在時刻からunixtimespampを取得
  let unixtimestamp = now.getTime();
  // unixtimespampを返す
  return unixtimestamp;
}

こんな感じに出力してくれます。他の候補を出したり~は1と同じコマンドで
可能です。詳細な指示を日本語でできるあたり、こっちのほうが使う頻度は高そう。
ただ、chatgptで散々言われてますが、おそらく精度は英語のほうが圧倒的に上。

他にもできること

参考:Qiita 【TIPS】GitHub Copilotで使えるちょっと便利なTIPS【小ネタ】

こんな感じのコメントを書くと

// unixtimeとはなにか教えて
// (←ここまで書いて、コメントを書いてることを伝える)
// unixtimeとはなにか教えて
// unixtimeとは1970年1月1日0時0分0秒からの経過時間を秒で表したもの

こんな感じで候補出してくれます。まぁちゃんと聞きたいならchatgptのほうが
全然いいけど。。。メモみたいなやつにはいいかも。

読んだり調べたりしたけど、以外と使い方はシンプルで裏技的なものとか、細かい設定とか
なかった。。。がんがんTabキー押すしかない。

あと、これはGithubの設定かもしれないけど、ドメインに応じた候補は正直弱くて組織内でCoplit有効にするとかしたら改善するのかも。少なくとも権限のない外部のリポジトリだと、標準ライブラリの組み合わせは十二分にしてくれるけど、リポジトリ内のコンテキストを考慮して、というのは便利さを体感できてない。

上部へスクロール