2016-05-13 4 views
2

varキーワードをReSharperが提供するものと似ているコード行をリファクタリングするためのショートカットはありますか?Visual Studio 2015 'use var'リファクタリングショートカット

あなたは次のコードを持っている場合たとえば:

public void Foo() 
{ 
    List<Tuple<int, object>> bar = new List<Tuple<int, object>>(); 
} 

ReSharperのはにそれをフォーマットすることができます。

public void Foo() 
{ 
    var bar = new List<Tuple<int, object>>(); 
} 
+0

私が知っていることはありませんが、ああ、男の子はそれほどいいとは思いません!:) –

+0

コード分析NuGetパッケージがあると確信しています。あなたはそれを見つけるために行く必要があります。 –

+2

いつかあなたのコードを読む必要がある同僚だったら、私はあなたにこのポリシーをしないことを薦めます。この特定の例では、 'bar'の型は明白ですが、コンパイラは多くの場合、開発者が他のコードを掘り下げることを必要とするものを推論することができます。 – adv12

答えて

3

Visual Studioは、ReSharperののリファクタリングツールの多くに直接対応する必要はありません。 。残念ながら、 "use var"は、少なくともVS 2015以降のリファクタリング機能の欠如の1つです。

この正規表現は、貧乏人のリファクタリングとして使用できます。プレスCtrlキー + H、その後、スペースを含め、

Search: (^\s*)\S[^=()]* (\w+\s*=) 
Replace: $1var $2 

"\S[^=()]* "部分を入力し、初期化の前に宣言、^\s*一致インデント、および\w+\s*=マッチ変数名と=と一致します。

インデントは$1グループに取り込まれます。変数=$2に取り込まれます。置換文字列は、2つのキャプチャされた文字列を使用して、置換を中間でvarでフォーマットします。

このトリックは、あなたはかなり迅速にファイル全体を変換することができます:視覚的に次の宣言に行きボタンを押して、選択した項目に「リファクタリング」を適用することを確認します。

このアプローチは比較的簡単にマクロを作成するのに適していますが、マクロの組み込みサポートはVS 2010の時点でVisual Studioから削除されているため、このタイプのリファクタリング用に手動でショートカットを手動で作成するには、外部マクロツールも同様です。

+0

さて、私はまだこれを "ReSharperに相当するVisual Studioと同じです"というよりも、ハックとして見ています。私のdownvoteを削除しましたが、これはupvoteを取得しません。 –

+1

@JimAho ReSharperに相当するVisual Studioがあれば、ReSharperがあなたに支払うことを望む大金を正当化するのはかなり難しいでしょうか? – dasblinkenlight

+1

@dasblinkenlight著者は、Resharperのようなショートカットを探していたことが明確だと思うと言っています。また、ResharperはCTRL +のいくつかを再マッピングしました。コマンドのため、著者の同値性の要求は不合理ではありません。 –

1

これを行う直接的な方法はありませんが、今後のRosalynのVisual Studio appears to be on the wayでこれをサポートします。

@ dasblinkenlightの回答に加えて、私はこれを行うカスタムNuGetコードアナライザーに注目しています。緑色の波打ちのエラーが表示された場合は、ショートアクションをすぐに実行することができます。Ctrl +

私はまだ(あなたが探しているもののexactly the oppositeを行うもののほかに)1つを見つけることができませんでした。