web-dev-qa-db-ja.com

Visual Studio C#ステートメントの折りたたみ

非常に長いコードブロックを編集する場合(とにかくリファクタリングする必要がありますが、この質問の範囲外です)、関数ブロックを折りたたむことができるようにステートメントブロックを折りたたむことができる機能を切望しています。つまり、中括弧で囲まれたすべてのコードのアウトラインにマイナスアイコンが表示されていれば素晴らしいことです。関数、クラス、領域、名前空間、使用法では表示されるようですが、条件付きブロックや反復ブロックでは表示されないようです。 ifs、switch、foreach、そのようなものを折りたたむことができたら素晴らしいですね!

少し調べてみると、明らかにVSでのC++アウトラインはこれを許可しますが、VSでのC#アウトラインは許可しません。理由はよくわかりません。 Notepad ++でさえも、C#フォーマットを選択するとこれらが崩壊するので、Visual Studioがそうしない理由はわかりません。

誰でもこの動作を可能にするVS2008アドインを知っていますか?またはそれのためのある種の隠された設定?

編集して追加:リージョンの挿入はもちろんオプションであり、すでに私には発生しましたが、率直に言って、すでにブレースでラップされているリージョンで物事をラップする必要はないはずです...既存のコードの場合は、とにかくリファクタリングして、懸念の分離を改善します。 (リージョンの代わりに新しいメソッドで「ラップ」;)

178
Grank

Visual Studio 2017以降では、ステートメントの折りたたみが組み込まれています。

VS 2010バージョン以降、VSの2017年以前のバージョンでこのタスクを実行するいくつかの拡張機能があります。

最後の拡張機能はVS 2015とVS 2017のみをサポートしますが、最も強力な拡張機能です。
折りたたみブロック内の構文の色分けをサポートし、より耐障害性があり、最適化されています。

ブラウザを使用してダウンロードした後に拡張機能がインストールされない場合は、組み込みのVisual Studio拡張機能マネージャーを使用してみてください。

265
Skyblade

私はアドインを知りませんが、あなたは地域について言及しました、そして、私はこのようなことをすることに何の問題も見ません...

foreach (Item i in Items)
{
  #region something big happening here
  ...
  #endregion

  #region something big happening here too
  ...
  #endregion

  #region something big happening here also
  ...
  #endregion
}

編集:質問の編集への応答:あなたは正しい、どこにでもたくさんの領域を貼り付けることは理想的ではなく、リファクタリングはおそらく行く方法です。しかし、あなたはあなたのためにコードを「組織化」する魔法の何かを探しているようで、私はそれが存在するとは思わない。

21
Kon

Visual Studio内の特定のテキストブロックを折りたたむことができますが、自動アウトラインをオフにする必要があります。

コードウィンドウを右クリックし、(アウトライン|アウトラインの停止)を選択します

次に、テキストを選択し、右クリックして(アウトライン|選択を隠す)を選択します

自動アウトラインを再度オンにすると、カスタムの「地域」が折りたたまれなくなります。

19
Matt Brunell

別のことを言ってみましょう:press(ctrl+m,ctrl+h)またはedit> outlining> hide selectionがとても便利です。

3
Mahdi Rafatjah

Visual Studio 2008は、同じコード階層レベルに保持する限り、関数内の領域をサポートします

#region Won't work
for(int i = 0; i<Count; i++)
{
//do something
#endregion
}

for(int i=0; i<Count; i++)
{
#region Works fine
//do lots of stuff
#endregion
}
3
Chris Marisic

この機能は、Visual Studio 2010のC#エディターに追加されました。ソースが実際に挿入されたことを確認するソースは見つかりませんが、Dev 10チームメンバーのブログの1つでベータ1以降の変更について話しているのを見たことを覚えています。 慰めとして、これを追加したかったというマイクロソフトのコメントがあります

2
Sam Harwell

私はこれをVisual Studio 2013で見つけ、非常に役立ちました。 {.....}を使用してコードを単純な中括弧で囲んでも機能します。

共有した後、私は他の誰かがこのリンクに言及しているのを見つけました。私の投票もこのツールに賛成です。

Visual Studio 2013のC#アウトラインツール

0
Builder

VS2017では、コードのセクションを強調表示し、右クリックして[アウトライン]> [選択を非表示]を選択できます。これにより、コードが折りたたまれ、強調表示されているセクションに切り替えが行われます。

0
LoflinA

VS 2010では、MicrosoftがManaged Extensibility Framework(MEF)を使用してWPF装飾機能を追加したことをここに追加します。これにより、ソースコードエディターを拡張して、読みやすくアクセスしやすい方法で整理することができます。

たとえば、 Scott GuがPDC 2008でデモした であるSummary Commentsビジュアライザー。

開発者にとってより良い明日を楽しみにしています:)

0
Vin

Coderushがすべてのコードブロックの概要を説明します。ブロックを展開/折りたたむことができるかどうかはわかりませんが、アウトラインは次善策です。私は、コードラッシュの代わりにresharperを使用しますが、私が知っている限り、ブロック崩壊も提供していません:(

0
goku_da_master