検索
ニュース

IntelliCodeが「リファクタリング」を助ける、Visual Studio 2019 バージョン16.3の改善コードの変更パターンを検知

Microsoftがリリースした「Visual Studio 2019 バージョン16.3 Preview 3」では、IntelliCodeがリファクタリングを支援する。開発者がコードにある変更を施すと、類似したコードのパターンを探し出すというもの。例えば開発者が自ら正規表現を工夫するよりも楽になる。

Share
Tweet
LINE
Hatena

 Microsoftは2019年9月5日(米国時間)、「Visual Studio 2019 バージョン16.3 Preview 3」(9月4日リリース)において、IntelliCodeによるリファクタリング機能が向上したと発表した。開発者が行う反復的な変更をIntelliCodeが迅速に検知することで、IDE内で開発者が同様の変更を適用しそうなコード内の他の箇所を指摘するようになった。

 IntelliCodeのリファクタリング機能はプレビュー段階だ。そのため、Visual Studio 2019 バージョン16.3 Preview 3のデフォルトでは無効になっている。有効にするには、[ツール]−[オプション]−[IntelliCode]−[全般]から、プレビュー機能のカテゴリー内で「C# IntelliCode Refactorings」を「Enabled」(有効)に切り替える。

 設定変更後、開いているファイルがあればそれらを閉じ、Visual Studioを再起動すればよい。


リファクタリング機能を有効化するメニュー(出典:Microsoft

IntelliCodeによるリファクタリングの仕組み

 IntelliCodeは、開発者が入力する個々の編集内容をチェックし、PROSE(PROgram Synthesis by Example)を使って、汎用(はんよう)化された編集スクリプトを合成する。このスクリプトが、コードを編集前の状態から変更後の状態に変換する。

 IntelliCodeが、こうしたスクリプトを適用できる別の場所をコード内で発見すると、Visual Studioはコードの左の余白に電球マークを表示する。電球マークは、リファクタリング操作を提案するものだ。または開発者が影響を受けるコードの上をホバー後、緑の波形記号を表示する。いずれも開発者が2回、同じようなコード修正を実行したときに機能する。この機能の基盤は「Microsoft Excel」のフラッシュフィル機能と似ている。

 IntelliCodeはテキストの変更を追跡するだけでなく、コードのシンタックス構造も認識している。これにより、変数名が異なっていても、変更箇所の基本的な構造が同じであれば、リファクタリング対象として検知できる。


シンタックスのパターンを2カ所で検知し、リファクタリングのパターンを提案した例 カ氏からセ氏を算出するコードが対象となっている(出典:Microsoft

 提案された変更が気に入らなければ、電球マークで無視を選択すればよい。無視を選択すると、開発者がコードを再作成しない限り、IntelliCodeがそのパターンを再び提案することはない。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る