LazowskiAnton · Extensions

TidySmith

Código C# colocado na ordem que sua equipe quer: membros ordenados e agrupados com uma visualização e um único Desfazer, regiões pelas suas regras, comentários quebrados no seu comprimento de linha — e pontos cinza no editor onde algo pode ser arrumado.

Gratuito · Visual Studio 2022 e 2026 · 14 idiomas de interface · sem telemetria

Por que o TidySmith

Uma classe antes e depois de Order Members: constantes e campos primeiro, depois o construtor, as propriedades e os métodos

Seguro por design

Construído sobre a árvore de sintaxe do Roslyn: os membros se movem com seus comentários, documentação e atributos; blocos #if e #region nunca são atravessados; classes que não podem ser ordenadas com segurança ficam intocadas. Uma visualização mostra o diff primeiro, e Aplicar se desfaz com um único Desfazer.

A ordem da sua equipe

A ordem dos grupos, o acesso, os membros estáticos, os nomes — defina na página de opções ou coloque no .editorconfig, para que todos tenham o mesmo resultado. Predefinições para StyleCop e CodeMaid já vêm incluídas.

Descoberto sem manual

Pontos cinza sob uma classe fora de ordem ou um comentário longo demais; Ctrl+. oferece a correção junto das ações do Visual Studio. Quando você já conhecer os comandos, desative as dicas.

Gratuito, sem pegadinhas

Sem assinatura, sem versão “pro”, sem coleta de dados, sem mensagens na janela Saída ou na inicialização. A única coisa que vamos pedir — depois que você a tiver usado por um tempo — é uma avaliação no Marketplace. Funciona no Visual Studio 2022 e 2026, x64 e ARM64.

Recursos

Todos os comandos estão em Editar › TidySmith e no menu de contexto do editor de código (clique com o botão direito › TidySmith); Order Members também no menu de contexto de arquivos, pastas e projetos no Gerenciador de Soluções.

Ordenar membros

Order Members… ordena os membros de uma classe por tipo (constantes, campos, construtores, propriedades, métodos…), depois por acesso (public primeiro), estáticos antes dos de instância e, se você quiser, por nome — na ordem definida na página de opções ou no .editorconfig.

Predefinições para começar: TidySmith (sobrecargas e implementações de interface mantidas juntas), StyleCop (SA1201, SA1202, SA1204 — estritamente por acesso) e CodeMaid (o padrão do CodeMaid, para equipes que vêm dele).

Dicas no editor

Onde o TidySmith pode ajudar, o nome recebe três pontos cinza — do jeito que o Visual Studio marca as próprias sugestões. O ponteiro sobre eles diz o quê; Ctrl+. oferece a correção, com uma visualização da alteração.

Pontos cinza sob o nome de uma classe e um comentário longo; a lâmpada com Ordenar membros e sua visualização
Cursor emCtrl+. oferece
O nome de uma classeOrdenar membros da classe ou do arquivo, adicionar regiões pelas suas regras, remover as regiões da classe, abrir na janela Structure
Um comentário maior que o comprimento da linhaQuebrar o comentário
Uma linha #regionRemover esta região (o código fica)
Várias linhas selecionadasOrdenar linhas (só uma lista simples), unir linhas

Os pontos aparecem para uma classe fora de ordem, um comentário maior que o comprimento da linha e regiões que diferem das suas regras — nada mais. Os pontos e as ações da lâmpada têm chaves separadas; “Somente em arquivos que alterei” deixa o código antigo em paz.

Regiões pelas suas regras

Add Regions to This File… coloca linhas #region onde suas regras mandam, depois de uma visualização. Regiões são uma decisão da equipe, então o padrão é sem regiões: o comando abre as configurações até você escolher.

Regras de regiões e uma classe com as regiões Fields, Methods e IDisposable

A regra SA1124 do StyleCop proíbe regiões; é por isso que o padrão é sem regiões — e por isso arrumar ao salvar as remove com essa configuração.

Comentários que cabem

Format Comment quebra o comentário // ou /// no cursor (ou todos os comentários do arquivo) no seu comprimento de linha — max_line_length do .editorconfig, ou 120. Linhas longas são quebradas, curtas são unidas, um <summary> longo ganha linhas próprias. Exemplos de código (<code>), listas, linhas separadoras e código comentado ficam como estão.

Um comentário de documentação antes e depois de Format Comment

Arrumar ao salvar

Quando um arquivo C# é salvo, o TidySmith pode ordenar seus membros, colocar regiões conforme as regras, quebrar comentários e remover espaços à direita e linhas em branco extras — cada etapa tem sua própria chave. Somente o arquivo que está sendo salvo, nunca arquivos gerados; a barra de status informa o que mudou, e Ctrl+Z desfaz. Tidy This File executa as mesmas etapas sob demanda.

Desativado por padrão. Ative quando Order Members der o resultado que sua equipe quer — senão o primeiro salvamento de um arquivo antigo reordena tudo.

Janela Structure

Exibir › Outras Janelas › TidySmith Structure: os tipos e membros do arquivo C# ativo. Ela acompanha o cursor, um clique leva ao membro, a pesquisa filtra, e um membro arrastado sobre outro se move para lá — o mesmo movimento seguro de Order Members. Os métodos mostram seu comprimento e complexidade ciclomática; além dos limites da página de opções, ficam laranja.

A janela Structure com os membros de uma classe e um método longo em laranja

Pequenos utilitários

