Recolher apenas todas as # regiões (!) Em C # (Visual Studio)

103

Existem vários atalhos de teclado e comandos de menu para expandir ou recolher automaticamente todos os dobráveis ​​no documento atual. Ctrl+ M, Ctrl+ Lalterna todos os dobráveis ​​recursivamente, desde o namespace superior até os métodos e comentários internos. Basicamente, tudo que tem um ícone [+] na margem esquerda. Ctrl+ M, Ctrl+ Ofaz um pouco menos, mas ainda toca métodos e comentários dentro da classe.

Eu estou procurando uma função que especificamente única respeita #regionfoldables e nada mais. Não são namespaces, classes, comentários ou métodos. Na verdade, só quero dobrar as áreas que estão explicitamente marcadas como tal com a #regionpalavra - chave.

Existe algum atalho oculto ou uma extensão para isso?

Eu prefiro uma solução de teclado, para Visual Studio 2015 (RC por enquanto).

Caso alguém pergunte o porquê: quero ter uma visão geral do arquivo, mas ver imediatamente todos os detalhes quando decidir olhar dentro de uma região.


Atualizar:

Solução em 2020

Como esta pergunta recebeu muitas respostas, algumas delas inúteis, outras desatualizadas, a solução de trabalho para Visual Studio 2019 pode ser encontrada nesta resposta pouco apreciada aqui: https://stackoverflow.com/a/58999093/143684

ygoe
fonte
Acho que não (aberto a correção). Você já experimentou o modo de exibição de classe - ele mostrará todos os membros da classe (não a lista suspensa no topo do editor de texto) e você pode clicar duas vezes para pular para o membro selecionado.
amcdermott
1
Acho que não existe tal coisa, Ctrl + M, Ctrl + O é o mais próximo
voytek
A janela Class View contém todos os itens em uma lista plana, não "regionalizados". Não é para isso que estou usando regiões. Preciso que as regiões localizem rapidamente membros por tópico, especialmente em classes longas com um pequeno número de métodos semelhantes, cada um para um tipo de modelo diferente. As regiões os agrupam por tipo de modelo aqui.
ygoe

Respostas:

210

no Visual Studio 2017, tenho que ativar 'Recolher # regiões ao recolher para definições' em

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

para recolher explicitamente tudo ao pressionar Ctrl+ M+O

Myz
fonte
8
Infelizmente, isso também reduz todo o resto (quase), não apenas regiões. Portanto, não é isso que estou procurando. A extensão Quick Launch Tasks ainda existe para VS 2017 e pode ser instalada separadamente agora, veja-me outro comentário.
ygoe
20
Isso pode não ser o que o OP pediu, mas é o que eu estava procurando.
Homer
11
A opção na compilação atual é "Recolher #regions ao recolher para definições" e está localizada em Ferramentas> Opções> Editor de texto> C #> Avançado. Isso é o que eu estava procurando também. Isso faz com que Ctrl + M + O funcione como no VS 2015
Matt Becker
65

Ctrl+ M+ Oirá recolher tudo.

Ctrl+ M+ Lirá expandir tudo. (no VS 2013 - Alternar todos os contornos)

Ctrl+ M+ Pirá expandir tudo e desabilitar o contorno.

Ctrl+ M+ Mirá recolher / expandir a seção atual.

Essas opções também estão no menu de contexto em Estrutura de tópicos.

Clique com o botão direito no editor -> Esboço para encontrar todas as opções. (Depois de desabilitar o esboço, use as mesmas etapas para habilitar o esboço.)

Brendon Vdm
fonte
1
Esta é realmente a única resposta correta ... CTRL + (M depois O / L) irá expandir / recolher apenas as regiões em uma página que responde diretamente à pergunta original.
Levi Fuller
15
Isso não é mais verdade com VS2017RC. Recolher tudo não recolhe regiões. (Pelo menos a compilação atual: 15.0.2620.0)
François de
3
Para o VS 2017, veja a resposta de @Myz abaixo.
Jeffrey Harmon,
29

