特定の拡張子の場合はCopilotを無効にする
GitHub Copilotで特定の拡張子のときはCopilotの動作を無効にしたいけど、どうすればいいのか。今回はVSCodeを例にそれをご紹介します。
無効にしたい拡張子のファイルを開いた状態で、VSCodeの右下のところでCopilotのマークをクリックします。
すると次のようなダイアログが表示されます。
「Disable Globally」を選択するとCopilot自体が無効になります。「Disable for xxx」を選ぶと特定の言語(拡張子)の場合にCopilotが無効になります。
今回は特定の拡張子の場合に無効にしたいので「Disable for xxx」を選択肢ます。これでOK.
実は手順は公式ドキュメントにちゃんと紹介されています。
そもそもなぜ無効にしたかったのか、その事情。
今回無効にしたかったのはBicepファイルでした。
GitHub Copilotは一応Bicepにも対応しているらしく、Bicepの形式でリコメンデーションを表示してくれます。
module
と書いただけでも一応以下のようなリコメンデーションを表示します。
これだけを見たら、「おー」と思われるかもしれません。しかし、実は大きな落とし穴があります。 リコメンデーションしているモジュール名「aca-app-service-plan.bicep」というファイルは存在しません。 つまりなにかをベースにCopilotが想像(空想)したファイルになります。したがってこの内容はまったく利用できません。 仮にモジュールファイル名が正しい場合でも、その中に指定されている paramsの項目が実際には存在しない場合が多いのです。
リコメンデーションされているから「あ、そういう項目あったんだっけ」と思って確定してしまい、「そんな項目はない」というワーニングが表示される。こうしたことを連続するため、とてもストレスフルな状況になってきました。
通常のコードと違って、Bicepはどちらかといえばコンフィグレーションに近い内容でコンテキストが捉えにくいものです。このため適切なリコメンデーションは現時点では難しいのかもしれません。
このため、現状ではコメントや @descriptionの内容は正しいものに近い内容を出力するので便利なのですが、それ以外は快適な作業を疎がしかねないレベルです。 BicepのVSCode Extensionだけ有効な状態のほうが快適に作業できそうなので、コメントのリコメンデーションの利点はスパッと諦めたほうがよさそうです。もちろん他の言語についてはCopilotの利点が非常に大きいので引き続き利用したい。ということで、BicepファイルだけはCopilotを無効にしたいと考えた次第です。
Bicepだけではなく、コンテキストを捉えにくい他のファイルでも似たようなことが起きるのではないかと思います。特定の拡張子の場合はCopilotを無効にしたい、そう感じるときはぜひ今回ご紹介した設定をお試しください。