WebSurfer's Home

Filter by APML

GitHub Copilot Next Edit Suggestions

by WebSurfer 16. February 2026 17:24

Visual Studio 2026 の AI 駆動開発において、GitHub Copilot が提供するエディタ上でのインライン提案には「入力候補 (Completions)」と「次の編集候補 (Next edit suggestions)」という 2 種類があります。この記事では後者の「次の編集候補」について書きます。

Next edit suggestions の有効化

前者の「入力候補」については、先の記事「Visual Studio 2026 AI 駆動開発 - コード補完」に書きましたので、そちらを見てください。

「入力候補」と「次の編集候補」の何が違うかを簡単に書くと以下の通りです:

  • 入力候補: 現在のカーソル位置で、ユーザー入力に基づき、続きのコードを予測して提案する
  • 次の編集候補: ある行でのコードの変更に関連して、別の行で必要になる変更を予測して提案する。提案に従って、Tab キーを連続して押していくだけで、複数箇所にわたる修正が可能になる

詳しい説明は Microsoft のドキュメント「GitHub Copilot の入力候補を始めてみましょう」、「GitHub Copilot の次の編集提案を使い始める方法」にありますので見てください。

自分の環境の Visual Studio 2026 + GitHub Copilot Free で「次の編集候補」を有効にして使ってみましたので、その時の状況を以下に書いておきます。

まず、「次の編集候補」はデフォルトでは無効になっていますので、この記事の一番上の画像で示したように、GitHub Copilot のメニューを開いて Settings > Enable Next Edit Suggestions にチェックを入れて有効化します。

次に、Visual Studio 2026 のテンプレートを使ってターゲットフレームワーク .NET 10.0 でコンソールアプリを作成し、それに以下の Point クラスを書いて試してみました。(Microsoft のドキュメントの「意図の変更に合わせる」のコードとほぼ同じです)

Point クラス

上の Point クラスの private フィールド x, y を public プロパティ X, Y に変更してみます。113 行目で修正提案が出ているので Tab キーを押して提案を Accept します。

private フィールド x, y を public プロパティ X, Y に変更

すると以下の画像のように表示されます。現在のカーソルは 113 行目にあり、「次の編集候補」は 117 行目にありますので、[Tab] の横に下向きの ↓ が表示されています。Tab キーを押すと「次の編集候補」の 117 行にカーソルが移動します。

「次の編集候補」の表示

117 行の修正案が OK なら再度 Tab キーを押して修正案を Accept します。118, 123, 124 行も修正が必要ですが、同様に Tab キーを押していけば下の画像のように修正が完了します。

Tab キーを押していき修正完了

以上が「次の編集候補」により、複数の行に渡って修正提案を受けながら、それらを順次適用していく場合の典型的な動きになるようです。


ただ、エディタ上でいろいろ変更しながら「次の編集候補」の出方を見ていると、同じことを繰り返しても結果が異なるということがありました。このことは気を付けた方が良さそうです。具体的にどういう事かを以下に書きます。

例えば、Microsoft のドキュメントの「ミスをキャッチして修正する」のセクションに書いてある bol ⇒ bool の修正提案ですが、最初はドキュメントに書いてある通りに提案されるものの、何度か同じことを試すと提案が出てこなくなります。bol としたのはユーザーの意図と誤解するのか、bol 型を新たに作るという提案がされます。

また、「意図の変更に合わせる」のセクションに書いてあるクラス Point を Point3D に変更する場合ですが、最初はドキュメントに書いてあるように、一行ずつ順に修正提案が出て、それを見ながら修正して行くという形になるものの、同じことを繰り返し試すと、Point ⇒ Point3D とタイプした時点で即以下の画像のようになります。

クラス Point を Point3D に変更

ネットの記事「GitHub Copilot NESの内部実装が公開」に "Copilot NESはユーザーのエディタ上の「操作履歴」を記録します。操作履歴のデータを専用モデルに送信して「続きの操作」を推論します" と書いてあるのを見つけました。それが正しいとすると、想像ですが、エディタ上でいろいろ変更しながら試していた時の「操作履歴」が影響していたのかもしれません。

Tags: , , ,

DevelopmentTools

GitHub Copilot の使用回数制限

by WebSurfer 23. January 2026 12:35

先の記事「Visual Studio 2026 AI 駆動開発」で書きましたように、Free (無償版) の GitHub Copilot を Visual Studio 2026 の Chat Window と IDE 全体で使えるようにしました。

GitHub Copilot には使用回数に制限がありますがそれについて調べたこと、および、それに関連するプレミアムリクエスト、プレミアムモデルについて調べたことを書きます。

注: この記事を書いた 2026 年 1 月 23 日時点で GitHub のドキュメントなどを調べて得た情報です。プレミアムリクエストの導入が 2025 年 6 月とのことで、それ以前はどうなっていたかは不明です。また、生成 AI の世界は日進月歩で進化しているようですので、今日 2026 年 1 月 23 日にここに書いたことも明日は違うかもしれません。ご注意ください。

まず、Free (無償版) の使用回数制限ですが、この記事を書いた時点では、チャットは 50 回/月、コード補完は 2,000 回/月に制限されています。

