6
8

【VSCode】CopilotとTabnineで爆速開発

Last updated at Posted at 2023-12-03

※この記事は四工大アドベントカレンダー 2023の参加記事です。

背景

こんにちは、うだいです。
私の普段使う IDE は VSCode と Rider です。
今回は VSCode にフォーカスして、AI 補完機能の 2 大巨頭であるGitHub CopilotTabnineをどちらも使う方法をご紹介します。

Copilot/Tabnine って何?

2023 年は生成 AI が特に発展した 1 年間でしたが、実はそれよりも前からこれら 2 つのプロダクトは存在しており、どちらも異なったアプローチで VSCode の補完を行えるものでした。
これらの詳しい解説については詳しい記事を以下に引用します。

GitHub Copilot は VS Code と連携するプログラミング補助ツールです。コメントを書くと、その内容に合わせたコーディングが行われたり、メソッドを書くとその内部のコードをサジェストしてくれます。これは自動補完に似ていますが、前後の文脈を読み取った上でのサジェストなので、はるかにレベルが高いです。

同様のプロダクトに Tabnine があります。

しかし ChatGPT の台頭に伴い、2023 年 3 月に Copilot はCopilot Xを発表しました。
Copilot Xは GPT3.5 をベースに GitHub 内の数多くのコードを学習させ、今まで以上に的確かつ膨大な AI 補完を行うようになりました。

それぞれの特徴

現在の Copilot はすでに記述済みのコードを参考にして非常に的確でまとまった補完を行いますが、一方で Tabnine の方が優れている部分もあります。
例えば、Copilot では複数行での補完に対応しているため欲しいものとは違う補完が大量に表示されることがありますが、Tabnine では最大でも 1 行しか補完できないため逆に細かいステップを踏んだミニマムで適切な補完が行えるというメリットがあります。

Copilot Tabnine
価格 $10/月〜 無料〜
補完の速さ 数秒 ほぼ 0
補完の長さ 1 語~数十行 1 行
補完の同時表示 1 つまで 複数(後述)
コード全体を踏まえた補完

いいとこ取りをしたい!

Copilot と Tabnine にはどちらにもいいところがあり、お互いにデメリットを補完し合うことができるように思えます。
しかし、単純に両方をインストールすると問題が生じます
それは、どちらもインライン補完を行うために一方の補完しか適用されないということです。

Tabnine の補完は 1 行で終わるものしか表示されないため、ポップアップ補完の方が相性が良いです。
ポップアップ補完では同時に複数の候補も表示することができます。
しかし、VSCode の設定のみではポップアップ補完に変更することはできません。

Tabnine をポップアップ補完する

結論から言うと Tabnine の一部の設定は VSCode とは独立した Tabnine 専用の設定ファイルを編集する必要があり、そちらを設定することで Copilot と Tabnine を両立させられます。
設定の config の場所は OS により異なりますが、Tabnine の公式ページから確認が可能です。

OS 設定ファイルの場所
MacOS /Users/{UserName}/Library/Preferences/TabNine/tabnine_config.json
Windows C:\Users{UserName}\AppData\Roaming\TabNine\tabnine_config.json

こちらのtabnine_config.json内にあるinline_suggestions_modefalseに設定することでポップアップでの表示が可能になります。(標準ではnullになっています。)

before after
スクリーンショット 2023-11-27 19.02.43.png スクリーンショット 2023-11-27 19.03.03.png

こちらを設定後に VSCode を再起動することによって、インライン表示で Copilot、ポップアップ表示で Tabnine の補完が可能になります。

スクリーンショット 2023-11-27 19.04.58.png
ポップアップがTabnine、インラインがCopilotになっている様子

最後に

VSCodeは多くの拡張性を持った高機能なIDEです。自分好みの拡張機能を使って圧倒的な開発速度を確保しましょう!

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8