検索
連載

VS CodeのPython拡張機能がアップデート ドキュメントやインポート、デバッガー関連が強化され、さらに快適にDeep Insider Brief ― 技術の“今”にひと言コメント

2025年11月版のPython拡張機能ではマウスホバーに表示される自動生成された要約をdocstringとして追加したり、それを自分の言語(日本語など)に自動翻訳したりする機能が追加された。これにより、コード編集がさらに快適になりそうだ。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
「Deep Insider Brief ― 技術の“今”にひと言コメント」のインデックス

連載目次

 2025年11月13日、MicrosoftはVisual Studio Code用の「Python拡張機能」の2025年11月版を公式リリースした(以下、Visual Studio CodeはVS Codeと表記する)。

Python in Visual Studio Code 2025年11月版の主要な更新内容(公式サイトの発表から引用)
Python in Visual Studio Code 2025年11月版の主要な更新内容(公式サイトの発表から引用)

 新機能の目玉は、VS Codeでのコーディングを支援するGitHub Copilotの機能強化である。今回は生成AIによる関数やクラスの要約をdocstringとしてコードに挿入したり、それらをユーザーの使用している言語(日本語など)に自動翻訳したりしてくれるようになっている。

 この他にも、ワイルドカードインポート(「from some_module import *」としてsome_moduleモジュールが公開する全ての関数やクラスを一度にインポートすること)を、実際に使用している関数やクラスだけを明示的にインポートするようなコードアクションの追加や、1つのワークスペースが複数プロジェクトで構成されている場合に、デバッグ時にプロジェクトごとに異なるPythonインタプリターを使用できるようにするなどの変更が行われている。


HPかわさき

 どうも。HPかわさきです。

 自称「Python祭り」にかまけてしまって、10月のPython拡張機能についてはDeep Insider Briefで取り上げられずにいましたが、祭りも終わってしまったので、今月はちゃんと取り上げてみましょう。とはいえ、便利そうだけど、小粒な機能向上のような気もしますねぇ。


 では、以下ではもう少し詳しく見ていこう。

ホバーサマリーに表示された生成AIによる要約をdocstringとして追加

 GitHub Copilotのホバーサマリーはマウスカーソルの位置にある関数やクラスの定義や要約が表示される。このホバーサマリーには[Generate Copilot Summary]ボタンがあり、これをクリックすることでその要約が表示される(表示言語を日本語にしている場合は基本的に[Copilotによる要約の表示]ボタンとなる)。

 以下はVS Codeで表示言語を英語に切り替えて、フィボナッチ数を計算する関数を幾つか定義したところだ。

ホバーサマリーを表示したところ
ホバーサマリーを表示したところ

 上の画像ではfibonacci_iterative関数の上にマウスカーソルを置いている。そこに関数の定義とともに[Generate Copilot summary]ボタンが表示されているのが分かる。このボタンをクリックすると、生成AIが関数の要約を生成してくれる。

生成された要約。その下には[Add as docstring]ボタンがある点に注意
生成された要約。その下には[Add as docstring]ボタンがある点に注意

 生成された要約の下には[Add as docstring]ボタンがあり、これをクリックすると生成された要約が関数の先頭に追加される。

生成された要約がdocstringとして追加されたところ
生成された要約がdocstringとして追加されたところ


HPかわさき

 筆者の環境では表示言語を英語に切り替えないと[Add as docstring]ボタンが表示されませんでした。これって、「docstringは英語で書きましょう」という話? というわけでもないと思いますが、単にUI 周りの多言語対応がまだ十分でないだけなのかもしれません。

 ともかく、要約が自動生成された上にdocstringとしてワンクリックでコードに埋め込めるのは歓迎すべきことですよね。自分でドキュメントを書く手間がかなり減るはずです。と思いましたが、右クリックしてコンテキストメニューからもドキュメントを生成できるんですよね(気付いてなかった……)。となると、どちらがオススメかはなかなか微妙かもしれません。


生成された要約の自動翻訳

 ホバーサマリーに表示される要約は、VS Codeのユーザーが使用している言語(英語、日本語など)に合わせて自動的に翻訳されるようになった。以下はVS Codeの表示言語を日本語に戻して、fibonacci_iterative関数にマウスカーソルを置いたところだ。

生成された要約が何をすることもなく日本語に翻訳されている
生成された要約が何をすることもなく日本語に翻訳されている

 docstringがないソースコードを受け取った場合に、そのコードの要約が自動的に日本語で表示されるのはコードを読み進める必要があるときには大きく役立つはずだ。


HPかわさき

 ここで重要なのは、自動翻訳されるのは「Copilotによる要約だけ」ということです。「ん?」と思うかもしれませんが、英語で書かれたdocstringが既にある場合、現状では自動翻訳されたホバーサマリーに表示されるようにはなっていません。既存のdocstringもぜひ自動翻訳してくれるようになることを期待したいですね。


ワイルドカードインポートを明示的なインポートに変換する「コードアクション」

 ワイルドカードインポートとは「from some_module import *」としてsome_moduleモジュールが公開する全ての関数やクラスなどを一括して、現在の名前空間にインポートすることだ。そして、ワイルドカードインポートには、使わない機能まで含めて、多くのものをインポートすることで名前空間が汚くなる、コード内で使っている関数やクラスがどのモジュール由来のものかがハッキリしないなどの問題がある。

 そこで、ワイルドカードインポートが使われていたら、それをそのモジュールで使用しているものを明示的にインポートするようなコードアクションが加えられた(コードアクションは該当するコードの近辺に表示される電球アイコンをクリックするか、[Ctrl]+[.]キーまたは[Command]+[.]キーで表示される)。

 例えば、以下は上で定義したフィボナッチ数を求める3種類の関数をfibonacci.pyファイルからインポートして、それらを実行したり、実行時間をtimeモジュールのtime関数で計測したりしているところだ。

「from fibonacci import *」「from time import *」とワイルドカードインポートが行われている
「from fibonacci import *」「from time import *」とワイルドカードインポートが行われている

 2行目の「from fibonacci import *」の下に電球アイコンがある。これをクリックする(か、[Ctrl]+[.]キーもしくは[Command]+[.]キーを押下する)と[明示的なインポートに変換する]と表示されるので、これをクリックすることで、次のようにワイルドカードインポートが明示的なインポートに書き換えられる。

明示的なインポートに書き替えられたところ
明示的なインポートに書き替えられたところ


HPかわさき

 書き替えられた結果に筆者もちょっとビックリしています。どうすればいいかというと、きっとVS Code内でチャットボットに「import文をクリーンにして」とお願いすることですかね(笑)。


 この他にも以下のような点が変更されたり、強化されたりしている。興味のある方はぜひ試してみてほしい。

  • 1つのワークスペースが複数のプロジェクトで構成されている場合に、プロジェクトごとに異なるインタプリターを使用できるようになった。これにはPython Environment拡張機能が提供するAPIが使われている
  • PowerShellコマンドの起動時に発生していた予期せぬブロッキングを解消
  • Python Environment拡張機能が、ユーザーがどのPoetry実行ファイルを使用するかを指定する既存のユーザー設定を考慮するようになった
  • 仮想環境を新規に作成する際に、Python Environment拡張機能が、依存関係の自動インストールに必要なファイルとしてrequirements.txtとdev-requirements.txtの両方を検出するようになった
「Deep Insider Brief ― 技術の“今”にひと言コメント」のインデックス

Deep Insider Brief ― 技術の“今”にひと言コメント

Copyright© Digital Advantage Corp. All Rights Reserved.

[an error occurred while processing this directive]
ページトップに戻る