C#ですべての#regions only(!)を折りたたむ(Visual Studio)


102

現在のドキュメントのすべての折りたたみ式アイテムを自動的に展開または折りたたむためのキーボードショートカットとメニューコマンドがいくつかあります。Ctrl+ MCtrl+ Lは、最上位のネームスペースから内部のメソッドやコメントに至るまで、すべての折りたたみ式を再帰的に切り替えます。基本的に、左マージンに[+]アイコンがあるすべてのもの。Ctrl+ MCtrl+ Oは少し少なくなりますが、クラス内のメソッドやコメントには影響します。

具体的には折りたたみ式のみを考慮し#region、それ以外は何も考慮しない関数を探しています。名前空間、クラス、コメント、メソッドではありません。#regionキーワードで明示的にマークされている領域のみを折りたたみたいだけです。

そのための隠しショートカットや拡張機能はありますか?

Visual Studio 2015(今のところRC)の場合は、キーボードソリューションを使用します。

誰かが理由を尋ねる場合:ファイルの概要を取得したいのですが、1つのリージョンの内部を見ようと決めたらすぐにすべての詳細を確認します。


更新:

2020年のソリューション

この質問は多くの回答を受け取ったので、それらのいくつかは役に立たないものもあれば、時代遅れのものもあります。VisualStudio 2019の実用的なソリューションは、この過小評価されている回答にあります:https ://stackoverflow.com/a/58999093/143684


私はそうは思いません(修正することはできますが)。クラスビューを試しましたか?すべてのクラスメンバーが表示され(テキストエディターの上部にあるドロップダウンではありません)、ダブルクリックして選択したメンバーにジャンプできます。
amcdermott

1
そのようなことはないと思います。Ctrl+ M、Ctrl + Oが最も近い
voytek

クラスビューウィンドウには、1つのフラットなリストにすべての項目が含まれ、「地域化」されていません。それは私がリージョンを使用しているものではありません。トピックごとにメンバーをすばやく見つけるための領域が必要です。特に、異なるモデルタイプごとに類似したメソッドが少数ある長いクラスの場合がそうです。リージョンは、ここでモデルタイプによってそれらをグループ化します。
ygoe

回答:


209

Visual Studio 2017 では「定義に折りたたむときに#リージョンを折りたたむ」をアクティブにする必要があります

Tools -> Options -> Text Editor -> C# -> Advanced

Ctrl+ M+を押したときにすべてを明示的に折りたたむO


8
残念ながら、これはリージョンだけでなく、他のすべてを(ほぼ)折りたたみます。これは私が探しているものではありません。クイック起動タスク拡張機能はVS 2017にも存在し、個別にインストールできます。他のコメントを参照してください。
ygoe 2017

20
これはOPが要求したものではないかもしれませんが、私が探していたものです。
ホーマー

11
現在のビルドのオプションは「定義に折りたたむときに#リージョンを折りたたむ」で、[ツール]> [オプション]> [テキストエディター]> [C#]> [詳細設定]にあります。これも私が探していたものです。これにより、VS 2015と同様にCtrl + M + Oが機能します
Matt Becker

65

Ctrl+ M+ Oすべて折りたたみます。

Ctrl+ M+ Lすべて展開されます。(VS 2013-すべてのアウトラインを切り替え)

Ctrl+ M+ Pはすべて展開し、アウトラインを無効にします。

Ctrl+ M+ M現在のセクションを折りたたむ/展開します。

これらのオプションは、[アウトライン]のコンテキストメニューにもあります。

エディターを右クリックして、[アウトライン]をクリックしてすべてのオプションを見つけます。(アウトラインを無効にした後、同じ手順を使用してアウトラインを有効にします。)


1
これが本当に唯一の正しい答えです... CTRL +(M、O / L)は、元の質問に直接答えるページの領域のみを展開/折りたたみます。
Levi Fuller

15
VS2017RCではもう当てはまりません。すべてを集約しても、領域は集約されません。(少なくとも現在のビルド:15.0.2620.0)
フランソワ

3
VS 2017については、以下の@Myzからの回答を参照してください。
ジェフリーハーモン

29

Microsoft のVisual Studio拡張機能であるProductivity Power Tools 2015には、クイック起動メニューに新しいコマンドを追加するクイック起動タスクという機能があります。それらの1つはCollapseRegionsで、まさにそれを行います。

反対のコマンドはExpandRegionsで、ファイル全体をすばやく閲覧できるようにすべての領域を拡張します。これらのコマンドは、CtrlQホットキーを押してCollresp と入力することで、かなりすばやく使用できます。Exp、次にEnter(同じ接頭辞を持つ他のコマンドがない場合)を押します。


7
Visual Studio 2017に対応する拡張機能を
次に示し

クイックタスク検索の動作方法が変更されたため、Visual Studio 2019では無効になりました。
クロニクル

16

リージョンを折りたたむには:ツール>オプション>テキストエディター> C#>詳細設定>「定義に折りたたむときに#リージョンを折りたたむ」をチェック

#regions画像を折りたたむ


ああ、それは3年前にすでにありました。一番上の答えを見てください。
ygoe

10

[設定]-> [TextEditor]-> [C#]-> [詳細設定]-> [定義を折りたたむときに#regionsを折りたたむ]でチェックマークをオンにします。

次に、エディターで右クリック>アウトライン>折りたたんで定義



7

これが新しいかどうかはわかりませんが、C#テキストエディターの設定があります。

設定-> TextEditor-> C#->詳細設定->定義を折りたたむときに#regionsを折りたたみます。

セットCtrlM CtrlOが#regionsを折りたたむとき。


7

これは古い質問であることは承知していますが、こちらはビジュアルスタジオ2019のアップデートです。

@ygoeの回答のクイックタスクソリューションは、Visual Studio 2019では機能しません。これは、そのバージョンがクイックタスクバーの検索方法を変更したためです。さらに、キーボードショートカットを使用する代わりにクイックアクションを入力する必要があったため、元の質問に対する推奨されるソリューションではありませんでした。

私は正確に崩れない市場で別の解決策を見つけたし、キーボードショートカットで現在開いているファイル内のすべての領域の拡大:折りたたみリージョン

拡張ページから:

デフォルトのキー割り当ては(Ctrl + R、Ctrl + Num +)と(Ctrl + R、Ctrl + Num-)です。[ツール]-> [オプション]-> [環境]-> [キーボード]で変更できます。


この素晴らしい情報をありがとう!私は他の多くのためにクイックタスクを使用していないので、その拡張機能に切り替えるだけかもしれません。テスト済みで動作します(VS 2017および2019)。
ygoe

4

無料のVisual Studio拡張機能「Menees VS Tools Extension for Visual Studio」を使用することをお勧めします。Visual Studioの[ツール]-> [拡張機能と更新]で検索してください。一度あなただけヒットする必要がインストールCtrl+ M+ Kだけの地域が崩壊します。こちらが彼らのウェブサイトですhttps://marketplace.visualstudio.com/items?itemName=BillMenees.MeneesVSTools2013

設定を編集するには、[ツール]-> [オプション]-> [Menees VSツール]-> [全般]を確認します。


-2

Ctrl A次にすべてを選択し、Ctrl M M

つまり、押しMながら2回押すCtrl


申し訳ありません。これにより、名前空間、クラス、メソッド、コメントを含むすべてが折りたたまれます。これは明示的に要求されませんでした。
ygoe
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.