銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

Visual Studio 2015 で強化されたリファクタリング機能について

Visual Studio 2015 の1日目です。

Visual Studio Advent Calendar 2014 - Qiita

一発目なので最新の機能の中からデバッグ関連の機能を軽く紹介したいと思います。

リネーム機能

変数名のリネーム機能が強化されました。変数名を変更したあとに、使用しているかしょをまとめて変更する機能はありましたが、今回はプレビュー機能もついて強化されました。 変数にフォーカスを置いて、Ctrl+R,Ctrl+R (CtrlとRの同時押しを2回)すると、この機能が呼びだされます。

f:id:tanaka733:20141130175956p:plain

f:id:tanaka733:20141130180006p:plain

強化された点は、変更対象がリアルタイムに変更に追随すること、文字列リテラルやコメント中の文字列もオプションで変更対象に含めることができる点です。

メソッドの抽出

抽出したいコードを選択して、 Ctrl+R,Ctrl+M でメソッドが抽出されます。抽出後は上のリネーム機能状態になりメソッド名を入力できます。

f:id:tanaka733:20141130183719p:plain

f:id:tanaka733:20141130183728p:plain

クイックアクション

選択して、Ctrl+. を押すとクイックアクションと呼ばれる機能が呼びだせます。ReSharper の Alt+Enter に似た感じの機能です。

たとえばハードコーディングした内容を定数化できたり、

f:id:tanaka733:20141130185911p:plain

メソッドチェーンをローカル変数に抽出したり、

f:id:tanaka733:20141130185945p:plain

逆に複数のメソッドをインライン化したり

f:id:tanaka733:20141130185959p:plain

といったことができます。

Roslynによるコードリファクタツールの追加

拡張できる、という意味ではこれがある意味最強の機能追加かもしれません。Roslynが解析APIを公開したことで、自分でコードリファクタの機能を作成・展開し、利用することができます。詳細はのいえせんせーのブログがわかりやすいです。

neue cc - VS2015のRoslynでCode Analyzerを自作する(ついでにUnityコードも解析する)

といった感じで、あっさりですが、わりと便利な機能が追加されたのではないでしょうか。また、リファクタリング機能に限らず全体的にモーダルダイアログを表示する、ということが少なくなった印象があります。好き嫌いはありそうですが、個人的には好みな向きな変更です。