ちなみに、どのぐらい使用したかは、 Visual Studio 2026 では下の画像のようにの左上に表示されている GitHub Copilot のメニューを開いて、

Copilot Usage

赤枠で示した [Copilot Usage] をクリックすると、下の画像のように使用状況が表示されます (画像は Free 版の場合です)。

Copilot Usage

有償版でもプレミアムリクエストには制限があります。例えば Pro は 300 回/月、Pro+ は 1,500 回/月となっています。詳し���は GitHub のドキュメント「Plans for GitHub Copilot」の Comparing Copilot plans のセクションを見てください。

では、プレミアムリクエストとは何かですが、GitHub のドキュメント「GitHub Copilot プレミアム リクエスト」や「GitHub Copilot における要求」に詳しい説明があります。

いろいろなケースがあるようですが、自分に特に関係するのは上に挙げた前者のドキュメントの「Premium 要求とは」のセクションに書いてある "プレミアムモデルを使った Copilot チャットの使用" のようですので、それについて調べたことを書きます。

まず、どの AI モデルが GitHub Copilot のどのプランで利用できるかですが、それについては GitHub のドキュメント「Plans for GitHub Copilot」の Models のセクションを見てください。

Visual Studio 2026 では、下の画像のようにチャットウィンドウで赤丸印のアイコンをクリックすると、使用できる AI モデルが表示されます (画像は Free 版の場合です)。

使用できる AI モデル

そして、どの AI モデルがプレミアムモデルになるかですが、それについては GitHub のドキュメント「GitHub Copilot における要求」の Model multipliers のセクションを見てください。そのリストの中で Multiplier がゼロではない AI モデルが GitHub Copilot のチャットにおけるプレミアムモデルになります。(上の画像では Variable が Multiplier に該当します。Free 版なので全部 1 になっています)

有償版のチャットは無制限という記事を目にしますが、それは使用する AI モデルの Multiplier がゼロの場合 (AI モデルが Included Models の場合) に限ります。上に紹介した GitHub のドキュメントに "GPT-5 mini, GPT-4.1 and GPT-4o are the included models, and do not consume any premium requests if you are on a paid plan." と書いてある通りです。

一方、使用する AI モデルの Multiplier がゼロではない場合、1 回のチャットで Multiplier の数を掛けた回数のプレミアムリクエストが行われたことになります。GitHub のドキュメントに "Using Claude Opus 4.5 in Copilot Chat: With a 3× multiplier, one interaction counts as 3 premium requests." と書いてある通りです。

Copilot Free (無償版) の場合は、利用できるすべての AI モデルの Multiplier が 1 になっていますので、1 回のチャットで 1 回のプレミアムリクエストとなります。

数ある AI モデルの内どのモデルを使えばいいのかは、@IT の記事「GitHub CopilotのAIモデル、どれを選べばよいのか?」や GitHub の公式ドキュメント「AI model comparison」が参考になると思います。

上に挙げた記事には各 AI モデルのメリット・デメリットなどいろいろ書いてありますが、後者の記事を読んだ限りでは、Visual Studio 2026 + Copilot Free (無償版) でチャットを行う場合は現時点でのデフォルト GPT-5 mini でよさそうです。

特定の AI モデルを選択しないで、上の画像に選択肢がある Auto に設定する方法もあります。詳しくは Microsoft のドキュメント「Introducing Copilot auto model selection (preview)」を見てください。

有償版の場合は Auto に設定すると、10% の割引があるとか、プレミアムリクエストの上限を超えた場合は自動的に Multiplier がゼロの AI モデルを使うというメリットがあるようです。Free 版の場合はデフォルトの GPT-5 mini 固定で良いと思います。

Tags: , , ,

DevelopmentTools

Visual Studio 2026 AI 駆動開発 - コード補完

by WebSurfer 15. January 2026 17:54

Visual Studio 2026 の AI 駆動開発は、統合された GitHub Copilot にペアプログラマーとしての役割を担ってもらい、ユーザーは GitHub Copilot が提供する「チャット」と「コード補完」を利用して開発を加速するという形になるそうです。

「チャット」については、先の記事「Visual Studio 2026 AI 駆動開発 - チャット」に調べたことを書きました。

この記事では、その続きとして、「コード補完」について調べたことを書きます。対象となるサンプルは .NET Framework 4.8.1 の C# のコンソールアプリです。コードは先の記事の最後に載せましたので見てください。

「コード補完」は、Microsoft のドキュメント「GitHub Copilot の入力候補を始めてみましょう」によると "コードを入力すると、AI はコンテキストを分析し、関連する提案をリアルタイムで提供します。 また、コードで実行する内容を説明するコメントを自然言語で記述することで、提案を受け取ることもできます" ということだそうです。

そして、Microsoft のドキュメントによると、「コード補完」には「入力候補 (Completions)」と「次の編集候補 (Next edit suggestions)」という 2 種類の方法が提供されているそうです。この記事では、前者の「入力候補 (Completions)」における「コードを入力」と「コメントを自然言語で記述」のそれぞれについて書きます。(注:「次の編集候補」はデフォルトで無効になっています)


