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


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


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.)


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).


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


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



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.


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.


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.


-2

Selecione Tudo via Ctrl Ae depoisCtrl M M

ou seja, pressione Mduas vezes enquanto mantém pressionadoCtrl


Desculpe, não. Isso reduz tudo, incluindo namespaces, classes, métodos e comentários. Isso não foi explicitamente solicitado.
ygoe de
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.