A extensão do Visual Studio Productivity Power Tools 2015 da Microsoft tem um recurso chamado Quick Launch Tasks que adiciona novos comandos ao menu Quick Launch. Um deles é CollapseRegions e faz exatamente isso.

O comando oposto é ExpandRegions e ele expande todas as regiões para uma navegação rápida em todo o arquivo. Esses comandos podem ser usados ​​rapidamente pressionando a CtrlQtecla de atalho e digitando Collresp. Expe, em seguida, pressionando Enter(supõe-se que você não tenha outros comandos com o mesmo prefixo).

ygoe
fonte
7
Aqui está a extensão correspondente para Visual Studio 2017: Quick Launch Tasks
ygoe
Não é mais válido com o Visual Studio 2019 porque eles mudaram a forma como a pesquisa de Tarefas rápidas funciona.
Crônica de
17

Para recolher regiões: Ferramentas> Opções> Editores de texto> C #> Avançado> Marque "Recolher #regions ao recolher para definições"

Recolher imagem #regions

Osama Nour
fonte
Oh, já tínhamos aquele há 3 anos. Veja a resposta mais importante.
ygoe,
10

marque a marca de seleção em Configurações -> Editor de texto -> C # -> Avançado -> Recolher # regiões ao recolher as definições.

em seguida, clique com o botão direito do mouse no editor> delineamento> recolher para definições

dev_ter
fonte
7

Parece que a coisa mais próxima é Ctrl+ M, Ctrl+S

O que reduzirá a região atual em que você está, enquanto Ctrl+ M, Ctrl+ Eexpandirá a região atual em que você está.

Lista de atalhos de teclado padrão:

https://msdn.microsoft.com/en-us/library/da5kh0wa(v=vs.140).aspx

AzNjoE
fonte
7

Não sei se isso é novo, mas há uma configuração para o edior de texto c #:

Configurações -> Editor de Texto -> C # -> Avançado -> Recolher # regiões ao recolher as definições.

Quando seu conjunto CtrlM CtrlOrecolherá as #regions.

Roland
fonte
7

Eu sei que esta é uma pergunta antiga, mas aqui está uma atualização para o Visual Studio 2019:

A solução Quick Tasks da resposta de @ygoe não funciona para o Visual Studio 2019, porque essa versão mudou a forma como a barra de tarefas rápidas faz pesquisas. Além disso, nunca foi a solução preferida para a pergunta original, já que você precisava digitar uma ação rápida em vez de usar um atalho de teclado.

Encontrei uma solução diferente no mercado que faz exatamente o recolhimento e a expansão de todas as regiões no arquivo aberto atualmente com atalhos de teclado: Recolher região

Na página de extensão:

As combinações de teclas padrão são (Ctrl + R, Ctrl + Num +) e (Ctrl + R, Ctrl + Num-). Pode ser alterado em Ferramentas-> Opções-> Ambiente-> Teclado.

Crônica
fonte
Obrigado por esta grande informação! Como não estou usando tarefas rápidas para muito mais, posso apenas mudar para essa extensão. Testado e funciona (no VS 2017 e 2019).
ygoe
4

Eu recomendo usar a extensão gratuita do Visual Studio "Menees VS Tools Extension for Visual Studio." Basta pesquisá-lo em Ferramentas -> Extensões e atualizações no Visual Studio. Uma vez instalado, você só precisa clicar em Ctrl+ M+ Ke apenas as regiões serão recolhidas. Aqui está o site deles https://marketplace.visualstudio.com/items?itemName=BillMenees.MeneesVSTools2013

Para editar as configurações, procure em Ferramentas -> Opções -> Ferramentas do Menees VS -> Geral.

TheJonz
fonte
-2

Selecione Tudo via Ctrl Ae depoisCtrl M M

ou seja, pressione Mduas vezes enquanto mantém pressionadoCtrl

user1979649
fonte
Desculpe, não. Isso reduz tudo, incluindo namespaces, classes, métodos e comentários. Isso não foi explicitamente solicitado.
ygoe de