(1) コードを入力

まず、ユーザーがコードを入力している際に AI からリアルタイムで提案を受ける例を書きます。

先の記事「Visual Studio 2026 AI 駆動開発 - チャット」でチャットにより AI から Program.cs のコードの説明を受けた際、説明に加えて Potential issues and suggestions としていろいろ指摘を受けてます (詳しくは先の記事を見てください)。

それらの指摘の内、以下の指摘のみを受け入れ、ユーザーが自力でコードを書いて修正するとします。

CSV robustness:

  • Validate fields.Length >= 2 before indexing to avoid IndexOutOfRangeException.
  • Skip or detect a header row if present.

前者の、"Validate fields.Length >= 2 before indexing to avoid IndexOutOfRangeException." に対しては、以下のようにコードの適切な場所に if とタイプすると AI が自動的に修正案を提案してくれます。

if とタイプした結果

if の後のグレー表示の部分が AI の提案です。確認して OK なら Tab キーを押してコードを確定します。提案を拒否する場合は Esc キーを押します。

後者の "Skip or detect a header row if present." に対しては、以下のように tfp とタイプすると AI が自動的に修正案(グレーの文字の部分)を提案してくれます。

tfp とタイプした結果

提案を確認して OK なら Tab キーを押してコードを確定します。提案を拒否する場合は Esc キーを押します。


(2) コメントを自然言語で記述

次に、コメントを自然言語で記述することで AI からそのコメントに相当するコードの提案を受ける例を書きます。

上と同様に Potential issues and suggestions 中の 2 件の指摘を修正することとします。

まず、"Validate fields.Length >= 2 before indexing to avoid IndexOutOfRangeException." への対応ですが、コードを直接をタイプする代わりに、以下のように // をタイプすると AI からコメント文が提案がされます。グレーの文字の文が AI の提案です。

AI によるコメント文提案

しかし、上記の AI 提案は、ユーザーが欲しい修正コードの提案を受けるためのコメントにはなっていません。(AI はそこまで賢くユーザーの意図を汲んではくれないようです)

ここで必要な処理は「fields.Length が 2 以上であることを確認」して必要な処理を行うコードを追加することです。なので AI のコメント提案は受けないで(Esc キーを押して AI の提案を消して)ユーザーが自分でコメントを書きます。以下のように、コメントを書いてから改行するとコメントの下に AI からグレーの文字でコードが提案されます。

コメント文からコード生成

提案を確認して OK なら Tab キーを押してコードを確定します。提案を拒否する場合は Esc キーを押します。

次の "Skip or detect a header row if present." への対応ですが、こちらはユーザーが何をしたいのかを AI が予想できるようで、// をタイプするだけで適切なコメント文を AI が作ってくれます。

コメント文からコード生成

Tab キーを押してコメントを確定させた後、改行すると AI からコメント文に対応するコードがグレーの文字で提案されます。

コメント文からコード生成

提案を確認して OK なら Tab キーを押してコードを確定します。提案を拒否する場合は Esc キーを押します。

以上、チャットでの Potential issues and suggestions での指摘の一部を「コード補完」を利用してユーザーが自力でコードを書いて修正する例を書きました。

Potential issues and suggestions とは関係なくコメントからコードを AI に生成させることもできます。

例えば何らかのメソッドを追加したい場合、追加する場所に // Method とタイプします。すると以下のようにグレーの文字で AI がユーザーのやりたいことをコードの前後から想像して提案してきます。

// Method とタイプした結果

AI の提案したコメントで良ければ Tab キーを押してコメントを確定させた後、改行すると AI がそのコメントに相当するコードを提案してくれます。下の画像のグレーの文字の部分がそれです。

AI が提案したコード

AI の提案したコメントが期待するものと違う場合は、Esc キーを押して AI の提案を削除し、Method の後のコメント文をユーザーが作成します。例えば CSV ファイルから DataTable を取得したい場合は以下の緑文字のようにタイプします。グレーの文字は AI の提案です。

コメントの修正

上のコメントで良ければ Tab キーを押してコメントを確定した後、改行すると AI がコメントに相当するコードを提案してくれます。下の画像のグレーの文字のコードがそれです。

AI が提案したコード

AI が提案したコードで OK であれば Tab キーを押してコードを確定させます。

AI が提案したコードを確定


以上、自分が調べた「コード補完」の操作方法についた書きました。他にも、Microsoft のドキュメント「GitHub Copilot の入力候補を始めてみましょう」によると「ドキュメント コメントの生成」他いろいろ機能があるようです。

また、デフォルトでは有効になっていませんが、設定で Next Edit Suggestions (NES) 機能を有効にして使うことができるそうです。そのあたりは勉強不足で分かっていませんので、別途調べてみたいと思っています。

Tags: , ,

DevelopmentTools

About this blog

2010年5月にこのブログを立ち上げました。主に ASP.NET Web アプリ関係の記事です。ブログ2はそれ以外の日々の出来事などのトピックスになっています。

Calendar

<<  May 2026  >>
MoTuWeThFrSaSu
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

View posts in large calendar