Os comandos de que as pessoas sentiam falta no CodeMaid, em Editar › TidySmith e no menu de contexto do editor.

Switch File

Abre o arquivo que pertence ao atual — a marcação e seu código, um arquivo de recursos e seu designer, o código e seus testes — sem procurá-lo no Gerenciador de Soluções.

DePara (e de volta)
MainWindow.xamlMainWindow.xaml.cs
Order.razorOrder.razor.cs
Index.cshtmlIndex.cshtml.cs
Strings.resxStrings.Designer.cs
MainForm.csMainForm.Designer.cs
OrderService.csOrderServiceTests.cs — também em um projeto de teste da solução; …Test.cs e ….Tests.cs também

O menu mostra o destino (“Switch to OrderServiceTests.cs”) e fica desativado quando não há para onde ir. Brilha com uma tecla só sua — veja abaixo.

Sort Selected Lines

Ordena usings, membros de enum ou os itens de uma lista; as vírgulas ficam onde a lista precisa delas. Só uma lista simples é ordenada — um item por linha, mesmo recuo, sem linhas em branco, sem instruções — então um método ou um arquivo inteiro selecionado por engano nunca é embaralhado; a barra de status diz por quê.

Join Lines

Une as linhas selecionadas em uma só, ou a linha do cursor com a seguinte.

Find This File in Solution Explorer

Seleciona no Gerenciador de Soluções o arquivo aberto no editor.

Collapse e Expand All Regions

Recolhe ou expande apenas os blocos #region; os métodos ficam como estão. Diferente de Ctrl+M, Ctrl+O (que recolhe também os métodos) e Ctrl+M, Ctrl+L (tudo).

Nenhum atalho é ocupado por padrão — as teclas do Visual Studio ficam como estão. Associe qualquer comando em Ferramentas › Opções › Ambiente › Teclado: digite TidySmith. em “Mostrar comandos contendo”.

Configurações

Ferramentas → Opções → SmithWorks → TidySmith. Cada opção tem uma descrição.

OpçãoPadrão
Ações do TidySmith na lâmpada (Ctrl+.)ativado
Pontos cinza onde algo pode ser arrumadoativado
Ordem dos membrospredefinição TidySmith
Visualização antes de ordenarativado
Regiõessem regiões
Comprimento da linha dos comentários120
Arrumar ao salvardesativado
Método longo (linhas) · método complexo60 · 10
Pedir uma avaliação no Marketplaceativado

As configurações são armazenadas em %LocalAppData%\TidySmith; o .editorconfig prevalece onde tem um valor.

Página de opções do TidySmith
A página de opções.

Por repositório: .editorconfig

Coloque as regras junto do código, e toda a equipe terá o mesmo resultado; um valor no .editorconfig prevalece sobre a página de opções (a menos que “Usar a ordem do .editorconfig” esteja desativado).

[*.cs]
tidysmith_member_order = stylecop
tidysmith_regions = kind
tidysmith_region_min = 2
max_line_length = 120
ChaveValores
tidysmith_member_ordertidysmith, stylecop, codemaid, ou os grupos em ordem: constants, fields, constructors, properties, methods…
tidysmith_regionsnone, kind, access, kind_access
tidysmith_region_minO mínimo de membros para criar uma região: 2
max_line_lengthO comprimento de linha em que os comentários são quebrados

Perguntas frequentes

Qual a diferença para o CodeMaid?

O TidySmith trabalha na árvore de sintaxe do Roslyn em vez do antigo modelo de código, então #if, comentários e atributos ficam onde devem; ele mostra uma visualização e se desfaz com um único Desfazer; a ordem pode ficar no .editorconfig; ele roda no Visual Studio 2022 e 2026 em x64 e ARM64. Cobre apenas C# e deixa de fora o que o Visual Studio agora faz sozinho (limpeza de código, progresso do build).

Por que uma classe não foi ordenada?

O TidySmith deixa uma classe de lado quando ordená-la poderia quebrá-la ou bagunçá-la: um erro de sintaxe, um membro na linha de uma chave, dois membros em uma linha. Membros dentro de #if ou #region só se movem dentro do seu bloco. Arquivos gerados nunca são tocados.

Posso desfazer uma alteração?

Sim: cada comando e cada salvamento é uma única edição, então um Ctrl+Z desfaz. No Gerenciador de Soluções, os arquivos que não estão abertos são gravados em disco — use seu controle de versão nesse caso.

Por que Sort Selected Lines não fez nada?

Ele ordena só uma lista simples, então uma seleção que é código — instruções, blocos, linhas com recuos diferentes ou linhas em branco no meio — nunca é embaralhada. A barra de status avisa.

Add Regions não faz nada.

As regras padrão são sem regiões. Escolha como dividi-las no grupo Regiões das configurações (o comando o abre), ou defina tidysmith_regions no .editorconfig.

E VB, C++ ou XAML?

O TidySmith é para C#. Outras linguagens podem vir se forem pedidas — conte para nós no repositório Feedback.

O TidySmith envia algum dado?

Não. Tudo roda dentro do Visual Studio nos seus arquivos; nada é enviado para lugar nenhum — sem telemetria, sem requisições.

Onde relato um problema ou sugiro um recurso?

Abra uma issue no repositório Feedback no GitHub — há formulários para bugs e ideias (troque nomes privados). Você também pode usar a aba Q&A no Marketplace.

Histórico de alterações

1.0.2

1.0.1

1.0.0