Ao editar blocos de código muito longos (que definitivamente deveriam ser refatorados de qualquer maneira, mas que estão além do escopo desta pergunta), muitas vezes anseio pela capacidade de recolher blocos de instruções como se pode recolher blocos funcionais. Ou seja, seria ótimo se o ícone de menos aparecesse no esquema de código para tudo incluído entre chaves. Parece aparecer para funções, classes, regiões, namespaces, usos, mas não para blocos condicionais ou iterativos. Seria fantástico se eu pudesse recolher coisas como ifs, switches, foreaches, esse tipo de coisa!
Pesquisando um pouco sobre isso, descobri que, aparentemente, o C ++ no VS permite isso, mas o C # no VS não. Eu realmente não entendo o porquê. Até o bloco de notas ++ fará isso, se eu selecionar a formatação C #, para que não ocorra o motivo pelo qual o Visual Studio não faz.
Alguém sabe de um suplemento VS2008 que permitirá esse comportamento? Ou algum tipo de cenário oculto para isso?
Editado para adicionar: é claro que inserir regiões é uma opção e isso já me ocorreu, mas, francamente, eu não deveria ter que agrupar coisas em uma região que já esteja entre chaves ... se eu fosse editar o código existente, eu apenas o refatoraria para ter uma melhor separação de preocupações de qualquer maneira. ("quebra automática" com novos métodos em vez de regiões;)
Respostas:
A partir do Visual Studio 2017, o recolhimento de instruções é incorporado.
Existem várias extensões que executam essa tarefa nas versões anteriores ao 2017 do VS, começando com a versão do VS 2010:
A última extensão suporta apenas o VS 2015 e o VS 2017, mas é a mais poderosa.
Ele suporta cores de sintaxe dentro de blocos recolhidos, é mais tolerante a falhas e otimizado.
fonte
Não conheço suplementos, mas você mencionou regiões e não vejo nada de errado em fazer algo assim ...
EDIT: Em resposta à pergunta da EDIT: Você está certo, não é ideal fixar várias regiões em todos os lugares e refatorar é provavelmente o caminho a percorrer. Mas parece que você está procurando algo mágico que "organize" o código para você, e acho que não existe.
fonte
Você pode recolher blocos de texto específicos no visual studio, mas precisa desativar o contorno automático.
Clique com o botão direito do mouse na janela de código e selecione (Outlining | Stop Outlining)
Em seguida, selecione algum texto, clique com o botão direito do mouse e selecione (Esboço | Ocultar seleção)
Quando você ativa novamente o contorno automático, as "Regiões" personalizadas não serão mais recolhidas.
fonte
O Visual Studio 2008 oferece suporte a regiões dentro de funções, desde que você as mantenha no mesmo nível hierárquico de código
fonte
Deixe-me dizer algo diferente: pressione
(ctrl+m,ctrl+h)
ou em editar> descrevendo> ocultar a seleção é tão útil.fonte
Esse recurso foi adicionado ao editor de C # do Visual Studio 2010. Não consigo encontrar a fonte de verificação, mas lembro de vê-la em um dos blogs dos membros da equipe do Dev 10 falando sobre mudanças desde o Beta 1 ou algo assim. Como consolo, aqui está um comentário da Microsoft sugerindo que eles querem adicioná-lo.
fonte
Acrescentarei aqui que, no VS 2010, a Microsoft adicionou os recursos de adornadores WPF usando o MEF (Managed Extensibility Framework). Isso nos permitirá estender o editor de código-fonte para organizá-los de uma maneira muito melhor para torná-los mais legíveis e acessíveis.
Por exemplo, o visualizador de Comentários Resumidos que Scott Gu demonstrou no PDC 2008 .
Então, esperamos um amanhã melhor para os desenvolvedores :)
fonte
O Coderush descreverá todos os blocos de código para você. Não tenho certeza se ele permite expandir / recolher os blocos, mas descrever é a próxima melhor coisa. Eu uso o resharper em vez do coderush que, tanto quanto eu sei, não fornece o colapso do bloco :(
fonte
Encontrei isso no Visual Studio 2013 e achei muito útil. Funciona mesmo se você colocar chaves simples em seu código com {.....}
Depois de compartilhar, encontrei alguém que também mencionou este link. Meu voto é para esta ferramenta também.
Ferramenta de estrutura de tópicos em C # para o Visual Studio 2013
fonte
No VS2017, você pode destacar uma seção do código, clicar com o botão direito do mouse em Outlining> Hide selection. Isso recolherá o código e alternará a seção destacada.
fonte
# region, # endregion é a opção inteligente.
fonte