VisualStudio ‐ Code Cleanup - MarcosPiccoli/DotNetPractices GitHub Wiki

CleanUp Visual Studio tool

O Code CleanUp no Visual Studio 2022 é uma ferramenta que ajuda a manter o código limpo e organizado, aplicando regras e formatações de acordo com as diretrizes definidas. Ele automatiza a limpeza e a padronização do código, reduzindo a necessidade de revisão manual e melhorando a consistência do código em projetos de equipe.

O Visual Studio permite criar e configurar múltiplos perfis de limpeza, adaptados às necessidades específicas do projeto ou equipe. Cada perfil pode ter um conjunto diferente de regras e configurações.

Neste documento, será detalhado como realizar a configuração de um perfil, podendo ser alterado o "Profile 1" padrão ou criar um novo perfil.

Criação e Edição:

  1. Navegue até Ferramentas > Opções.
  2. Expanda Editor de Texto e selecione C# ou o idioma de programação desejado.
  3. Selecione Code Cleanup e clique em Configurar.
  4. Crie um novo perfil ou edite um existente.

CleanUp padrão utilizado por mim

A tabela abaixo detalha os parâmetros que habiitei dessa funcionalidade

Nome Descrição Detalhamento
Remove unused variables A principal finalidade da correção "Remove Unused Variables" é identificar e remover variáveis que são declaradas em um código, mas que nunca são usadas. Variáveis não utilizadas podem poluir o código, tornando-o mais difícil de ler e manter, além de representar um desperdício de recursos. Identificação baseando-se em:1. Variáveis locais; 2. Parâmetros de métodos; 3. campos de classes;
Make field readonly Transformar campos que são apenas inicializados e não modificados posteriormente em campos readonly. Isso ajuda a garantir que o valor do campo não seja alterado após a sua inicialização, promovendo a imutabilidade e protegendo o campo contra modificações acidentais. Identificação baseando-se em:1. Campos inicializados em construtores; 2. Campos inicializados na declaração;
Remove unnecessary casts Melhorar a legibilidade e a simplicidade do código ao eliminar conversões de tipo que não afetam o resultado final do código. Casts desnecessários podem tornar o código mais difícil de ler e entender, e sua remoção pode ajudar a tornar o código mais limpo e eficiente. Identificação baseando-se em:1. Cast para o Mesmo Tipo; 2. Casts Redundantes;
Format document Aplicar a formatação automática a um documento de código, ajustando a indentação, o espaçamento, as quebras de linha e outros aspectos da formatação para que estejam em conformidade com as regras de estilo configuradas. Isso ajuda a garantir que o código esteja limpo e organizado, independentemente de como ele foi escrito inicialmente.
Remove unnecessary imports or usings Identificar e remover declarações de namespaces que não são utilizadas no código. Essas declarações, conhecidas como using em C# e imports em Visual Basic, são frequentemente adicionadas automaticamente ou esquecidas ao longo do desenvolvimento. A remoção dessas referências não utilizadas pode reduzir o clutter no código e evitar possíveis conflitos de nomes.
Sort import or usings Teorganizar e ordenar as declarações de namespaces em um arquivo de código-fonte para que fiquem organizadas de forma clara e consistente. A organização das declarações pode seguir um padrão alfabético ou outros critérios definidos pelas preferências do projeto ou da equipe.
Apply namespace matches folder preferences Visa alinhar o namespace de um arquivo de código com a estrutura de pastas onde o arquivo está localizado. Isso ajuda a manter uma correspondência entre a estrutura física dos diretórios no projeto e a hierarquia lógica de namespaces no código, facilitando a navegação e a organização do projeto.
Apply blank line preferences Ajustar o uso de linhas em branco no código de acordo com as preferências de formatação configuradas. Isso pode incluir a adição ou remoção de linhas em branco para garantir uma aparência consistente e organizada no código-fonte.
Remove unused suppressions Remover supressões de advertências e erros que não estão mais aplicáveis no código. Isso ajuda a manter o código limpo e livre de anotações desnecessárias, além de garantir que todas as advertências e erros importantes sejam considerados e tratados adequadamente.
Apply simplify boolean expression preferences Refatorar expressões booleanas complexas ou redundantes em código-fonte para torná-las mais diretas e fáceis de entender. Isso ajuda a melhorar a legibilidade e a manutenção do código, além de potencialmente otimizar o desempenho.
Apply string interpolation preferences Converter e padronizar o uso de interpolação de strings em seu código para seguir as melhores práticas e convenções estabelecidas. Isso pode incluir converter concatenações de strings para a interpolação de strings ou ajustar o formato da interpolação para estar de acordo com as preferências definidas.
Remove unused parameters Identificar e remover parâmetros que são declarados em métodos, mas que não são utilizados no corpo do método. Isso melhora a clareza e a manutenção do código ao reduzir a complexidade e evitar a confusão causada por parâmetros desnecessários.
Apply pattern matching preferences Transformar e ajustar o uso de padrões no código para seguir as preferências e melhores práticas definidas para a correspondência de padrões. Isso pode incluir a conversão de estruturas de controle para usar padrões mais modernos e legíveis, além de aplicar regras de estilo e formatação específicas. Altera as construções de switch, if-else e pattern matching
Apply namespace preferences Aplicar preferências específicas para namespaces em seu código. Isso pode incluir a organização e a formatação dos namespaces para seguir um estilo consistente, garantir que os namespaces estejam alinhados com a estrutura de pastas do projeto, ou fazer ajustes em como os namespaces são usados e declarados.
Apply using statement preferences Aplicar preferências específicas para a inclusão e organização das declarações using no código. Isso inclui ajustar a ordem, a presença ou a formatação das instruções using para seguir as convenções e melhores práticas definidas.
Remove unnecessary nullable directive Identificar e remover diretivas #nullable que não são mais necessárias no código. Isso pode ocorrer quando a configuração de nulabilidade foi aplicada globalmente ou quando as diretivas locais são redundantes devido a outras configurações de projeto ou contexto.
Apply statement after block preferences Aplicar regras específicas para a posição e o estilo das instruções que ocorrem imediatamente após um bloco de código. Isso pode incluir ajustes na formatação, no alinhamento e na colocação de instruções para garantir que o código esteja em conformidade com as preferências estabelecidas. examina blocos de código, delimitados por{ } em estruturas de controle (if, else, while, ...), identificando instruções após esses blocos e ajustando espaçamento, quebra de linha e identação
Apply object/collection preferences Ajustar o código-fonte para estar em conformidade com as preferências configuradas para a criação e manipulação de objetos e coleções. Isso pode incluir a escolha entre diferentes métodos de inicialização, o uso de tipos de coleção apropriados, e outras práticas recomendadas relacionadas a objetos e coleções.

Visual Studio Code Style

O CleanUp utiliza como base para algumas dessas regras a configuração de Code e Naming Style configurado na solution ou no Visual Studio.

Para importar em um projeto:

  1. Baixe este arquivo de configuração

  2. Renomear o arquivo rename.editorconfig para .editorconfig (Wiki não baixa o arquivo .xxx da forma correta :sweat: )

  3. Inserir na pasta raiz do projeto.

A configuração fica lcalizada em: Tools -> Options -> Text Editor -> C# -> Code Style -> General

O Visual Studio prioriza a configuração do code style configurado na solution (arquivo .editorconfig) do que a configuração pessoal. {.is-info}


O Code CleanUp do Visual Studio 2022 é uma ferramenta poderosa para manter a qualidade e a consistência do código em projetos de desenvolvimento. Ao configurar e aplicar corretamente os perfis de limpeza, possibilitando economizar tempo, reduzir erros e garantir que o código esteja sempre alinhado com as melhores práticas e padrões da equipe.