ti-enxame.com

ReSharper - forçar chaves em volta da linha única

Posso configurar o ReSharper para corrigir o código C # quando chaves não são usadas para cercar um bloco de código de linha única, assim:

if (blnSomeCondition)
   DoSomething();  // complain

if (blnSomeOtherCondition)
{
   DoSomethingElse(); // don't complain
}

Obrigado

91
Booberry

A solução do Gorohoroh está próxima, mas em vez de selecionar "Usar chaves para multilinha", tive que selecionar "Adicionar chaves" para forçá-lo a adicionar chaves no cenário de linha única. E eu tive que definir isso em todas as seis listas suspensas em "Suspensórios" para capturar todos os cenários:

alt text

O que eu realmente esperava era poder configurar o ReSharper para executar um aviso amarelo ou erro vermelho quando a regra foi violada, mas não encontrei uma maneira de fazer isso. Como você está certo, Gorohoroh, o Cleanup Code faz muitas coisas e eu gostaria de ter a opção de analisar e corrigir as violações das regras, uma de cada vez.

Obrigado pela ajuda!

28
Booberry

Na nova versão do ReSharper (2016.x) foi movido para o estilo de código. ReSharper 2016.1.1

UPD1: para ReSharper 2017.x ReSharper 2017.1.2

UPD2: para ReSharper 2018.x ReSharper 2018.1

UPD3: para ReSharper 2019.x ReSharper 2019.1

135
Sergey

Ryan está correto (observe, no entanto, que o link dele se refere à ajuda do R # 2.0). O procedimento específico é o seguinte:

  1. Vá para ReSharper> Opções> Idiomas> C #> Estilo de formatação> Layout de chaves
  2. Defina "Aparelho na declaração" if-else "" para "Usar chaves para multilinha"
  3. Após salvar as alterações, selecione um escopo para reformatar (pode ser uma seleção de código, arquivo, pasta, projeto, solução - o que você quiser).
  4. Escolha ReSharper> Ferramentas> Código de limpeza.
  5. Lucro.

Lembre-se de que a Limpeza de código faz várias coisas e não está relacionada apenas à formatação do código (consulte os detalhes em http://www.jetbrains.com/resharper/webhelp/Code_Cleanup__Index.html ); portanto, use o apresentam sabiamente.

34
Jura Gorohovsky

Para ReSharper 2016.2.2.

Você deve editar seu perfil para limpeza. O item apropriado é chamado Adicionar/remover chaves para instruções únicas em "if-else", "for", "foreach", "while", "do-while", "using". Este item pode ser encontrado no item C # => Code styles.

Se o item estiver marcado, chaves serão adicionadas; se desmarcada, as chaves serão removidas.

Nota: adicionar não funciona agora (não sei por que - talvez, uma versão muito recente do ReSharper). No entanto, se você desmarcar a opção mencionada item, as chaves existentes em torno de instruções únicas não serão removidas.

PD: O problema foi solucionado, veja os dois primeiros comentários neste post.

8
Jordan

Você pode configurá-lo como visto na captura de tela.

force curly brackets for a single line of code

PS: para aqueles que têm problemas para visualizar os URLs do Imgur.com -> https://ibb.co/b4xijT

1
Alper Ebicoglu

Apenas se puder ajudar alguém a economizar tempo, em uma máquina da minha empresa, seguir os conselhos de Sergey não foi suficiente, apesar da grande qualidade de seu cargo.

Na configuração em questão (VS2017, R # 2019, ambos atualizados), essas configurações no lado do R # já eram boas, mas também tive que modificá-lo nas opções do Visual Studio:

  • Na janela Opções, vá para Editor de texto -> C # -> Estilo do código -> Formatação -> Geral,
  • Marque "Executar limpeza adicional do código durante a formatação" e "Adicionar/remover chaves para a instrução de controle de linha única"
0
AFract